11# github repository actions 페이지에 나타날 이름
2- name : CD to dev using github actions
2+ name : CD for Release
33
44# event trigger
5- # develop 브랜치에 pull_request가 닫혔을 때 실행
65on :
7- pull_request :
8- types : [ closed ]
9- branches : [ "develop" ]
6+ release :
7+ types : [created]
108
119permissions :
1210 contents : read
1311
1412jobs :
15- DEV-CD :
16- if : github.event.pull_request.merged == true
13+ Release-CD :
1714 runs-on : ubuntu-latest
1815 steps :
1916 - uses : actions/checkout@v4
20- - name : ' Set up jdk'
17+
18+ - name : ' Set up JDK'
2119 uses : actions/setup-java@v3
2220 with :
2321 java-version : ' 17'
24- distribution : ' temurin' # https://github.com/actions/setup-java
22+ distribution : ' temurin'
23+
24+ - name : Extract release version
25+ id : version
26+ run : echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
2527
2628 - run : touch ./Dockerfile
2729 - run : echo "${{ secrets.DEV_DOCKERFILE }}" > ./Dockerfile
@@ -37,21 +39,22 @@ jobs:
3739 restore-keys : |
3840 ${{ runner.os }}-gradle-
3941
40- # # gradle build
42+ # gradle build
4143 - name : Build with Gradle
4244 run : |
4345 chmod +x ./gradlew
4446 ./gradlew build -x test
4547
46- # # docker build & push to production
47- - name : Docker build & push to dev
48+ # docker build & push
49+ - name : Docker build & push
4850 run : |
4951 docker login clap.kr-central-2.kcr.dev -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
50- docker build -t ${{ secrets.DOCKER_REPO }} .
51- docker push ${{ secrets.DOCKER_REPO }}
52+ docker build -t ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -t ${{ secrets.DOCKER_REPO }}:latest .
53+ docker push ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }}
54+ docker push ${{ secrets.DOCKER_REPO }}:latest
5255
53- # # deploy to dev
54- - name : Deploy to prod
56+ # deploy
57+ - name : Deploy
5558 uses : appleboy/ssh-action@master
5659 id : deploy
5760 with :
6164 port : ${{ secrets.DEV_HOST_PORT }}
6265 script : |
6366 docker rm -f taskflow
64- docker image rm ${{ secrets.DOCKER_REPO }} -f
67+ docker image rm ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -f
6568 docker run --name taskflow -d -p 9090:9090 \
6669 --env-file /home/ubuntu/.env \
67- ${{ secrets.DOCKER_REPO }} \
70+ ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} \
6871 --restart on-failure
72+
0 commit comments