chore: 도메인주소 이전 #29
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: CD | |
on: | |
push: #해당 브랜치에 push(merge) 했을 때 | |
branches: | |
- qa | |
permissions: write-all #테스트 결과 작성을 위해 쓰기권한 추가 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# 1) 워크플로우 실행 전 기본적으로 체크아웃 필요 | |
- uses: actions/checkout@v3 | |
# 2) JDK 17 버전 설치 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: 17 | |
distribution: 'zulu' | |
# 3) Gradle Caching | |
- name: Gradle Cashing | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
# 4) Gradle 권한 부여 | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
# 5) Set for application-secret.yml | |
- name: Make application-secret.yml | |
run: | | |
cd ./src/main/resources | |
touch ./application-secret.yml | |
echo "${{ secrets.PROPERTIES_SECRET }}" > ./application-secret.yml | |
shell: bash | |
# 6) 로그 xml 파일 설정 | |
- name: Make logback-spring.xml | |
run: | | |
cd ./src/main/resources | |
touch ./logback-spring.xml | |
echo "${{ secrets.LOGBACK_SPRING }}" > ./logback-spring.xml | |
shell: bash | |
# 7) jar 파일 생성 | |
- name: Build With Gradle | |
run: ./gradlew bootJar | |
# 8) Docker 빌드 & 푸쉬 | |
- name: docker build and push | |
run: | | |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
docker build -f Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY}} . | |
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY}} | |
# 9) Deploy (DEV-Server) | |
- name: Deploy (DEV) | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.EC2_HOST }} | |
username: ${{ secrets.EC2_USERNAME }} | |
key: ${{ secrets.EC2_KEY }} | |
script: | | |
docker stop server | |
docker rm server | |
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY}}:latest | |
sudo docker-compose up -d | |
docker rmi -f $(docker images -f "dangling=true" -q) |