Skip to content
Snippets Groups Projects
Commit 6397fbb4 authored by Bernhard Johannes Berger's avatar Bernhard Johannes Berger
Browse files

Use correct pom.xml in build.

parent 30fe5aa6
No related branches found
No related tags found
No related merge requests found
Pipeline #279856 failed
variables:
# This will supress any download for dependencies and plugins or upload messages which would clutter the console log.
# `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
MAVEN_OPTS: "-Dmaven.repo.local=${CI_PROJECT_DIR}/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
# As of Maven 3.3.0 instead of this you may define these options in `.mvn/maven.config` so the same config is used
# when running from the command line.
# `installAtEnd` and `deployAtEnd` are only effective with recent version of the corresponding plugins.
MAVEN_CLI_OPTS: "-s ${CI_PROJECT_DIR}/ci/settings.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true $MAVEN_OPTS"
# custom docker image for building our Java stuff
ECLIPSE_IMAGE: gitlab.informatik.uni-bremen.de:5005/evoal/source/evoal-core/evoal/eclipse-mirror:2022-12
EVOAL_IMAGE: library/maven:3.8.6-eclipse-temurin-17-alpine
SECURE_LOG_LEVEL: "debug"
######################
# pom.xml to build
LANGUAGES_POM: "src/languages/pom.xml"
EVOAL_POM: "src/core/pom.xml"
#JUNIT_POM: "src/core/de.evoal.core.junit/pom.xml"
PLUGINS_POM: "src/core/plugins/pom.xml"
#MAIN_POM: "src/core/de.evoal.core.main/pom.xml"
MIRROR_POM: "src/mirror/pom.xml"
# include pre-defined templates for scanning
include:
- template: Security/Dependency-Scanning.gitlab-ci.yml
#before_script:
# # docker login asks for the password to be passed through stdin for security
# # we use $CI_REGISTRY_PASSWORD here which is a special variable provided by GitLab
# # https://docs.gitlab.com/ce/ci/variables/predefined_variables.html
# - mkdir $HOME/.docker
# - echo $DOCKER_AUTH_CONFIG > $HOME/.docker/config.json
# - echo "Log in to $CI_REGISTRY with $CI_REGISTRY_USER and -- $CI_REGISTRY_IMAGE"
# - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY
# Cache downloaded dependencies and plugins between builds.
# To keep cache across branches add 'key: "$CI_JOB_REF_NAME"'
cache:
paths:
- .m2/repository
stages:
- Domain Specific Languages
- EvoAl
- Release
#############################################################
## DSL-related pipeline
dsl:compile:
stage: Domain Specific Languages
tags:
- docker
image: $ECLIPSE_IMAGE
script:
- mvn $MAVEN_CLI_OPTS -f $LANGUAGES_POM -Dbranch=$CI_COMMIT_REF_NAME -pl "!de.evoal.languages:de.evoal.languages.releng.site" compile
dsl:unit:
stage: Domain Specific Languages
tags:
- docker
image: $ECLIPSE_IMAGE
script:
- mvn $MAVEN_CLI_OPTS -f $LANGUAGES_POM -Dbranch=$CI_COMMIT_REF_NAME verify
dsl:deploy:
stage: Domain Specific Languages
dependencies:
- "dsl:compile"
needs:
- "dsl:unit"
- "dsl:compile"
tags:
- docker
image: $ECLIPSE_IMAGE
script:
- mvn $MAVEN_CLI_OPTS -f $LANGUAGES_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten deploy
artifacts:
untracked: false
when: on_success
expire_in: "30 days"
paths:
- src/languages/de.evoal.languages.releng.site/target/de.evoal.languages.releng.site-*.zip
#############################################################
## Remaining compile steps
evoal:compile:
stage: EvoAl
tags:
- docker
image: $EVOAL_IMAGE
script:
- mvn $MAVEN_CLI_OPTS -f $EVOAL_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
- mvn $MAVEN_CLI_OPTS -f $PLUGIN_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
artifacts:
untracked: false
when: on_success
expire_in: "30 days"
paths:
- src/core/*/target/*
#############################################################
## Remaining unit tests
evoal:unit:
stage: EvoAl
tags:
- docker
image: $EVOAL_IMAGE
script:
- mvn $MAVEN_CLI_OPTS -f $JUNIT_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
- mvn $MAVEN_CLI_OPTS -f $EVOAL_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
- mvn $MAVEN_CLI_OPTS -f $PLUGIN_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
- mvn $MAVEN_CLI_OPTS -f $EVOAL_POM -Dbranch=$CI_COMMIT_REF_NAME -Pjacoco verify
- cat src/core/de.evoal.releng.jacoco/target/site/jacoco-aggregate/index.html | grep -o '<tfoot>.*</tfoot>'
coverage: /Total.*?([0-9]{1,3})%/
artifacts:
when: always
reports:
junit: src/core/*/target/surefire-reports/TEST-*.xml
paths:
- src/core/de.evoal.releng.jacoco/target/site/jacoco-aggregate/jacoco.xml
- src/core/*/target/surefire-reports/TEST-*.xml
evoal:coverage:
stage: EvoAl
tags:
- docker
image: haynes/jacoco2cobertura:1.0.7
script:
- jacoco_paths=`find src/core/ -path "**/src/main/java" -type d | sed -e 's@^@'"$CI_PROJECT_DIR"'/@'`
- python /opt/cover2cover.py src/core/de.evoal.releng.jacoco/target/site/jacoco-aggregate/jacoco.xml $jacoco_paths > src/core/de.evoal.releng.jacoco/target/site/coverage.xml
needs: ["evoal:unit"]
dependencies:
- evoal:unit
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: src/core/de.evoal.releng.jacoco/target/site/coverage.xmlx
dependency_scanning:
stage: EvoAl
tags: [docker]
image: registry.gitlab.com/security-products/gemnasium-maven:4
needs: ["evoal:compile"]
variables:
DS_JAVA_VERSION: 17
DS_MAX_DEPTH: 3
DS_EXCLUDED_PATHS: src/mirror,src/languages,src/core/de.evoal.[a-qs-z]*,de.evoal.releng.jacoco
after_script:
- >
cd src/core/;
for FILE in `find . -name "gemnasium-maven-plugin.json"`; do
mv $FILE `echo "./de.evoal.releng.parent/$FILE" | sed -e "s;/gemnasium-maven-plugin.json;-gemnasium-maven-plugin.json;g"`;
done
#############################################################
## Remaining integration tests
#############################################################
## Remaining deploy steps
evoal:deploy:
stage: EvoAl
dependencies:
- "evoal:compile"
needs:
- "evoal:compile"
- "evoal:unit"
tags:
- docker
image: $EVOAL_IMAGE
script:
- mvn $MAVEN_CLI_OPTS -f $JUNIT_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
- mvn $MAVEN_CLI_OPTS -f $EVOAL_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
- mvn $MAVEN_CLI_OPTS -f $PLUGIN_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten install
- mvn $MAVEN_CLI_OPTS -f $EVOAL_POM -Dbranch=$CI_COMMIT_REF_NAME -DskipTests=true flatten:flatten deploy
artifacts:
untracked: false
when: on_success
expire_in: "30 days"
paths:
- src/core/*/target/*
#############################################################
## Remaining release steps
#all:coverage:
# stage: Release
# image: registry.gitlab.com/haynes/jacoco2cobertura:1.0.7
# script:
# # convert report from jacoco to cobertura, using relative project path
# - for XML in ; do python /opt/cover2cover.py target/site/jacoco/jacoco.xml $CI_PROJECT_DIR/src/main/java/ > target/site/cobertura.xml
# needs: ["evoal:unit"]
# artifacts:
# reports:
# coverage_report:
# coverage_format: cobertura
# path: src/core/*/target/site/cobertura.xml
all:package:
stage: Release
needs:
- job: "dsl:deploy"
artifacts: true
- job: "evoal:deploy"
artifacts: true
tags:
- docker
image: $EVOAL_IMAGE
script:
- ci/create-release.sh "$CI_JOB_NAME"
artifacts:
name: "evoal-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-release"
when: on_success
paths:
- evoal
#release:
# stage: Release
# needs:
# - job: "dsl:deploy"
# artifacts: true
# - job: "evoal:deploy"
# artifacts: true
# image: registry.gitlab.com/gitlab-org/release-cli:latest
# rules:
# - if: $CI_COMMIT_TAG
# script:
# - echo "running release_job for $TAG"
# release: # See https://docs.gitlab.com/ee/ci/yaml/#release for available properties
# name: 'Release $CI_COMMIT_TAG'
# tag_name: 'v0.$CI_PIPELINE_IID' # The version is incremented per pipeline.
# description: 'v0.$CI_PIPELINE_IID'
# ref: '$CI_COMMIT_TAG' # The tag is created from the pipeline SHA.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment