1+ name : Build and Push Taxonomy Service Image
2+
3+ on :
4+ push :
5+ tags :
6+ - ' *'
7+
8+ jobs :
9+ build-and-push :
10+ runs-on : ubuntu-latest
11+
12+ steps :
13+ # Step 1: Checkout the code
14+ - name : Checkout code
15+ uses : actions/checkout@v2
16+
17+ # Step 2: Set up JDK 11 and Maven
18+ - name : Set up JDK 11 and Maven
19+ uses : actions/setup-java@v3
20+ with :
21+ distribution : ' temurin'
22+ java-version : ' 11'
23+ cache : ' maven'
24+
25+ # Step 3: Set up Login to Docker registry
26+ - name : Registry Login
27+ uses : ./.github/actions/registry-login
28+ with :
29+ registry_provider : ${{ vars.REGISTRY_PROVIDER }}
30+ gcp_service_account_key : ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
31+ registry_name : ${{ secrets.REGISTRY_NAME }}
32+ registry_url : ${{ secrets.REGISTRY_URL }}
33+ registry_username : ${{ secrets.REGISTRY_USERNAME }}
34+ registry_password : ${{ secrets.REGISTRY_PASSWORD }}
35+ github_token : ${{ secrets.GITHUB_TOKEN }}
36+
37+ # Step 4: Build the project
38+ - name : Build Taxonomy API Service
39+ run : |
40+ mvn clean install -DskipTests=true \
41+ -DCLOUD_STORE_GROUP_ID=${{ vars.CLOUD_STORE_GROUP_ID }} \
42+ -DCLOUD_STORE_ARTIFACT_ID=${{ vars.CLOUD_STORE_ARTIFACT_ID }} \
43+ -DCLOUD_STORE_VERSION=${{ vars.CLOUD_STORE_VERSION }}
44+
45+ # Step 5: Package the project
46+ - name : Package Taxonomy API Service
47+ run : |
48+ cd taxonomy-api
49+ mvn play2:dist -pl taxonomy-service \
50+ -DCLOUD_STORE_GROUP_ID=${{ vars.CLOUD_STORE_GROUP_ID }} \
51+ -DCLOUD_STORE_ARTIFACT_ID=${{ vars.CLOUD_STORE_ARTIFACT_ID }} \
52+ -DCLOUD_STORE_VERSION=${{ vars.CLOUD_STORE_VERSION }}
53+
54+ # Step 6: Build Docker image
55+ - name : Build Docker Image
56+ run : |
57+ IMAGE_NAME="taxonomy-api"
58+ IMAGE_TAG=$(echo "${{ github.ref_name }}_$(echo $GITHUB_SHA | cut -c1-7)" | tr '[:upper:]' '[:lower:]')
59+ docker build -f build/taxonomy-service/Dockerfile -t $REGISTRY_URL/${IMAGE_NAME}:${IMAGE_TAG} .
60+
61+ echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_ENV
62+ echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_ENV
63+
64+ # Step 7: Push Docker Image
65+ - name : Push Docker Image
66+ run : |
67+ docker push $REGISTRY_URL/${IMAGE_NAME}:${IMAGE_TAG}
68+ echo "Pushed Docker image: $REGISTRY_URL/${IMAGE_NAME}:${IMAGE_TAG}"
0 commit comments