Newer
Older
# This file is a template, and might need editing before it works on your project.
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
#
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
stages: # List of stages for jobs, and their order of execution
- build-maven
- security-scanning
- build-docker
- test-backend
- test-ui
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
include:
#- 'gitlab-ci/code-quality/code-quality.gitlab-ci.yml'
- template: Code-Quality.gitlab-ci.yml
- template: Jobs/SAST.gitlab-ci.yml
- template: Jobs/Dependency-Scanning.gitlab-ci.yml
- template: Jobs/Secret-Detection.gitlab-ci.yml
- template: Jobs/License-Scanning.gitlab-ci.yml
# disable the spotbugs and use sempgrep.
variables:
DS_INCLUDE_DEV_DEPENDENCIES: "false"
SAST_EXCLUDED_ANALYZERS: bandit,gosec,eslint,spotbugs
DS_JAVA_VERSION: 8
code_quality:
stage: build-maven
services: # Shut off Docker-in-Docker
tags:
- cq-sans-dind # Set this job to only run on our new specialized runner
artifacts:
paths: [gl-code-quality-report.json]
sast:
stage: security-scanning
needs: ["build-maven-job"]
tags:
- cq-sans-dind # Set this job to only run on our new specialized runner
dependency_scanning:
stage: security-scanning
needs: ["build-maven-job"]
tags:
- cq-sans-dind # Set this job to only run on our new specialized runner
.secret-analyzer:
stage: security-scanning
needs: ["build-maven-job"]
tags:
- cq-sans-dind # Set this job to only run on our new specialized runner
license_scanning:
stage: security-scanning
needs: ["build-maven-job"]
tags:
- cq-sans-dind
# This job executes the maven build artefacts .
build-maven-job:
stage: build-maven
script:
- echo "Compiling the code..."
- export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_351/ # this is run with edelquality runner
after_script:
- cat smp-aggregator/target/site/jacoco-aggregate/index.html | grep -o '<tfoot>.*</tfoot>'
reports:
junit:
- "*/target/surefire-reports/TEST-*.xml"
# - "*/target/failsafe-reports/TEST-*.xml"
code-coverage-visualization:
# Must be in a stage later than build-maven-job's stage.
stage: visualization
image: registry.gitlab.com/haynes/jacoco2cobertura:1.0.7
tags:
- cq-sans-dind # Set this job to only run on our new specialized runner
script:
# convert report from jacoco to cobertura, using relative project path
# find all modules containing java source files.
- mkdir -p target/site/
- jacoco_paths=`find * -path "**/src/main/java" -type d | sed -e 's@^@'"$CI_PROJECT_DIR"'/@'`
- echo "jacocopaths -> $jacoco_paths"
- python /opt/cover2cover.py smp-aggregator/target/site/jacoco-aggregate/index.html $jacoco_paths > target/site/cobertura.xml
dependencies:
- build-maven-job
artifacts:
when: always
expire_in: 1 week
paths:
- "target/site"
reports:
coverage_report:
coverage_format: cobertura
path: target/site/cobertura.xml
# This job executed docker image build (and pushes them to repo)
build-docker-job:
stage: build-docker
needs: ["build-maven-job"]
# temporarly disable docker execution
rules:
- when: never
variables:
GIT_CLEAN_FLAGS: none # do not clean artefacts from build-maven-job
script:
- echo "build maven artefacts Or import them from first step"
- mvn clean verify -DskipTests=true -DskipITs=true
- echo "build docker images..."
- ./domismp-tests/domismp-docker/images/build-docker-images.sh -o /datadrive/repo -c true
- echo "docker images build complete."
# backend tests on tomcat/mysql with sml integration
test-soapui-tomcat-mysql-sml-job:
stage: test-backend
# temporarly disable docker execution
rules:
- when: never
needs: ["build-docker-job"]
script:
- echo "startup containers test-soapui-tomcat-mysql-sml"
- ./smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh -i ../../../smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql
- echo "execute tests"
- cd smp-soapui-tests
- mvn clean verify -Prun-soapui -Durl=http://localhost:8982/smp/ -DjacocoRemoteAddress=localhost -DjacocoRemotePort=6902
- ../smp-docker/compose/tomcat-mysql-smp-sml/stopClearCompose.sh
artifacts:
when: always
expire_in: 1 week

Joze RIHTARSIC
committed
name: "tomcat-mysql-soapui-report"
paths:
- "*/target/soapui-reports"
- "*/target/soapui"
reports:
junit:
- "*/target/soapui-reports/TEST-*.xml"

Joze RIHTARSIC
committed
# backend tests on tomcat/mysql with sml integration
test-soapui-weblogic-oracle-job:
stage: test-backend
needs: ["build-docker-job"]
# temporarly disable docker execution
rules:
- when: never
script:
- echo "startup containers test-soapui-weblogi-oracle"
- ./smp-docker/compose/weblogic-oracle/runCompose.sh -i ../../../smp-soapui-tests/groovy/oracle-4.1_integration_test_data.sql
- echo "execute tests"
- cd smp-soapui-tests
- mvn clean verify -Prun-soapui -Durl=http://localhost:7901/smp/
- ../smp-docker/compose/weblogic-oracle/stopClearCompose.sh
artifacts:
when: always
expire_in: 1 week
reports:
junit:
- "*/target/soapui-reports/TEST-*.xml"
test-ui-tomcat-mysql-sml-job:
stage: test-ui # It only runs when *both* test jobs in the test stage complete successfully.
needs: ["build-docker-job"]
# temporarly disable docker execution
- ./smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh -i ../../../smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql

Joze RIHTARSIC
committed
- cd smp-ui-tests
- /usr/bin/xvfb-run -e /tmp/xvfb-error.log --server-args="-screen 0 1920x1080x24" mvn test -Pubuntu -Durl=http://localhost:8982/smp/ -Dchrome.driver.path=/home/edelivery/drivers/chromedriver
artifacts:
when: always
expire_in: 1 week
name: "ui-report"
paths: