Skip to content

Commit 0c0f490

Browse files
committed
Added workflow for taxonomy-service
1 parent 8b891ad commit 0c0f490

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: Build and Package Taxonomy API Service
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
tags:
8+
- '*'
9+
10+
jobs:
11+
build-and-package:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
# Step 1: Checkout the code
16+
- name: Checkout code
17+
uses: actions/checkout@v2
18+
19+
# Step 2: Set up JDK 11 and Maven
20+
- name: Set up JDK 11 and Maven
21+
uses: actions/setup-java@v3
22+
with:
23+
distribution: 'temurin'
24+
java-version: '11'
25+
cache: 'maven'
26+
27+
# Step 3: Set environment variables
28+
- name: Set environment variables
29+
run: |
30+
echo "CLOUD_STORE_GROUP_ID=org.sunbird" >> $GITHUB_ENV
31+
echo "CLOUD_STORE_ARTIFACT_ID=cloud-store-sdk_2.12" >> $GITHUB_ENV
32+
echo "CLOUD_STORE_VERSION=1.4.6" >> $GITHUB_ENV
33+
34+
# Step 4: Build the project
35+
- name: Build Taxonomy API Service
36+
run: |
37+
mvn clean install -DskipTests=true \
38+
-DCLOUD_STORE_GROUP_ID=${{ env.CLOUD_STORE_GROUP_ID }} \
39+
-DCLOUD_STORE_ARTIFACT_ID=${{ env.CLOUD_STORE_ARTIFACT_ID }} \
40+
-DCLOUD_STORE_VERSION=${{ env.CLOUD_STORE_VERSION }}
41+
42+
# Step 5: Package the project
43+
- name: Package Taxonomy API Service
44+
run: |
45+
cd taxonomy-api
46+
mvn play2:dist -pl taxonomy-service \
47+
-DCLOUD_STORE_GROUP_ID=${{ env.CLOUD_STORE_GROUP_ID }} \
48+
-DCLOUD_STORE_ARTIFACT_ID=${{ env.CLOUD_STORE_ARTIFACT_ID }} \
49+
-DCLOUD_STORE_VERSION=${{ env.CLOUD_STORE_VERSION }}
50+
51+
# Step 6: Set up Login to Docker registry
52+
- name: Determine registry and login
53+
run: |
54+
if [[ -n "${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}" ]]; then
55+
echo "Using Google Container Registry"
56+
echo "${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}" | base64 --decode > $HOME/gcloud-key.json
57+
gcloud auth activate-service-account --key-file=$HOME/gcloud-key.json
58+
gcloud auth configure-docker ${{ secrets.REGISTRY_NAME }}
59+
REGISTRY_URL=$(echo "${{ secrets.REGISTRY_URL }}" | tr '[:upper:]' '[:lower:]')
60+
61+
elif [[ -n "${{ secrets.REGISTRY_USERNAME }}" && -n "${{ secrets.REGISTRY_PASSWORD }}" ]]; then
62+
echo "Logging in to custom Docker registry"
63+
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ secrets.REGISTRY_NAME }} \
64+
--username ${{ secrets.REGISTRY_USERNAME }} --password-stdin
65+
REGISTRY_URL=$(echo "${{ secrets.REGISTRY_URL }}" | tr '[:upper:]' '[:lower:]')
66+
67+
else
68+
echo "Using GitHub Container Registry (GHCR)"
69+
REPO_NAME_LOWERCASE=$(echo "${GITHUB_REPOSITORY}" | tr '[:upper:]' '[:lower:]')
70+
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
71+
REGISTRY_URL="ghcr.io/$REPO_NAME_LOWERCASE"
72+
fi
73+
74+
echo "REGISTRY_URL=${REGISTRY_URL}" >> $GITHUB_ENV
75+
76+
# Step 7: Build Docker image
77+
- name: Build Docker Image
78+
run: |
79+
IMAGE_NAME="taxonomy-api"
80+
IMAGE_TAG=$(echo "${{ github.ref_name }}_$(echo $GITHUB_SHA | cut -c1-7)" | tr '[:upper:]' '[:lower:]')
81+
docker build -f build/taxonomy-api/Dockerfile -t $REGISTRY_URL/${IMAGE_NAME}:${IMAGE_TAG} .
82+
83+
echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_ENV
84+
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_ENV
85+
86+
# Step 8: Push Docker Image
87+
- name: Push Docker Image
88+
run: |
89+
docker push $REGISTRY_URL/${IMAGE_NAME}:${IMAGE_TAG}

0 commit comments

Comments
 (0)