GitlabCI DBB UCD
GitlabCI DBB UCD
2021-11-09
Jean-Yves BAUDY
[email protected]
1
Eclipse, VS Code, Eclipse Dependency Base Build (IDzEE) IBM Z Development and
End to end Che (BYOI) zUnit (IDzEE) Test Enviroment (zD&T)
IBM Optim Test Data
Managament
IBM Developer for z/OS IBM Wazi Virtual Test Platform
DevOps Enterprise Edition (IDzEE) UrbanCode Build
IBM Wazi Workspaces
(Sandbox)
IBM Rational Test
Workbench
The IBM way IBM Wazi Workspaces
(Code)
IBM z/OS Cloudbroker
Open and
Flexible https://galasa.dev/
CI/CD Pipeline
Nexus
LEGEND
Analyze
Feedback,
approvals IBM Application IBM Engineering Workflow IBM Z APM Connect
Discovery and Delivery Management OMEGAMON
Note: Starting from the upper Intelligence
Operational Insights
left, products and significant
capabilities appear once, the
first time they are used in the
pipeline. Products and
capabilities are used at 2
multiple points.
Integrating IBM Z DevOps solutions with GitLab
SCM
3
Increase development velocity with built-in quality in your
pipeline
The DevOps pipeline is about automation and embedding quality into the CI/CD pipeline with reusable building blocks.
zAppBuild
A sample framework to define the
compile & link steps for z/OS source
code Wazi Analyze
A container-based analyzer to
understand relationships between
IDz zUnit z/OS artifacts
An integrated platform for Unit
Testing on z/OS
4
GitLab - A major component: the project
5
GitLab - The SCM part
6
GitLab - Issues, Issues Board and Milestone
7
A brief overview of GitLab CI/CD - Pipeline orchestration
§ For each GitLab project, a CI/CD context is created:
− The CI/CD pipeline is configured in a YAML file (.gitlab-ci.yml), which is stored in the repository
− AutoDevOps triggers the pipeline after each commit or merge request in the repository
− While it is tightly coupled to a project, a pipeline can be configured to trigger other pipelines (multi-project pipeline)
8
GitLab CI - Pipelines’ capabilities
9
GitLab CI - Multi-project pipelines
§ As Mainframe applications are highly intertwined, the build workspace must contain all the artifacts from
other repositories. All dependencies of other applications must be cloned to USS.
§ Used to trigger pipelines of other projects
zAppBuild-Update:
stage: .pre
trigger:
project: development/dbb-zappbuild
strategy: depend
GenApp-Build:
stage: build
script:
- cd /u/mdalbin/${CI_BUILDS_DIR}/${CI_RUNNER_SHORT_TOKEN}/${CI_CONCURRENT_ID}/development/dbb-zappbuild/
- /usr/lpp/dbb/v1r0/bin/groovyz -Djava.library.path=/usr/lpp/dbb/v1r0/lib:/usr/lib/java_runtime64 build.groovy --
workspace /u/mdalbin/${CI_BUILDS_DIR}/${CI_RUNNER_SHORT_TOKEN}/${CI_CONCURRENT_ID}/development/genapp --application genapp --
workDir /u/mdalbin/${CI_PROJECT_DIR} --outDir /tmp --hlq MDALBIN.PROG.MORTV2GL --logEncoding UTF-8 --impactBuild --verbose
stages:
- .pre
- build
10
GitLab CI - Job pipeline output
11
References
§ Build a pipeline with GitLab CI, IBM Dependency Based Build, and IBM UrbanCode Deploy
− https://developer.ibm.com/tutorials/build-a-pipeline-with-gitlab-ci-dbb-and-ucd/
§ Build a pipeline with Jenkins, Dependency Based Build, and UrbanCode Deploy
− https://developer.ibm.com/tutorials/build-a-pipeline-with-jenkins-dependency-based-build-and-urbancode-deploy/
12
Demontration
13