Managing source control with Git

You can integrate your Git server when building and managing transform jobs in the DataStage® service. This integration allows you to publish jobs and related artifacts to different Git branches and load other versions of a job from Git onto the job canvas for transform jobs.

Benefits

Using transform jobs in DataStage with Git provides the following benefits:
  • Helps with Continuous Integration Continuous Delivery (CICD) pipeline automation. Your assets are easily available in Git and you can move them from the development (DEV) branch to quality assurance (QA) to production.
  • Helps with auditing requirements. You can simply tell who changed what.
  • You can work on multiple versions of a job by creating temporary branches.
  • You can easily roll back to a prior version of a job.

Supported Git repositories

The following Git repositories are supported:
  • Bitbucket
  • GitHub
  • GitLab
  • Microsoft Team Foundation Server

Artifacts

The job .json file is published to Git. You can also publish .isx files if you select Include compiled code, binaries, and dependant parameters when publishing to Git. This allows you to move jobs between different instances.

Publishing jobs to Git

To publish jobs:
  1. Open the job that you want to publish.
  2. Click the compile icon to compile the job. Then, save it.
  3. Click the publish to Git icon to publish the file.
  4. Select the branch that you want to add the file to and add a comment. Select Include compiled code, binaries, and dependant parameters if you want the binaries to be published to Git. This publishes the .isx package.
  5. Click Publish.

Loading jobs from Git

To load jobs:
  1. Open the job that you want to load a different version of from Git.
  2. Click the Repository version link next to the job name.
  3. Select the branch that you want to load the job from and select the version number.
  4. Click Load.

Scenario: You need to make a change to the job in the Job1_branch in Git and work on it in the Job2_branch. After you fix a bug, you need to push the change back to the Job1_branch. Your administrator created a Git configuration and you created a Git profile. You also pushed Job1 and Job2 to master prior to this scenario.

  1. You load Job1 to develop a requirement that is complex to implement.
  2. You get a defect due to a CritSit for which you need to make an immediate update to Job2 and deliver it to the customer.
  3. You push the changes made so far to Job1 to a branch Job1_branch.
  4. You load Job2, fix the defect, and push to Job2 _branch.
  5. You get the changes reviewed and push the fix to the master branch.
  6. You load Job1 from the Job1_branch and continue to develop the requirement.
  7. When you are done, you push directly to master or go through the branch/review process, depending on your company policy.