vtd-be-java-warehouse/refs/tags/v0.1.131~phu-teso #4127
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: vtd be java | |
on: | |
repository_dispatch: | |
types: | |
- vtd-be-java-** | |
env: | |
TRIGGERING_ACTOR: ${{ github.event.client_payload.triggering_actor}} | |
TRIGGERING_REF: ${{ github.event.client_payload.triggering_ref}} | |
TRIGGERING_REPOSITORY: ${{ github.event.client_payload.triggering_repo}} | |
TRIGGERING_SERVICE_NAME: ${{ github.event.client_payload.triggering_service_name}} | |
TRIGGERING_VERSION: ${{ github.event.client_payload.triggering_version}} | |
TRIGGERING_HASH: ${{ github.event.client_payload.triggering_hash}} | |
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }} | |
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} | |
GKE_ZONE: ${{ secrets.GKE_ZONE }} | |
DEPLOYMENT_NAME: ${{ secrets.DEPLOYMENT_IMAGE_NAME }}${{ github.event.client_payload.triggering_service_name }} | |
GAR_HOST: ${{ secrets.GAR_HOST }} | |
IMAGE_NAME: ${{ secrets.DEPLOYMENT_IMAGE_NAME }}${{ github.event.client_payload.triggering_service_name }} | |
ENV_PROPERTIES: ${{secrets.ENV_PROPERTIES }} | |
SPRING_PROFILES_ACTIVE: ${{ github.event.client_payload.triggering_env }} | |
jobs: | |
setup-build-publish-deploy: | |
environment: ${{ github.event.client_payload.triggering_env }} | |
env: | |
GKE_CLUSTER: ${{ secrets.GKE_CLUSTER }} | |
GAR_NAME: ${{ secrets.GAR_NAME }} | |
name: Setup build publish deploy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.TRIGGERING_REPOSITORY }} | |
token: ${{ secrets.GH_PAT }} | |
ref: ${{ env.TRIGGERING_HASH }} | |
- name: Clone properties file | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ secrets.VTD_REPOSITORY_ENV }} | |
sparse-checkout: v4-java/application-${{ github.event.client_payload.triggering_env }}.properties | |
path: temp/vtd-be-env/ | |
token: ${{ secrets.GH_PAT }} | |
- name: Switch profile | |
run: | | |
sed -i "s|spring.profiles.active=local|spring.profiles.active=${{ github.event.client_payload.triggering_env }}|g" src/main/resources/application.properties | |
mv temp/vtd-be-env/v4-java/application-${{ github.event.client_payload.triggering_env }}.properties src/main/resources/application-${{ github.event.client_payload.triggering_env }}.properties | |
- name: Authen GCP | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ env.GCP_SERVICE_ACCOUNT_KEY }}" | |
- name: Setup GCP | |
uses: google-github-actions/setup-gcloud@v2 | |
- name: Configuration | |
run: | | |
# Get GKE credentials | |
gcloud components install gke-gcloud-auth-plugin | |
export USE_GKE_GCLOUD_AUTH_PLUGIN=True | |
gcloud container clusters get-credentials $GKE_CLUSTER --zone=$GKE_ZONE | |
# Configure Docker | |
gcloud auth configure-docker --quiet | |
gcloud auth configure-docker $GAR_HOST --quiet | |
- name: Setup java 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version: "21" | |
- name: Build and package project | |
run: mvn -B package -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE --file pom.xml -DskipTests -q | |
- name: Build Docker Image | |
run: docker build -t $IMAGE_NAME:$TRIGGERING_VERSION . && docker images | |
- name: Push Docker Image to Artifact Registry | |
run: | | |
docker tag $IMAGE_NAME:$TRIGGERING_VERSION $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:$TRIGGERING_VERSION | |
docker tag $IMAGE_NAME:$TRIGGERING_VERSION $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:$TRIGGERING_HASH | |
docker tag $IMAGE_NAME:$TRIGGERING_VERSION $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:latest | |
docker push $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:$TRIGGERING_VERSION | |
docker push $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:$TRIGGERING_HASH | |
docker push $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:latest | |
- name: Update Deployment image URL | |
run: | | |
sed -i "s|image: $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:.*|image: $GAR_HOST/$GCP_PROJECT_ID/$GAR_NAME/$IMAGE_NAME:$TRIGGERING_VERSION|g" overlays/${{ env.TRIGGERING_SERVICE_NAME }}/${{ env.SPRING_PROFILES_ACTIVE }}/*.yaml | |
- name: Deploy to GKE | |
run: | | |
kubectl apply -R -f overlays/${{ env.TRIGGERING_SERVICE_NAME }}/${{ env.SPRING_PROFILES_ACTIVE }} |