@@ -16,94 +16,174 @@ jobs:
1616 - name : Checkout
1717 uses : actions/checkout@v3
1818
19+ - name : Make application-secret.yml without env
20+ run : |
21+ touch ./src/main/resources/application-secret.yml
22+ echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.yml
23+
1924 # JDK version 설정
2025 - name : Set up JDK 17
2126 uses : actions/setup-java@v3
2227 with :
2328 java-version : ' 17'
2429 distribution : ' temurin'
2530
26- # 그래들 캐싱
27- - name : Gradle Caching
28- uses : actions/cache@v3
29- with :
30- path : |
31- ~/.gradle/caches
32- ~/.gradle/wrapper
33- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
34- restore-keys : |
35- ${{ runner.os }}-gradle-
36-
37- - name : Make application-secret.yml without env
38- run : |
39- touch ./src/main/resources/application-secret.yml
40- echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.yml
41- env :
42- PROPERTIES_DEV : ${{ secrets.APPLICATION_SECRET }}
43-
44- - name : Make env
45- run : |
46- touch .env
47- echo "${{ secrets.ENV_PROD }}" > .env
48- env :
49- PROPERTIES_DEV : ${{ secrets.ENV_PROD }}
50-
51- # Gradle build
31+ # # gradle build
5232 - name : Build with Gradle
53- run : ./gradlew build -x test :spotlessApply
54-
55- - name : Docker meta
56- id : docker_meta
57- uses : crazy-max/ghaction-docker-meta@v1
58- with :
59- images : ceos/ceos-server-dev
60-
61- - name : Set up Docker Buildx
62- uses : docker/setup-buildx-action@v1
33+ run : ./gradlew bootJar
6334
6435 - name : Login to DockerHub
65- uses : docker/login-action@v1
36+ uses : docker/login-action@v3
6637 with :
6738 username : ${{ secrets.DOCKER_USERNAME }}
6839 password : ${{ secrets.DOCKER_PASSWORD }}
6940
70- - name : Docker build & push
71- uses : docker/build-push-action@v2
41+ - name : Docker app build & push
42+ uses : docker/build-push-action@v5
7243 with :
7344 context : .
7445 file : ./Dockerfile
7546 platforms : linux/amd64
7647 push : true
7748 tags : ${{ secrets.DOCKER_USERNAME }}/ceos-backend
7849
79- - name : create remote directory
80- uses : appleboy/ssh- action@master
50+ - name : Docker nginx build & push
51+ uses : docker/build-push- action@v5
8152 with :
82- host : ${{ secrets.EC2_HOST_PROD }}
83- username : ubuntu
84- key : ${{ secrets.EC2_KEY_PROD }}
85- script : mkdir -p ~/srv/ubuntu/ceos_web_dev
86-
87- - name : copy source via ssh key
88- uses : burnett01/rsync-deployments@4.1
89- with :
90- switches : -avzr --delete
91- remote_path : ~/srv/ubuntu/
92- remote_host : ${{ secrets.EC2_HOST_PROD }}
93- remote_user : ubuntu
94- remote_key : ${{ secrets.EC2_KEY_PROD }}
53+ context : .
54+ file : ./config/nginx/Dockerfile
55+ platforms : linux/amd64
56+ push : true
57+ tags : ${{ secrets.DOCKER_USERNAME }}/ceos-nginx
9558
59+ # ssh 접근 후 docker 이미지 pull 및 컨테이너 재시작
9660 - name : executing remote ssh commands using password
9761 uses : appleboy/ssh-action@master
9862 with :
9963 host : ${{ secrets.EC2_HOST_PROD }}
100- username : ubuntu
64+ username : ec2-user # ubuntu 에서 변경
10165 key : ${{ secrets.EC2_KEY_PROD }}
10266 script : |
103- sh ~/srv/ubuntu/config/scripts/deploy.sh
104- sudo docker stop $(sudo docker ps -a -q)
105- sudo docker rm $(sudo docker ps -a -q)
106- sudo docker rmi $(sudo docker images -q)
107- sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml pull
108- sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml up --build -d
109-
67+ cd /home/ec2-user/ceos
68+
69+ sudo touch .env
70+ echo "${{ secrets.ENV_PROD }}" | sudo tee .env > /dev/null
71+
72+ sudo curl -o docker-compose.yml https://raw.githubusercontent.com/CEOS-Developers/CEOS-BE/main/docker-compose.yml
73+
74+ sudo chmod 666 /var/run/docker.sock
75+ sudo docker rm -f $(docker ps -qa)
76+ sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-backend
77+ sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-nginx
78+ docker-compose -f docker-compose.yml --env-file ./.env up -d
79+ docker image prune -f
80+
81+ # name: Deploy to EC2
82+ #
83+ # on:
84+ # push:
85+ # branches:
86+ # - main
87+ #
88+ # permissions:
89+ # contents: read
90+ #
91+ # jobs:
92+ # build:
93+ # runs-on: ubuntu-latest
94+ # steps:
95+ # # 기본 체크아웃
96+ # - name: Checkout
97+ # uses: actions/checkout@v3
98+ #
99+ # # JDK version 설정
100+ # - name: Set up JDK 17
101+ # uses: actions/setup-java@v3
102+ # with:
103+ # java-version: '17'
104+ # distribution: 'temurin'
105+ #
106+ # # 그래들 캐싱
107+ # - name: Gradle Caching
108+ # uses: actions/cache@v3
109+ # with:
110+ # path: |
111+ # ~/.gradle/caches
112+ # ~/.gradle/wrapper
113+ # key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
114+ # restore-keys: |
115+ # ${{ runner.os }}-gradle-
116+ #
117+ # - name: Make application-secret.yml without env
118+ # run: |
119+ # touch ./src/main/resources/application-secret.yml
120+ # echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.yml
121+ # env:
122+ # PROPERTIES_DEV: ${{ secrets.APPLICATION_SECRET }}
123+ #
124+ # - name: Make env
125+ # run: |
126+ # touch .env
127+ # echo "${{ secrets.ENV_PROD }}" > .env
128+ # env:
129+ # PROPERTIES_DEV: ${{ secrets.ENV_PROD }}
130+ #
131+ # # Gradle build
132+ # - name: Build with Gradle
133+ # run: ./gradlew build -x test :spotlessApply
134+ #
135+ # - name: Docker meta
136+ # id: docker_meta
137+ # uses: crazy-max/ghaction-docker-meta@v1
138+ # with:
139+ # images: ceos/ceos-server-dev
140+ #
141+ # - name: Set up Docker Buildx
142+ # uses: docker/setup-buildx-action@v1
143+ #
144+ # - name: Login to DockerHub
145+ # uses: docker/login-action@v1
146+ # with:
147+ # username: ${{ secrets.DOCKER_USERNAME }}
148+ # password: ${{ secrets.DOCKER_PASSWORD }}
149+ #
150+ # - name: Docker build & push
151+ # uses: docker/build-push-action@v2
152+ # with:
153+ # context: .
154+ # file: ./Dockerfile
155+ # platforms: linux/amd64
156+ # push: true
157+ # tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend
158+ #
159+ # - name: create remote directory
160+ # uses: appleboy/ssh-action@master
161+ # with:
162+ # host: ${{ secrets.EC2_HOST_PROD }}
163+ # username: ubuntu
164+ # key: ${{ secrets.EC2_KEY_PROD }}
165+ # script: mkdir -p ~/srv/ubuntu/ceos_web_dev
166+ #
167+ # - name: copy source via ssh key
168+ # uses: burnett01/rsync-deployments@4.1
169+ # with:
170+ # switches: -avzr --delete
171+ # remote_path: ~/srv/ubuntu/
172+ # remote_host: ${{ secrets.EC2_HOST_PROD }}
173+ # remote_user: ubuntu
174+ # remote_key: ${{ secrets.EC2_KEY_PROD }}
175+ #
176+ # - name: executing remote ssh commands using password
177+ # uses: appleboy/ssh-action@master
178+ # with:
179+ # host: ${{ secrets.EC2_HOST_PROD }}
180+ # username: ubuntu
181+ # key: ${{ secrets.EC2_KEY_PROD }}
182+ # script: |
183+ # sh ~/srv/ubuntu/config/scripts/deploy.sh
184+ # sudo docker stop $(sudo docker ps -a -q)
185+ # sudo docker rm $(sudo docker ps -a -q)
186+ # sudo docker rmi $(sudo docker images -q)
187+ # sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml pull
188+ # sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml up --build -d
189+ #
0 commit comments