1+ name : Build and Publish Consumer Image (Main)
2+
3+ on :
4+ push :
5+ branches :
6+ - " main"
7+ - " feature/deployment"
8+ paths :
9+ - ' consumers/consumer/src/**'
10+ - ' consumers/consumer-base/Dockerfile'
11+ - ' .github/workflows/consumer-build.yml'
12+
13+ concurrency :
14+ group : consumer-main
15+ cancel-in-progress : true
16+
17+ jobs :
18+ # ------------------------------
19+ # 1. BUILD & PUSH CONSUMER DOCKER IMAGE
20+ # ------------------------------
21+ build-and-push-consumer :
22+ runs-on : ubuntu-latest
23+
24+ permissions :
25+ contents : read
26+ packages : write
27+ id-token : write
28+
29+ steps :
30+ - name : Checkout repository
31+ uses : actions/checkout@v4
32+
33+ # -------- LOGIN GHCR --------
34+ - name : Login to GHCR
35+ uses : docker/login-action@v3
36+ with :
37+ registry : ghcr.io
38+ username : ${{ github.actor }}
39+ password : ${{ secrets.GITHUB_TOKEN }}
40+
41+ # -------- GRADLE BUILD --------
42+ - name : Set up JDK 17
43+ uses : actions/setup-java@v4
44+ with :
45+ distribution : temurin
46+ java-version : 17
47+
48+ - name : Make Gradle executable
49+ run : chmod +x ./gradlew
50+
51+ - name : Build consumer JAR
52+ run : |
53+ ./gradlew clean build
54+
55+ # ---------------------------------
56+
57+ - name : Set dynamic tags for Consumer
58+ id : vars
59+ run : |
60+ IMAGE_BASE_CONSUMER="ghcr.io/wake-ua/consumer-base"
61+ DATE=$(date +%Y%m%d)
62+ SHA_SHORT=$(echo "${GITHUB_SHA}" | cut -c1-7)
63+
64+ # Tags for consumer image
65+ echo "CONSUMER_LATEST=${IMAGE_BASE_CONSUMER}:latest" >> $GITHUB_OUTPUT
66+ echo "CONSUMER_SHA=${IMAGE_BASE_CONSUMER}:${SHA_SHORT}" >> $GITHUB_OUTPUT
67+ echo "CONSUMER_DATE=${IMAGE_BASE_CONSUMER}:${DATE}" >> $GITHUB_OUTPUT
68+
69+ # -------- DOCKER BUILD & PUSH --------
70+ - name : Build Docker image for Consumer
71+ run : |
72+ docker build \
73+ -t ${{ steps.vars.outputs.CONSUMER_LATEST }} \
74+ -t ${{ steps.vars.outputs.CONSUMER_SHA }} \
75+ -t ${{ steps.vars.outputs.CONSUMER_DATE }} \
76+ ./consumers/consumer-base
77+
78+ - name : Push Consumer images
79+ run : |
80+ docker push ${{ steps.vars.outputs.CONSUMER_LATEST }}
81+ docker push ${{ steps.vars.outputs.CONSUMER_SHA }}
82+ docker push ${{ steps.vars.outputs.CONSUMER_DATE }}
83+ # ---------------------------------
84+
85+
0 commit comments