Sample pipeline scripts for GitLab CI/CD
The sample pipelines are located in AMI DevOps Sample Folder in the GitLab CI directory, which is the directory to which the BMC-AMI-DevOps-Version-13.1.00-for-Db2-UC.zip file is downloaded and extracted. For example:
C:\Users\userName\Downloads\BMC-AMI-DevOps-Version-13.1.00-for-Db2-UC.zip\BMC AMI DevOps Version 13.1.00 for Db2 - UC\GitLab CI\AMI DevOps Sample Folder
Sample pipeline script for File Transmission
The following figure represents a sample pipeline script for File Transmission:
###
### Pipeline_File_Transmission_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + File Transmission steps using application defined command step.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_File_Transmission.yml), that is maintained in default root folder.
# Example of properties of authentication step is taken from Config_File_Transmission.yml file:
# - step authentication Config_File_Transmission.yml
# Note: If pipeline executes with default configuration file name config.yml, that is maintained in root folder, then file name is not required in step command.
# Example of properties of authentication step is taken from default file name config.yml maintained in root folder:
# - step authentication
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_File_Transmission_Sample" # pipeline name
CONFIG_FILE: "Config_File_Transmission.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- file_transmission # stage name
build-job: # job name
stage: file_transmission
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use syntax \<var name\> to find and replace the exact matching word
- sed -i "s/\<JOB_ID\>/$job_id/" $CONFIG_FILE
- sed -i "s/DDL_FILE_FT_UPLOAD/$ddl_file/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - fileUpload (local_to_mainframe)
- step local_to_mainframe $CONFIG_FILE
tags:
- <runner tag name> # runner tag name
### Pipeline_File_Transmission_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + File Transmission steps using application defined command step.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_File_Transmission.yml), that is maintained in default root folder.
# Example of properties of authentication step is taken from Config_File_Transmission.yml file:
# - step authentication Config_File_Transmission.yml
# Note: If pipeline executes with default configuration file name config.yml, that is maintained in root folder, then file name is not required in step command.
# Example of properties of authentication step is taken from default file name config.yml maintained in root folder:
# - step authentication
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_File_Transmission_Sample" # pipeline name
CONFIG_FILE: "Config_File_Transmission.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- file_transmission # stage name
build-job: # job name
stage: file_transmission
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use syntax \<var name\> to find and replace the exact matching word
- sed -i "s/\<JOB_ID\>/$job_id/" $CONFIG_FILE
- sed -i "s/DDL_FILE_FT_UPLOAD/$ddl_file/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - fileUpload (local_to_mainframe)
- step local_to_mainframe $CONFIG_FILE
tags:
- <runner tag name> # runner tag name
Sample pipeline script for Schema Migration
The following figure represents a sample pipeline script for Schema Migration:
###
### Pipeline_Schema_Migration_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + File Transmission + Local Cat to DDL + Output Transmission + JCL Exec steps.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_Schema_Migration_CompareDDL.yml), that resides in directory (non-root folder).
# Example of properties of authentication step is taken from config file "Config_Schema_Migration_CompareDDL.yml", that is
# maintained inside folder "configFiles":
# - step authentication configFiles/Config_Schema_Migration_CompareDDL.yml
# d) Bash script based if...then...fi is used.
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_Schema_Migration_Sample" # pipeline name
CONFIG_FILE: "configFiles/Config_Schema_Migration_CompareDDL.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- schema_change # stage name
build-job: # job name
stage: schema_change
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use syntax \<var name\> to find and replace the exact matching word
- sed -i "s/\<JOB_ID\>/$job_id/" $CONFIG_FILE
- sed -i "s/DDL_FILE_FT_UPLOAD/$ddl_file/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - fileUpload (local_to_mainframe)
- step local_to_mainframe $CONFIG_FILE
# Execute application step - localCatToDDL (localCat_to_DDL)
- step localCat_to_DDL $CONFIG_FILE
# Perform the functions after finishing all application steps
# Load the environment variables from output file output_local_cat_ddl.properties
# Execute subsequent steps (download_output and jclExecutionPDS) only if the return code condition is satisfied
after_script:
- . output_local_cat_ddl.properties # source the output properties file to set environment variables
- echo "retCode=$compareRC" # print the return code value from the environment variable
- if [ "$compareRC" -le "0004" ]; then step download_output $CONFIG_FILE; fi
- if [ "$compareRC" -le "0004" ]; then step jclExecutionPDS $CONFIG_FILE; fi
tags:
- <runner tag name> # runner tag name
### Pipeline_Schema_Migration_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + File Transmission + Local Cat to DDL + Output Transmission + JCL Exec steps.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_Schema_Migration_CompareDDL.yml), that resides in directory (non-root folder).
# Example of properties of authentication step is taken from config file "Config_Schema_Migration_CompareDDL.yml", that is
# maintained inside folder "configFiles":
# - step authentication configFiles/Config_Schema_Migration_CompareDDL.yml
# d) Bash script based if...then...fi is used.
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_Schema_Migration_Sample" # pipeline name
CONFIG_FILE: "configFiles/Config_Schema_Migration_CompareDDL.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- schema_change # stage name
build-job: # job name
stage: schema_change
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use syntax \<var name\> to find and replace the exact matching word
- sed -i "s/\<JOB_ID\>/$job_id/" $CONFIG_FILE
- sed -i "s/DDL_FILE_FT_UPLOAD/$ddl_file/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - fileUpload (local_to_mainframe)
- step local_to_mainframe $CONFIG_FILE
# Execute application step - localCatToDDL (localCat_to_DDL)
- step localCat_to_DDL $CONFIG_FILE
# Perform the functions after finishing all application steps
# Load the environment variables from output file output_local_cat_ddl.properties
# Execute subsequent steps (download_output and jclExecutionPDS) only if the return code condition is satisfied
after_script:
- . output_local_cat_ddl.properties # source the output properties file to set environment variables
- echo "retCode=$compareRC" # print the return code value from the environment variable
- if [ "$compareRC" -le "0004" ]; then step download_output $CONFIG_FILE; fi
- if [ "$compareRC" -le "0004" ]; then step jclExecutionPDS $CONFIG_FILE; fi
tags:
- <runner tag name> # runner tag name
Sample pipeline script of Schema Migration and Schema Standards
The following figure represents a sample pipeline script of Schema Migration and Schema Standards:
###
### Pipeline_Schema_Migration_Schema_Standards_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + Local Cat to DDL + Schema Standards (schema type-CDL) steps using application defined command step.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_Schema_Migration_Schema_Standards.yml), that resides in directory (non-root folder).
# Example of properties of authentication step is taken from config file "Config_Schema_Migration_Schema_Standards.yml", that is
# maintained inside folder "configFiles":
# - step authentication configFiles/Config_Schema_Migration_Schema_Standards.yml
# d) Bash script based if...then...fi is used.
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_Schema_Migration_Schema_Standards_Sample" # pipeline name
CONFIG_FILE: "configFiles/Config_Schema_Migration_Schema_Standards.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- schema_migration_schema_standards_cdl # stage name
build-job: # job name
stage: schema_migration_schema_standards_cdl
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use syntax \<var name\> to find and replace the exact matching word
- sed -i "s/\<JOB_ID\>/$job_id/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - localCatToDDL (localCat_to_DDL)
- step localCat_to_DDL $CONFIG_FILE
# Perform the functions after finishing all application steps
# Load the environment variables from output file output_local_cat_ddl.properties
# Execute subsequent step (schema_standards_cdl) only if the return code condition is satisfied
after_script:
- . output_local_cat_ddl.properties # source the output properties file to set environment variables
- echo "retCode=$compareRC" # print the return code value from the environment variable
- if [ "$compareRC" -le "0004" ]; then step schema_standards_cdl $CONFIG_FILE; fi
tags:
- <runner tag name> # runner tag name
### Pipeline_Schema_Migration_Schema_Standards_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + Local Cat to DDL + Schema Standards (schema type-CDL) steps using application defined command step.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_Schema_Migration_Schema_Standards.yml), that resides in directory (non-root folder).
# Example of properties of authentication step is taken from config file "Config_Schema_Migration_Schema_Standards.yml", that is
# maintained inside folder "configFiles":
# - step authentication configFiles/Config_Schema_Migration_Schema_Standards.yml
# d) Bash script based if...then...fi is used.
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_Schema_Migration_Schema_Standards_Sample" # pipeline name
CONFIG_FILE: "configFiles/Config_Schema_Migration_Schema_Standards.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- schema_migration_schema_standards_cdl # stage name
build-job: # job name
stage: schema_migration_schema_standards_cdl
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use syntax \<var name\> to find and replace the exact matching word
- sed -i "s/\<JOB_ID\>/$job_id/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - localCatToDDL (localCat_to_DDL)
- step localCat_to_DDL $CONFIG_FILE
# Perform the functions after finishing all application steps
# Load the environment variables from output file output_local_cat_ddl.properties
# Execute subsequent step (schema_standards_cdl) only if the return code condition is satisfied
after_script:
- . output_local_cat_ddl.properties # source the output properties file to set environment variables
- echo "retCode=$compareRC" # print the return code value from the environment variable
- if [ "$compareRC" -le "0004" ]; then step schema_standards_cdl $CONFIG_FILE; fi
tags:
- <runner tag name> # runner tag name
Sample pipeline script of Schema Standards for DDL type
The following figure represents a sample pipeline script of Schema Standards for DDL type:
###
### Pipeline_Schema_Standards_Schema_Type_DDL_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + Schema Standards (schema type-DDL) steps using application defined command step.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_Schema_Standards_Schema_Type_DDL.yml), that is maintained in default root folder.
# Example of properties of authentication step is taken from Config_Schema_Standards_Schema_Type_DDL.yml file:
# - step authentication Config_Schema_Standards_Schema_Type_DDL.yml
# Note: If pipeline executes with default configuration file name config.yml, that is maintained in root folder, then file name is not required in step command.
# Example of properties of authentication step is taken from default file name config.yml maintained in root folder:
# - step authentication
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_Schema_Standards_Schema_Type_DDL_Sample" # pipeline name
CONFIG_FILE: "Config_Schema_Standards_Schema_Type_DDL.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- schema_standards_ddl # stage name
build-job: # job name
stage: schema_standards_ddl
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - schemaStandards (schema_standards_ddl)
- step schema_standards_ddl $CONFIG_FILE
tags:
- <runner tag name> # runner tag name
### Pipeline_Schema_Standards_Schema_Type_DDL_Sample.yml (for GitLab CI/CD)
###
# The sample pipeline performs Authentication + Schema Standards (schema type-DDL) steps using application defined command step.
# The sample pipeline script is defined to use various items like below:
# a) References to variables added through GitLab CI/CD variables and Pipeline variables.
# b) Use of Linux based sed command to replace input as variable name by variable definition from GitLab CI/CD variables and Pipeline variables.
# c) Use of configuration file (Config_Schema_Standards_Schema_Type_DDL.yml), that is maintained in default root folder.
# Example of properties of authentication step is taken from Config_Schema_Standards_Schema_Type_DDL.yml file:
# - step authentication Config_Schema_Standards_Schema_Type_DDL.yml
# Note: If pipeline executes with default configuration file name config.yml, that is maintained in root folder, then file name is not required in step command.
# Example of properties of authentication step is taken from default file name config.yml maintained in root folder:
# - step authentication
###
# Variable declaration for the Pipeline
variables:
PIPELINE_NAME: "Pipeline_Schema_Standards_Schema_Type_DDL_Sample" # pipeline name
CONFIG_FILE: "Config_Schema_Standards_Schema_Type_DDL.yml" # config file name
image:attach:xwiki:Mainframe.Data-for-Db2.BMC-AMI-DevOps-for-Db2.AMA13100.Command-and-syntax-reference.Universal-Connector-samples-in-BMC-AMI-DevOps.Sample-pipeline-scripts-for-GitLab-CI-CD.WebHome@filename <Image location>/devopsuc:13.01.00.0008-GA # image name
stages:
- schema_standards_ddl # stage name
build-job: # job name
stage: schema_standards_ddl
# Perform various initialization functions
before_script:
# For certBased Authentication, uncomment the following unzip command to unzip the specified client certificate
# from repository into path specified with -d parameter (ex. /opt/secret)
# - echo "Unzip client certificate zip file"
# - unzip -P "$zip_cert_pass" <clientCertificateName>.zip -d /opt/secret
# Use the config file name variable
- echo "Replace variables defined in $CONFIG_FILE file"
# Linux command sed is used to replace the config file variables with GitLab CI/CD variables
- sed -i "s/USER_ID_AUTH/$user_id/" $CONFIG_FILE
- sed -i "s/USER_PASS_AUTH/$user_pass/" $CONFIG_FILE
# For certBased Authentication, uncomment the following 2 sed commands
# - sed -i "s|CERT_PATH_AUTH|/opt/secret/<clientCertificateName>.p12|" $CONFIG_FILE
# - sed -i "s/CERT_PASS_AUTH/$cert_pass/" $CONFIG_FILE
# Use the pipeline name variable
- sed -i "s/PIPELINENAME_VALUE/$PIPELINE_NAME/" $CONFIG_FILE
# Use GitLab CI/CD environment variables to fetch pipeline id, run by and pipeline source of the executing pipeline
- sed -i "s/RUNNUMBER_VALUE/$CI_PIPELINE_ID/" $CONFIG_FILE
- sed -i "s/RUNBY_VALUE/$GITLAB_USER_LOGIN/" $CONFIG_FILE
- sed -i "s/RUNMODE_VALUE/$CI_PIPELINE_SOURCE/" $CONFIG_FILE
- echo "- $CONFIG_FILE.yml file is updated -"
script:
# Execute application step - authentication
- step authentication $CONFIG_FILE
# Execute application step - schemaStandards (schema_standards_ddl)
- step schema_standards_ddl $CONFIG_FILE
tags:
- <runner tag name> # runner tag name
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*