2021-02-14 09:12:50 +00:00
|
|
|
image: openjdk:11-jdk-slim
|
2021-02-10 19:24:43 +00:00
|
|
|
|
|
|
|
stages:
|
|
|
|
- build
|
|
|
|
- test
|
2022-02-01 07:52:33 +00:00
|
|
|
- package
|
2021-02-10 19:24:43 +00:00
|
|
|
- publish
|
|
|
|
|
|
|
|
before_script:
|
|
|
|
- echo "---------- Start CI ----------"
|
|
|
|
- export GRADLE_USER_HOME=`pwd`/.gradle
|
|
|
|
- chmod +x gradlew
|
2021-12-03 14:51:54 +00:00
|
|
|
- echo "------ commit tag ---------------"
|
|
|
|
- echo $CI_COMMIT_TAG
|
2021-12-04 10:25:16 +00:00
|
|
|
- echo $CI_COMMIT_REF_NAME
|
2021-02-10 19:24:43 +00:00
|
|
|
|
2021-11-24 18:18:46 +00:00
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- .gradle/wrapper
|
|
|
|
- .gradle/caches
|
|
|
|
|
2021-02-10 19:24:43 +00:00
|
|
|
build:
|
|
|
|
stage: build
|
|
|
|
script:
|
|
|
|
- echo "---------- build stage ----------"
|
2021-11-24 18:18:46 +00:00
|
|
|
- ./gradlew assemble
|
2021-02-10 19:24:43 +00:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- build/libs/*.jar
|
|
|
|
expire_in: 1 week
|
|
|
|
|
2021-12-04 10:25:16 +00:00
|
|
|
test:
|
2021-02-10 19:24:43 +00:00
|
|
|
stage: test
|
2021-02-25 18:57:06 +00:00
|
|
|
image: docker:latest
|
2021-02-10 19:24:43 +00:00
|
|
|
services:
|
|
|
|
- docker:dind
|
|
|
|
dependencies:
|
|
|
|
- build
|
2021-02-25 18:57:06 +00:00
|
|
|
before_script:
|
|
|
|
- echo "---------- BEFORE -------------"
|
|
|
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
2021-02-10 19:24:43 +00:00
|
|
|
script:
|
2021-02-25 18:57:06 +00:00
|
|
|
- echo "---------- TEST -------------"
|
|
|
|
- apk update && apk add bash openjdk11
|
|
|
|
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
|
|
|
|
- docker build --pull -t "$CI_REGISTRY_IMAGE" .
|
|
|
|
- docker run --privileged -dit --name provs_test -v /var/run/docker.sock:/var/run/docker.sock $CI_REGISTRY_IMAGE
|
|
|
|
- docker inspect -f '{{.State.Running}}' provs_test
|
2022-02-01 08:17:07 +00:00
|
|
|
- ./gradlew -x assemble test -Dtestdockerwithoutsudo=true -DexcludeTags=containertest
|
2021-02-25 18:57:06 +00:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
paths:
|
|
|
|
- build/reports/tests/test
|
|
|
|
reports:
|
|
|
|
junit: build/test-results/test/TEST-*.xml
|
2021-02-10 19:24:43 +00:00
|
|
|
|
2021-11-24 18:18:46 +00:00
|
|
|
|
2022-02-01 08:17:07 +00:00
|
|
|
publish-snapshot:
|
2021-04-27 16:32:08 +00:00
|
|
|
stage: publish
|
2021-02-10 19:24:43 +00:00
|
|
|
script:
|
2022-02-01 08:17:07 +00:00
|
|
|
- ./gradlew -x assemble -x test jar
|
|
|
|
- ./gradlew -x assemble -x test publish
|
2021-02-10 19:24:43 +00:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- build/libs/*.jar
|
|
|
|
expire_in: 2 months
|
|
|
|
|
2021-11-24 18:18:46 +00:00
|
|
|
|
2022-02-01 07:52:33 +00:00
|
|
|
.fatjars:
|
|
|
|
stage: package
|
2021-11-24 18:18:46 +00:00
|
|
|
rules:
|
2021-11-26 19:33:11 +00:00
|
|
|
# Do no allow manually triggered pipelines to prevent duplicates!
|
|
|
|
# Instead rerun the pipeline created with the last push
|
|
|
|
- if: $CI_PIPELINE_SOURCE != "push"
|
|
|
|
when: never
|
|
|
|
# Only execute when a valid version tag like v1.0, 2.3 or similar is given
|
|
|
|
# Required is always one point like 1.0
|
2021-12-04 10:25:16 +00:00
|
|
|
- if: $CI_COMMIT_TAG =~ /^v[0-9]+[.][0-9]+([.][0-9]+)?$/
|
2021-11-24 18:18:46 +00:00
|
|
|
before_script:
|
|
|
|
- echo $CI_JOB_ID
|
|
|
|
# Writing FATJAR_JOB_ID variable to environment file, as variable is needed in the release stage.
|
|
|
|
- echo FATJAR_JOB_ID=$CI_JOB_ID >> generate_executables.env
|
|
|
|
script:
|
|
|
|
- echo "---------- create fatjar ----------"
|
|
|
|
- ./gradlew fatJarLatest
|
2021-12-03 09:41:33 +00:00
|
|
|
- ./gradlew fatJarK3s
|
2021-11-24 18:18:46 +00:00
|
|
|
artifacts:
|
|
|
|
paths:
|
2021-11-25 09:36:05 +00:00
|
|
|
- 'build/libs/provs.jar'
|
2021-12-03 09:41:33 +00:00
|
|
|
- 'build/libs/provs-server.jar'
|
2021-11-24 18:18:46 +00:00
|
|
|
reports:
|
|
|
|
# To ensure we've access to this file in the next stage
|
|
|
|
dotenv: generate_executables.env
|
|
|
|
expire_in: 6 months
|
|
|
|
|
2022-02-01 07:52:33 +00:00
|
|
|
uberjarjar:
|
|
|
|
stage: package
|
|
|
|
rules:
|
|
|
|
- if: $CI_PIPELINE_SOURCE != "push"
|
|
|
|
when: never
|
|
|
|
- if: $CI_COMMIT_TAG =~ /^release-[0-9]+[.][0-9]+([.][0-9]+)?$/
|
|
|
|
script:
|
2022-02-01 08:17:07 +00:00
|
|
|
- ./gradlew -x assemble -x test -x jar uberjarServer
|
|
|
|
- ./gradlew -x assemble -x test -x jar uberjarDesktop
|
2022-02-01 07:52:33 +00:00
|
|
|
- cd build/libs/
|
|
|
|
- find . -type f -exec sha256sum {} \; | sort > sha256sum.lst
|
|
|
|
- find . -type f -exec sha512sum {} \; | sort > sha512sum.lst
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- 'build/libs/provs-desktop.jar'
|
|
|
|
- 'build/libs/provs-server.jar'
|
|
|
|
- 'build/libs/sha256sum.lst'
|
|
|
|
- 'build/libs/sha512sum.lst'
|
|
|
|
expire_in: never
|
|
|
|
|
2021-11-24 18:18:46 +00:00
|
|
|
|
|
|
|
release:
|
2022-02-01 07:52:33 +00:00
|
|
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
2022-02-01 08:17:07 +00:00
|
|
|
stage: publish
|
2021-11-24 18:18:46 +00:00
|
|
|
rules:
|
2021-11-26 19:33:11 +00:00
|
|
|
- if: $CI_PIPELINE_SOURCE != "push"
|
|
|
|
when: never
|
2022-02-01 07:52:33 +00:00
|
|
|
- if: $CI_COMMIT_TAG =~ /^release-[0-9]+[.][0-9]+([.][0-9]+)?$/
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- 'build/libs/provs-desktop.jar'
|
|
|
|
- 'build/libs/provs-server.jar'
|
|
|
|
- 'build/libs/sha256sum.lst'
|
|
|
|
- 'build/libs/sha512sum.lst'
|
2021-11-24 18:18:46 +00:00
|
|
|
script:
|
2022-02-01 07:52:33 +00:00
|
|
|
- apk --no-cache add curl
|
|
|
|
- |
|
|
|
|
release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
|
|
|
|
--assets-link "{\"name\":\"provs-desktop.jar\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/provs/-/jobs/${CI_JOB_ID}/artifacts/file/build/libs/provs-desktop.jar\"}" \
|
|
|
|
--assets-link "{\"name\":\"provs-server.jar\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/provs/-/jobs/${CI_JOB_ID}/artifacts/file/build/libs/provs-server.jar\"}" \
|
|
|
|
--assets-link "{\"name\":\"sha256sum.lst\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/provs/-/jobs/${CI_JOB_ID}/artifacts/file/build/libs/sha256sum.lst\"}" \
|
|
|
|
--assets-link "{\"name\":\"sha512sum.lst\",\"url\":\"https://gitlab.com/domaindrivenarchitecture/provs/-/jobs/${CI_JOB_ID}/artifacts/file/build/libs/sha512sum.lst\"}" \
|
2021-11-24 18:18:46 +00:00
|
|
|
|
2021-02-10 19:24:43 +00:00
|
|
|
after_script:
|
2021-02-25 18:57:06 +00:00
|
|
|
- echo "---------- End CI ----------"
|