Skip to content

Merge pull request #368 from CSID-DGU/fix/expires-at-change-request-json #71

Merge pull request #368 from CSID-DGU/fix/expires-at-change-request-json

Merge pull request #368 from CSID-DGU/fix/expires-at-change-request-json #71

Workflow file for this run

name: CI/CD to On-Prem Kubernetes with Helm
on:
push:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 📦 소스 코드 체크아웃
uses: actions/checkout@v4
- name: ☕️ JDK 17 설정
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: 🛠 application.yml 생성
run: |
mkdir -p ./src/main/resources
echo "${{ secrets.APPLICATION }}" > ./src/main/resources/application.yml
- name: ⚡ Gradle Build (테스트 제외)
run: ./gradlew build -x test
- name: 🐳 Docker Build & Push to Docker Hub
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
docker build -t ${{ secrets.DOCKER_USERNAME }}/admin-prod:latest .
docker push ${{ secrets.DOCKER_USERNAME }}/admin-prod:latest
docker logout
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: 🚀 Helm을 통한 쿠버네티스 배포
uses: appleboy/ssh-action@v1.2.5
with:
host: ${{ secrets.K8S_HOST }}
port: ${{ secrets.K8S_PORT }}
username: ${{ secrets.K8S_USERNAME }}
key: ${{ secrets.K8S_PRIVATE_KEY }}
script: |
set -e # 실패 시 즉시 중단
export KUBECONFIG=/etc/kubernetes/ci-deployer.conf
echo "✅ 쿠버네티스 연결 테스트"
kubectl get nodes
echo "📦 Helm 차트 배포 (절대 경로 사용)"
helm upgrade --install admin-prod /opt/admin_be/helm/admin-prod \
--namespace default \
--create-namespace \
--set image.repository=${{ secrets.DOCKER_USERNAME }}/admin-prod \
--set image.tag=latest \
--set env.application="$(echo "${{ secrets.APPLICATION }}" | base64 -w 0)" \
--set args[0]="--spring.profiles.active=prod" \
--set forceReload=$(date +%s)
echo "🎉 배포 완료!"