1+ name : Release Eum Server
2+
3+ on :
4+ push :
5+ tags :
6+ - ' [0-9]*.[0-9]*.[0-9]**'
7+
8+ jobs :
9+ test_eum_server :
10+ uses : ./.github/workflows/eumserver_test.yml
11+
12+ build_and_release :
13+ name : Build and release EUM Server
14+ runs-on : ubuntu-latest
15+ needs : [test_eum_server]
16+ steps :
17+ - name : Checkout code
18+ uses : actions/checkout@v3
19+ - name : Grant execute permission for gradlew
20+ run : chmod +x gradlew
21+ - name : Build project
22+ run : ./gradlew assemble bootJar -PbuildVersion=${{ github.ref_name }}
23+ - name : Create BOM
24+ run : ./gradlew cyclonedxBom
25+ - name : Add artifacts
26+ run : |
27+ mkdir artifacts
28+ cp build/libs/*.jar ./artifacts
29+ cp build/reports/bom.json ./artifacts
30+ cp build/reports/bom.xml ./artifacts
31+ # Uploading eumserver jar, for creating docker image in the next step
32+ - name : Upload eumserver jar
33+ uses : actions/upload-artifact@v3
34+ with :
35+ name : eumserver-jar
36+ path : artifacts/inspectit-ocelot-eum-server-${{ github.ref_name }}.jar
37+ - name : " Build Changelog"
38+ id : build_changelog
39+ uses : mikepenz/release-changelog-builder-action@v3.5.0
40+ with :
41+ # Config for the Changelog, reference: https://github.com/marketplace/actions/release-changelog-builder
42+ configuration : " eumserver-release-config.json"
43+ env :
44+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
45+ - name : Create Release
46+ uses : softprops/action-gh-release@v0.1.15
47+ with :
48+ tag_name : ${{ github.ref_name }}
49+ body : ${{ steps.build_changelog.outputs.changelog }}
50+ files : artifacts/*
51+ generate_release_notes : true
52+ token : ${{ github.token }}
53+ name : Version ${{ github.ref_name }}
54+
55+ publish_docker_image :
56+ name : " Publish docker image"
57+ runs-on : ubuntu-latest
58+ needs : [build_and_release]
59+ steps :
60+ - name : Checkout
61+ uses : actions/checkout@v3
62+ - name : Download eumserver jar
63+ uses : actions/download-artifact@v3
64+ with :
65+ name : eumserver-jar # with the name we are referencing the eumserver-jar uploaded in the build_and_release job
66+ path : docker/
67+ - name : Check if jar exists and rename it
68+ run : |
69+ cd docker
70+ mv inspectit-ocelot-eum-server-${{ github.ref_name }}.jar inspectit-ocelot-eum-server.jar
71+ ls
72+ - name : Set up QEMU
73+ uses : docker/setup-qemu-action@v2
74+ - name : Set up Docker Buildx
75+ uses : docker/setup-buildx-action@v2
76+ - name : Login to Docker Hub
77+ uses : docker/login-action@v2
78+ with :
79+ username : ${{ secrets.DOCKER_HUB_USER }}
80+ password : ${{ secrets.DOCKER_HUB_PASSWORD }}
81+ - name : Set up Docker Buildx
82+ uses : docker/setup-buildx-action@v2
83+ - name : Build and push image
84+ uses : docker/build-push-action@v3
85+ with :
86+ context : .
87+ push : true
88+ tags : inspectit/inspectit-ocelot-eum-server${{ github.ref_name }}, inspectit/inspectit-ocelot-eum-server:latest
89+ file : ./docker/Dockerfile
0 commit comments