-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
112 lines (102 loc) · 4.54 KB
/
.gitlab-ci.yml
File metadata and controls
112 lines (102 loc) · 4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
image: gradle:8.9-jdk21-alpine
stages:
- build
- upload
- release
variables:
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dhttp.proxyHost=wwwproxy.uni-muenster.de -Dhttp.proxyPort=3128 -Dhttps.proxyHost=wwwproxy.uni-muenster.de -Dhttps.proxyPort=3128 -Dhttps.nonProxyHosts=localhost,127.0.0.1,0.0.0.0,.wwu.de,.uni-muenster.de,.wwu.io,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16"
build:
stage: build
tags:
- docker
script:
- echo ${CI_COMMIT_REF_NAME} ${CI_DEFAULT_BRANCH} ${CI_COMMIT_TAG}
- gradle shadowJar :webapp:war :webapp:shadowJar :testdataGenerator:shadowJar
cache:
key: "$CI_COMMIT_REF_NAME"
policy: push
paths:
- build
- .gradle
artifacts:
paths:
- build/libs/MDROReport-Full.jar
- webapp/build/libs/MDROReport-Light.jar
- webapp/build/libs/webapp.war
- testdataGenerator/build/libs/MDROTestdataGenerator.jar
only:
- master
- tags
dockerize:
stage: upload
# Use the official docker image.
image: docker:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_DEPTH: 1
services:
- docker:dind
tags:
- dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
# Default branch leaves tag empty (= latest tag)
# All other branches are tagged with the escaped branch name (commit ref slug)
script:
- |
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
tag=""
echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'"
else
tag=":$CI_COMMIT_REF_SLUG"
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
fi
- docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" .
- docker push "$CI_REGISTRY_IMAGE${tag}"
# Run this job in a branch where a Dockerfile exists
rules:
- if: $CI_COMMIT_BRANCH == "master"
- if: $CI_COMMIT_TAG != null
upload:
stage: upload
image: curlimages/curl:latest
rules:
- if: '$CI_COMMIT_TAG != null'
script:
- |
PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file build/libs/MDROReport-Full.jar ${PACKAGE_REGISTRY_URL}/MDROReport-${CI_COMMIT_TAG}-Full.jar
- |
PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file webapp/build/libs/MDROReport-Light.jar ${PACKAGE_REGISTRY_URL}/MDROReport-${CI_COMMIT_TAG}-Light.jar
- |
PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file webapp/build/libs/webapp.war ${PACKAGE_REGISTRY_URL}/webapp-${CI_COMMIT_TAG}.war
- |
PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file testdataGenerator/build/libs/MDROTestdataGenerator.jar ${PACKAGE_REGISTRY_URL}/MDROTestdataGenerator-${CI_COMMIT_TAG}.jar
release_job:
image: registry.gitlab.com/gitlab-org/release-cli:latest
stage: release
rules:
- if: '$CI_COMMIT_TAG != null'
needs:
- job: build
artifacts: true
script:
- PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
- echo PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
release:
name: "Auto-Release $CI_COMMIT_SHORT_SHA"
description: "Automatic created release $CI_COMMIT_TITLE"
tag_name: "$CI_COMMIT_SHORT_SHA"
assets:
links:
- name: MDROReport-${CI_COMMIT_TAG}-Full.jar
url: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}/MDROReport-${CI_COMMIT_TAG}-Full.jar
- name: MDROReport-${CI_COMMIT_TAG}-Light.jar
url: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}/MDROReport-${CI_COMMIT_TAG}-Light.jar
- name: webapp-${CI_COMMIT_TAG}.war
url: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}/webapp-${CI_COMMIT_TAG}.war
- name: MDROTestdataGenerator-${CI_COMMIT_TAG}.jar
url: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}/MDROTestdataGenerator-${CI_COMMIT_TAG}.jar