Skip to content

Changed package name for backend. #40

Changed package name for backend.

Changed package name for backend. #40

Workflow file for this run

name: Backend CI
on:
push:
paths:
- 'backend/**'
branches: [ main ]
pull_request:
paths:
- 'backend/**'
workflow_dispatch:
jobs:
Lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
restore-keys: ${{ runner.os }}-gradle
- name: Lint with Ktlint
run: ./gradlew ktlintCheck
- name: Archive ktlint reports
uses: actions/upload-artifact@v4
if: always()
with:
name: Lint Reports
path: |
**/build/reports/ktlint/**/*.txt
Build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
restore-keys: ${{ runner.os }}-gradle
- name: Build with Gradle
run: ./gradlew build
Test:
needs: [ Build ]
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }}
restore-keys: ${{ runner.os }}-gradle
- name: Build with Gradle
run: ./gradlew test
- name: Archive test reports
uses: actions/upload-artifact@v4
if: always()
with:
name: Test Reports
path: |
**/build/reports/tests/test
Dockerize:
if: (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref == 'refs/heads/main'
needs: [ Build, Lint, Test ]
environment: production
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build and Push Image
uses: ./.github/actions/docker_build_push
with:
directory: ./backend
image-name: backend
image-version: latest
token: ${{ secrets.GITHUB_TOKEN }}
Deploy:
needs: [ Dockerize ]
environment: production
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Kubectl tool installer
uses: Azure/setup-kubectl@v1
- name: Setup kubectl
env:
K8S_CONFIG: ${{ secrets.K8S_CONFIG }}
run: |
mkdir -p $HOME/.kube
echo "${K8S_CONFIG}" | base64 --decode > $HOME/.kube/config
- name: Restart Deployment
run: kubectl rollout restart deployment/backend -n prod