Professional Documents
Culture Documents
Kpi Working Yml
Kpi Working Yml
com/mindsphere-azure/hub/mdsp-az-java:vanilla
variables:
gitlab_version: "3.1.1" # Required
product_line: $account_name_prefix
service_line: $CI_PROJECT_NAME
app_type: backend/frontend/internal ## Update
sub_group: Your_sub_group ## Update
cache:
key: ${CI_PROJECT_NAME}
paths:
- .gradle/wrapper
- .gradle/caches
stages:
- pre-build
- build and plan
- test
- publish and apply
- deploy
- destroy
################################################################################
#
# Please update value as per your requirement
#
################################################################################
.common: &common
before_script:
- >
if [[ -z $build_env ]] ; then
build_env=$(git log -1 --pretty=%s |grep -oE az.*|cut -d '*' -f1)
fi
.Terraform_plan: &Terraform_plan
<<: *common
stage: build and plan
script:
- "chmod 777 serviceinfrasetup.sh; ./serviceinfrasetup.sh plan"
when: manual # [opitional Remove this if you want]
tags:
- azure-build
except:
- tags
.build_common: &build_common_from_repo
<<: *common
stage: build and plan
script:
- export REPONAME=$(echo $service_name | awk '{print tolower($0)}'); mkdir -p
build/libs/ || echo "Already exist"
- curl -k --noproxy "*" -u $jfrogusername:$jfrogpassword -X GET
https://captain.rtf.siemens.net//artifactory/$release_repo/$PackageURL/$REPONAME/
[RELEASE]/$REPONAME-[RELEASE].jar -o platform/azure/build/libs/$REPONAME.jar
- bash ./serviceinfrasetup.sh publish
# when: manual # [opitional Remove this if you want]
tags:
- azure
artifacts:
expire_in: 2h
paths:
- build/libs
when: on_success
.deploy_common: &deploy_common
<<: *common
stage: publish and apply
when: manual
script:
- "chmod 777 serviceinfrasetup.sh; ./serviceinfrasetup.sh apply"
except:
- tags
tags:
- azure
environment:
name: "${Environment}"
.jenkins_common: &jenkins_common
<<: *common
stage: deploy
when: manual
script:
- "chmod 777 serviceinfrasetup.sh; ./serviceinfrasetup.sh jenkinsbuild"
except:
- tags
tags:
- azure-build
environment:
name: "${Environment}"
.destroy_common: &destroy_common
<<: *common
stage: destroy
script:
- "chmod 777 serviceinfrasetup.sh; ./serviceinfrasetup.sh destroy
$destroy_client_token"
when: manual
.docker_build: &docker_build
<<: *common
stage: publish and apply
image: docker.siemens.com/mindsphere-azure/hub/mdsp-dind-java:vanilla
script:
- export REPONAME=$(echo $service_name | awk '{print tolower($0)}');
- export project_name="${CI_PROJECT_NAME}"
- rm build/libs/$REPONAME-*.jar.original build/libs/$REPONAME-*-sources.jar ||
echo error
- mv build/libs/$REPONAME-*jar build/libs/${REPONAME}.jar || echo error
- docker build --force-rm -f ./buildEnvs/${DockerFileName} -t
$dockerregistryurl/$account_name_prefix/$project_name:${ArtifactReleaseVersion} .
- docker login $dockerregistryurl -u $dockerusername -p $dockerpass
- docker push $dockerregistryurl/$account_name_prefix/$project_name:$
{ArtifactReleaseVersion}
when: manual
tags:
- stack-build
- az-docker
unit-test:
<<: *common
stage: test
script:
- "sh gradlew --stacktrace -PbuildEnv=$build_env test"
when: manual
tags:
- azure-build
artifacts:
expire_in: 2h
paths:
- build/libs
when: on_success # [opitional Remove this if you want]
cdc-test:
<<: *common
stage: test
script:
- "sh gradlew --stacktrace -PbuildEnv=$build_env cdcTest"
when: manual
tags:
- azure-build
artifacts:
expire_in: 2h
paths:
- build/libs
int-test:
<<: *common
stage: test
script:
- "sh gradlew --stacktrace -PbuildEnv=$build_env intTest"
when: manual
tags:
- azure-build
artifacts:
expire_in: 2h
paths:
- build/libs
.stack_module_upload: &stack_module_upload
<<: *common
stage: deploy
when: manual
tags:
- azure-build
script:
- "tar -cvf $service_name-$ArtifactReleaseVersion.tar -C
config/azstack/metadata/ ."
- "chmod 777 serviceinfrasetup.sh; ./serviceinfrasetup.sh stack_module_upload"
tags:
- stack-build
- azure
update-service-module:
<<: *common
stage: pre-build
script:
- "chmod 777 serviceinfrasetup.sh; ./serviceinfrasetup.sh update"
when: manual
except:
- tags
#register:
# <<: *common
# stage: pre-build
# except:
# - tags
# script:
# - cd gwrRegistration
# - "chmod 777 ./gr_registration.py;"
# - python ./gr_registration.py ${Environment} ../gwrregister/gwr.json
# when: manual
Dev Build:
<<: *common
stage: build and plan
script:
- java -version
- sh gradlew --stacktrace build -PbuildEnv=$build_env --refresh-dependencies
tags:
- azure-build
artifacts:
expire_in: 2h
paths:
- build/libs
when: on_success
except:
- tag
- rc
- nfr
- master
artifacts-snapshot:
<<: *common
stage: publish and apply
tags:
- azure-build
script:
- export changesetid=$(git log -1 --format=%B | grep "^jira-id" | cut -d ':' -f 2
|sed 's/ //')
- export buildnumber=${CI_PIPELINE_ID}
- sh gradlew publish -PbuildEnv=$build_env -Pchangesetid=$changesetid
-Pbuildnumber=$buildnumber -D repo.publish=$snapshot_repo
- export project_name=`sed -r 's/.*/\L&/' <<< "${CI_PROJECT_NAME}"`
when: manual
except:
- tags
- rc
- nfr
- master
artifact-build-release:
<<: *common
stage: publish and apply
tags:
- azure-build
only:
- tags
script:
- export changesetid=$(git log -1 --format=%B | grep "^jira-id" | cut -d ':' -f 2
|sed 's/ //')
- export buildnumber=${CI_PIPELINE_ID}
- sh gradlew publish -PbuildEnv=$build_env -Drepo.resolve=$resolve_repo
-Pchangesetid=$changesetid -Pbuildnumber=$buildnumber -P taskTimes -P release -D
repo.publish=$release_repo
# when: manual
publish-metrics:
<<: *common
stage: publish and apply
tags:
- azure-build
# only:
# - master
script:
- sh gradlew sonarqube -PbuildEnv=$build_env -Dsonar.analysis.mode=publish
-Dsonar.host.url=$SONAR_HOST -Dsonar.login=$SONAR_TOKEN
-Drepo.resolve=$resolve_repo -P taskTimes--stacktrace
when: manual
Dev-Terraform_plan:
<<: *Terraform_plan
except:
- rc
- nfr
- master
- tags
variables:
Region: weur
Environment: dev
#Azure-docker-publish:
# <<: *docker_build
# except:
# - rc
# - nfr
# - master
# - tags
# variables:
# dockerregistryurl: $aksacrurl
# dockerusername: $aksacrusername
# dockerpass: $aksacrpass
DEV-AZ-blob:
<<: *common
stage: publish and apply
script:
- bash ./serviceinfrasetup.sh publish
when: manual
tags:
- azure-build
except:
- rc
- nfr
- master
- tags
variables:
Region: weur
Environment: dev
DEV-Terraform-Apply:
<<: *deploy_common
except:
- rc
- nfr
- master
- tags
variables:
Region: weur
Environment: dev
dependencies:
- :Dev-Terraform_plan
environment:
name: "${Environment}"
DEV-jenkins-build:
<<: *jenkins_common
except:
- rc
- nfr
- master
- tags
variables:
Region: weur
Environment: dev
DEV-destroy:
<<: *destroy_common
except:
- rc
- nfr
- master
- tags
variables:
Region: weur
Environment: dev
Stack-Docker-Publish:
<<: *docker_build
except:
- rc
- nfr
- master
variables:
dockerregistryurl: $MDSP_STACK_ACR_DEV
dockerusername: $MDSP_STACK_ACR_DEV_USER_NAME
dockerpass: $MDSP_STACK_ACR_DEV_PASS
stack-artifact-release:
<<: *common
stage: publish and apply
image: docker.siemens.com/mindsphere-azure/hub/mdsp-dind-java:vanilla
tags:
- azure-build
only:
- tags
when: manual
script:
- chmod 777 serviceinfrasetup.sh; ./serviceinfrasetup.sh
stack_module_release
######################################## RC #############################
RC-Terraform_plan:
<<: *Terraform_plan
only:
- rc
variables:
Region: weur
Environment: rc
RC-AZ-blob:
<<: *build_common_from_repo
only:
- rc
variables:
Region: weur
Environment: rc
RC-Terraform-Apply:
<<: *deploy_common
only:
- rc
variables:
Region: weur
Environment: rc
dependencies:
- :RC-Terraform_plan
RC-Jenkins-build:
<<: *jenkins_common
only:
- rc
variables:
Region: weur
Environment: rc
RC-destroy:
<<: *destroy_common
only:
- rc
variables:
Region: weur
Environment: rc
NFR-Terraform_plan:
<<: *Terraform_plan
only:
- nfr
variables:
Region: weur
Environment: nfr
NFR-AZ-blob:
<<: *build_common_from_repo
only:
- nfr
variables:
Region: weur
Environment: nfr
NFR-Terraform-Apply:
<<: *deploy_common
only:
- nfr
variables:
Region: weur
Environment: nfr
dependencies:
- :NFR-Terraform_plan
NFR-Jenkins-build:
<<: *jenkins_common
only:
- nfr
variables:
Region: weur
Environment: nfr
NFR-destroy:
<<: *destroy_common
only:
- nfr
variables:
Region: weur
Environment: nfr
PROD-Terraform_plan:
<<: *Terraform_plan
only:
- master
variables:
Region: weur
Environment: prod
PROD-AZ-blob:
<<: *build_common_from_repo
only:
- master
variables:
Region: weur
Environment: prod
PROD-Terraform-Apply:
<<: *deploy_common
only:
- master
variables:
Region: weur
Environment: prod
dependencies:
- :PROD-Terraform_plan
PROD-Jenkins-build:
<<: *jenkins_common
only:
- master
variables:
Region: weur
Environment: prod
PROD-destroy:
<<: *destroy_common
only:
- master
variables:
Region: weur
Environment: prod