Skip to content

[CI] Add GitHub Actions pipeline for Frontend service #32

[CI] Add GitHub Actions pipeline for Frontend service

[CI] Add GitHub Actions pipeline for Frontend service #32

Workflow file for this run

name: ad-service-ci
on:
pull_request:
branches: [main]
push:
paths:
- '.github/workflows/ad.yaml'
- 'src/ad/**'
pull_request_target:
branches: [main]
paths:
- '.github/workflows/ad.yaml'
- 'src/ad/**'
jobs:
unit-testing:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Give Gradle permission to execute
run: chmod +x ./src/ad/gradlew
- name: Run unit tests
working-directory: ./src/ad
run: ./gradlew test
code-quality:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Give Gradle permission to execute
run: chmod +x ./src/ad/gradlew
- name: Run Google Java Format Check
working-directory: ./src/ad
run: ./gradlew verifyGoogleJavaFormat
continue-on-error: true
build-and-push:
runs-on: ubuntu-latest
needs: [unit-testing, code-quality]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Docker
uses: docker/setup-buildx-action@v1
- name: Login to Docker
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: ./src/ad
file: ./src/ad/Dockerfile
push: true
tags: neamulkabiremon/ad:${{ github.sha }}
update-k8s-deployment:
runs-on: ubuntu-latest
needs: build-and-push
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Update Kubernetes Deployment
run: |
sed -i "s|image: .*|image: ${{ secrets.DOCKER_USERNAME }}/checkout:${{ github.sha }}|" kubernetes/ad/deploy.yaml
cat kubernetes/ad/deploy.yaml
- name: Commit and push updated Kubernetes manifest
run: |
git config --global user.email "neamulkabiremon@gmail.com"
git config --global user.name "neamulkabiremon"
git add kubernetes/ad/deploy.yaml
git commit -m "[CI]: Update checkout deployment image tag"
git push