Workflow Creation (Java Tomcat)

At the completion of this section, you will:

  • Understand the use of workflows in the deployment process
  • Be able to create/modify a build workflow
  • Be able to create/modify a deploy workflow

A workflow is an orchestration of configurable steps that define a process and determine how the deployment process will execute.  Workflows are created once and then configured on multiple projects to define the execution for that project.

There are several types of workflows that can be created (only build and deploy will be used in this tutorial) :

build

  • Utilized for building a project. Building a project requires retrieving the source files from the GIT repository using the cloneProjectSources operation of the installed GIT plugin and compiling and creating a WAR artifact using the runMaven operation of the installed Maven plugin.  The cloneProjectSources operation allows the GIT repository information for the project to be defined once on the project and then retrieved from the project on execution.

deploy

  • Utilized for deploying a project. Deploying a project requires retrieving the WAR artifact created by the build workflow and deploying the artifact using the deploy operation of the installed Tomcat plugin.

The workflows provide a consistent, repeatable and re-usable process that will be utilized for every Tomcat application.

Create Build Workflow

Now that we have a general understanding of why we need a build and deploy workflow, we can start to define the build workflow. Select Workflows from the main menu or from the Home page. Workflows are versioned and there is always a single active version that can be executed, this allows changes to be staged until ready to be activated. Select the + to create a new workflow.

The workflow details screen will allow for the configuration of the build workflow. 

  1. Providing the workflow with a functional name will help find the correct workflow when the project is being created in a later section of the tutorial.
  2. Select Build as the Workflow Type
  3. The Workflow Group and Workflow Subgroup are organizational folders for the workflows and the values are completely controlled by the workflow developer, so use functional names that will help find the correct workflow easier.

Save the Main configuration and the Definition tab will activate. The Definition is where the orchestration steps for the build will be configured. Configuration is accomplished by dragging the appropriate components from the Workflow Operations and/or the Plugin Operations pane into the center pane between the start arrow and end block (a drop zone will appear as you get close). There are several other features such an Workflow Inputs and Workflow Variables that will not be used in this tutorial.

Configure the Git cloneProjectSources operation by adding it to the center pane and the plugin will open for additional configuration. Since this is the cloneProjectSources operation, there is no configuration required and all information will be retrieved from the project.  Select OK.  Clicking on any component in the workflow will open up the configuration screen for that component, if a change is needed.

GIT was chosen as the Source Code Management tool for this tutorial, however, FlexDeploy supports many other  Source Code Management tools and any one can be used in place of GIT.

Configure the Maven runMaven operation by adding it to the center pane and the plugin will open for additional configuration.

  1. The runMaven operation requires one or more Run Phases to be specified. Since we want to compile and generate a WAR, we will use the default package phase.
  2. The Arguments input is where we can specify any extra arguments we want passed to the mvn command. Our endpoint is running Java 7 so we now need to tell Java to use TLS version 1.2, or we won't be allowed to access the Maven Central Repository. To do this we have to add -Dhttps.protocols=TLSv1.2 to the Arguments.
  3. The plugin allows us to save artifacts directly to the Artifacts Repository by checking the Save Artifacts option. Checking this will cause the plugin to save all files in the Artifacts Subfolder into the Artifact Repository.
  4. The Artifacts Subfolder is the folder where Maven will put the packaged WAR, so we're keeping the default value of target.

The runMaven operation knows where the project was cloned, so the developer doesn't have to worry about the details. At the successful completion of the runMaven operation, a WAR file will be generated as an artifact and will automatically be pulled back to the artifact repository.  Select OK.

The plugins are intelligent and eliminate as much development work as possible from the developers. Once the components are added, the workflow needs to be saved and/or activated. Saving the workflow changes will only save the current configuration to the database and is used when the developer may not be quite ready to activate these changes.  When the developer wants the changes to be executed by projects, the Activate button must be selected.  Once the current version of the workflow is activated, the workflow will be marked as read-only and have a green check mark next to it.  Active versions can't be modified and require the developer to select Make Copy. This will create a new version and open that version up for editing, the active version will not be changed.

Create Deploy Workflow

Create a new workflow for the deploy by selecting the again. The workflow details screen will allow for the configuration of the deploy workflow.

  1. Providing the workflow with a functional name will help find the correct workflow when the project is being created in a later section of the tutorial.
  2. Selecting Deploy for the Workflow type.
  3. The Workflow Group and Workflow Subgroup are organizational folders for the workflows and the values are completely controlled by the workflow developer, so use functional names that will help find the correct workflow easier.

Add the deploy operation of the Tomcat plugin by adding it to the center pane and the plugin will open for additional configuration. This operation requires no configuration on the workflow operation, it will get all of the necessary information from either the Environment Instance (configured later in this tutorial), or by looking it up on the Tomcat server. The operation will automatically have access to the artifact created by the build workflow.

Select OK and Activate the workflow.




The following macros are not currently supported in the footer:
  • style