fix: Flyway 관련 배포 스크립트 내용 제거 #36
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: Deploy spring-boot app to GCP k3s cluster | |
on: | |
push: | |
branches: [ develop ] | |
paths-ignore: | |
- '**.md' | |
- 'docs/**' | |
- '.gitignore' | |
permissions: | |
contents: write | |
jobs: | |
Deploy-docker-image: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 # repo에 있는 파일들 self-host 머신에 복제 | |
- name: Set up JDK 17 # jdk 셋업 17로 해야되나?? | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
check-latest: true | |
- name: Setup Build with Gradle # gradle 셋업 | |
uses: gradle/gradle-build-action@v2 | |
with: | |
gradle-version: current | |
arguments: build # Gradle의 'build' 태스크를 실행 | |
- name: DB secret capture | |
run: | | |
echo "DB_HOST=${{ secrets.DB_HOST }}" >> $GITHUB_ENV | |
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> $GITHUB_ENV | |
- name: Build # JAR 빌드 | |
run: | | |
chmod +x ./gradlew | |
./gradlew build -Dspring.profiles.active=cd | |
- name: Set lowercase repository name without owner environment variable | |
run: | | |
echo "REPOSITORY_NAME=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]' | cut -d'/' -f2)" >> $GITHUB_ENV | |
- name: Get lowercase branch name | |
run: | | |
echo "BRANCH_NAME=$(echo $GITHUB_REF_NAME | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV | |
- name: Get docker image name | |
run: | | |
echo "IMAGE_NAME=${{ secrets.DOCKER_USERNAME }}/${{ env.REPOSITORY_NAME }}:${{ env.BRANCH_NAME }}" >> $GITHUB_ENV | |
- name: Build spring docker image | |
run: | | |
docker build -t ${{ env.IMAGE_NAME }} . | |
docker tag ${{ env.IMAGE_NAME }} ${{ secrets.DOCKER_USERNAME }}/${{ env.REPOSITORY_NAME }}:latest | |
- name: Push docker image | |
run: | | |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
docker push ${{ env.IMAGE_NAME }} | |
docker push ${{ secrets.DOCKER_USERNAME }}/${{ env.REPOSITORY_NAME }}:latest | |
Deploy: | |
needs: Deploy-docker-image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 # repo에 있는 파일들 self-host 머신에 복제 | |
- name: Transport docker-compose.yaml to server | |
uses: appleboy/scp-action@master | |
with: | |
host: ${{ secrets.GCP_HOST }} | |
username: ${{ secrets.GCP_USERNAME }} | |
key: ${{ secrets.GCP_SECRET_ACCESS_KEY }} | |
passphrase: ${{ secrets.GCP_SECRET_ACCESS_KEY_PASSPHRASE }} | |
overwrite: true | |
source: ./manifest/spring-redis.yml | |
target: ~/spring-redis | |
- name: Connect to GCP with SSH | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.GCP_HOST }} | |
username: ${{ secrets.GCP_USERNAME }} | |
key: ${{ secrets.GCP_SECRET_ACCESS_KEY }} | |
passphrase: ${{ secrets.GCP_SECRET_ACCESS_KEY_PASSPHRASE }} | |
script: | | |
kubectl delete -f ~/spring-redis/manifest/spring-redis.yml | |
kubectl apply -f ~/spring-redis/manifest/spring-redis.yml | |