1- deploy-to-dev :
2- runs-on : ubuntu-latest
3- needs : build-docker-image
4- environment : dev
5-
6- steps :
7- - name : checkout repository
8- uses : actions/checkout@v3
9-
10- - name : SSH to server and deploy
11- uses : appleboy/ssh-action@v1.1.0
12- with :
13- host : ${{ secrets.SERVER_HOST }}
14- username : ${{ secrets.SERVER_USERNAME }}
15- password : ${{ secrets.SERVER_PASSWORD }}
16- port : ${{ secrets.SERVER_PORT }}
17- script : |
18- echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }}
19-
20- echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api
21- echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin
22- echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth
23-
24- echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api
25- echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin
26- echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth
1+ name : Build and Deploy to Development Server
2+
3+ on :
4+ push :
5+ branches :
6+ - develop
7+ workflow_dispatch :
8+
9+ jobs :
10+ build-docker-image :
11+ runs-on : ubuntu-latest
12+ environment : dev
13+
14+ steps :
15+ - name : get repo from github
16+ uses : actions/checkout@v3
17+
18+ # JDK setting
19+ - name : Set up JDK 17
20+ uses : actions/setup-java@v4
21+ with :
22+ java-version : ' 17'
23+ distribution : ' temurin'
24+
25+ # gradle 빌드
26+ - name : Setup Gradle
27+ run : chmod +x gradlew
28+
29+ - name : Build with Gradle Wrapper
30+ run : |
31+ ./gradlew clean build -p aics-admin -x test
32+ ./gradlew clean build -p aics-api -x test
33+ ./gradlew clean build -p aics-auth -x test
34+
35+ # DockerHub 로그인
36+ - name : Docker login
37+ uses : docker/login-action@v2
38+ with :
39+ username : ${{ secrets.DOCKERHUB_USERNAME }}
40+ password : ${{ secrets.DOCKERHUB_PASSWORD }}
41+
42+ # Docker 이미지 빌드
43+ - name : Docker image build for aics-admin
44+ run : |
45+ docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} -f aics-admin/Dockerfile .
46+ docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest
47+
48+ - name : Docker image build for aics-api
49+ run : |
50+ docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} -f aics-api/Dockerfile .
51+ docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest
52+
53+ - name : Docker image build for aics-auth
54+ run : |
55+ docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} -f aics-auth/Dockerfile .
56+ docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest
57+
58+ # Docker Hub 이미지 푸시
59+ - name : docker Hub push for aics-admin
60+ run : |
61+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }}
62+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest
63+
64+ - name : docker Hub push for aics-api
65+ run : |
66+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }}
67+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest
68+
69+ - name : docker Hub push for aics-auth
70+ run : |
71+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }}
72+ docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest
73+
74+ deploy-to-dev :
75+ runs-on : ubuntu-latest
76+ needs : build-docker-image
77+ environment : dev
78+
79+ steps :
80+ - name : checkout repository
81+ uses : actions/checkout@v3
82+
83+ - name : SSH to server and deploy
84+ uses : appleboy/ssh-action@v1.1.0
85+ with :
86+ host : ${{ secrets.SERVER_HOST }}
87+ username : ${{ secrets.SERVER_USERNAME }}
88+ password : ${{ secrets.SERVER_PASSWORD }}
89+ port : ${{ secrets.SERVER_PORT }}
90+ script : |
91+ echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }}
92+
93+ echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api
94+ echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin
95+ echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth
96+
97+ echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api
98+ echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin
99+ echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth
0 commit comments