-
Notifications
You must be signed in to change notification settings - Fork 0
113 lines (98 loc) · 4.23 KB
/
release-build-backend.yml
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
113
name: Build backend release
on: [workflow_dispatch]
jobs:
release:
name: Create docker release
runs-on: ubuntu-latest
steps:
- name: Git checkout to main branch # Releases are published on main branch
uses: actions/checkout@v4
with: { ref: main }
- name: Install Java and Maven
uses: actions/setup-java@v3
with:
java-version: "17"
distribution: "temurin"
cache: "maven"
- name: Clean Maven Project Version
id: set-version
run: |
current_version=$(mvn help:evaluate -f mobidam-sst-management-backend/pom.xml -Dexpression=project.version -q -DforceStdout)
echo "Current version: $current_version"
new_version=$(echo $current_version | sed 's/-SNAPSHOT//')
echo "New version: $new_version"
mvn -B versions:set -f mobidam-sst-management-backend/pom.xml -DnewVersion=$new_version
git config --global user.email "github-actions@github.com"
git config --global user.name "GitHub Actions"
git add mobidam-sst-management-backend/pom.xml
git commit -m "Bump backend main version to $new_version"
git push
echo "new_version=$new_version" >> $GITHUB_OUTPUT
- name: Build with Maven
run: mvn -B verify -f mobidam-sst-management-backend/pom.xml -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract Docker metadata
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}-backend
- name: Build and push app
uses: docker/build-push-action@v4
with:
context: ./mobidam-sst-management-backend
push: true
tags: ghcr.io/it-at-m/mobidam-sst-management-backend:${{ steps.set-version.outputs.new_version }}
github-release:
needs: release
name: Create github release
runs-on: ubuntu-latest
steps:
- name: Git checkout to main branch # Releases are published on main branch
uses: actions/checkout@v4
with: { ref: main }
- name: Get New Project Version
id: get-version
run: |
current_version=$(mvn help:evaluate -f mobidam-sst-management-backend/pom.xml -Dexpression=project.version -q -DforceStdout)
new_version=$(echo $current_version | sed 's/-SNAPSHOT//')
echo "New version: $new_version"
echo "new_version=$new_version" >> $GITHUB_OUTPUT
- name: Create GitHub Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: backend-${{ steps.get-version.outputs.new_version }}
release_name: Release Backend ${{ steps.get-version.outputs.new_version }}
draft: false
prerelease: false
increase-snapshot:
needs: release
name: Increase patch-number of the SNAPSHOT-Version
runs-on: ubuntu-latest
steps:
- name: Git checkout to sprint branch # Snapshots are published on sprint branch
uses: actions/checkout@v4
with: { ref: sprint }
- name: Set Maven Project Version
id: set-version
run: |
current_version=$(mvn help:evaluate -f mobidam-sst-management-backend/pom.xml -Dexpression=project.version -q -DforceStdout)
echo "Current version: $current_version"
new_version=$(echo $current_version | awk -F. -v OFS=. '{$3=$3+1; print $0"-SNAPSHOT"}')
echo "New version: $new_version"
mvn -B versions:set -DnewVersion=$new_version -f mobidam-sst-management-backend/pom.xml
git config --global user.email "github-actions@github.com"
git config --global user.name "GitHub Actions"
git add mobidam-sst-management-backend/pom.xml
git commit -m "Bump backend version to $new_version"
git push