Skip to content

Commit bc1c02f

Browse files
Create bucl-cicd.yml
1 parent 6919049 commit bc1c02f

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

.github/workflows/bucl-cicd.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# github repository Actions 페이지에 나타낼 이름
2+
name: BUCL CI/CD
3+
4+
# event trigger
5+
on:
6+
push:
7+
branches:
8+
- dev
9+
- main
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
CI-CD:
16+
runs-on: ubuntu-latest
17+
steps:
18+
19+
## jdk setting
20+
- uses: actions/checkout@v3
21+
- name: Set up JDK 17
22+
uses: actions/setup-java@v3
23+
with:
24+
java-version: '17'
25+
distribution: 'temurin' # https://github.com/actions/setup-java
26+
27+
## gradle caching
28+
- name: Gradle Caching
29+
uses: actions/cache@v3
30+
with:
31+
path: |
32+
~/.gradle/caches
33+
~/.gradle/wrapper
34+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
35+
restore-keys: |
36+
${{ runner.os }}-gradle-
37+
38+
## gradle build
39+
- name: Change gradlew permissions
40+
run: chmod +x ./gradlew
41+
42+
- name: Build with Gradle
43+
run: ./gradlew build
44+
45+
## docker build & push to production
46+
- name: Docker build & push to ECR
47+
if: contains(github.ref, 'dev')
48+
run: |
49+
sudo aws ecr get-login-password --region ${{ secrets.ECR_REGION }} | docker login --username ${{ secrets.ECR_USERNAME }} --password-stdin ${{ secrets.ECR_PASSWORD }}
50+
sudo docker build --platform linux/amd64 -t ${{ secrets.ECR_REPO }} .
51+
sudo docker tag ${{ secrets.ECR_REPO }}:latest ${{ secrets.ECR_PASSWORD }}/${{ secrets.ECR_REPO }}:latest
52+
sudo docker push ${{ secrets.ECR_PASSWORD }}/${{ secrets.ECR_REPO }}:latest
53+
54+
# ## deploy to production
55+
- name: Deploy to prod
56+
uses: appleboy/ssh-action@master
57+
id: deploy-prod
58+
if: contains(github.ref, 'main')
59+
with:
60+
host: ${{ secrets.HEYPETS_SERVER_HOST }}
61+
username: ${{ secrets.HEYPETS_SERVER_USERNAME }}
62+
port: ${{ secrets.HEYPETS_SERVER_PORT }}
63+
key: ${{ secrets.HEYPETS_PRIVATE_KEY }}
64+
script: |
65+
sudo apt-get update
66+
sudo docker compose down
67+
sudo docker rmi $(sudo docker images -q)
68+
sudo aws ecr get-login-password --region ${{ secrets.ECR_REGION }} | docker login --username ${{ secrets.ECR_USERNAME }} --password-stdin ${{ secrets.ECR_PASSWORD }}
69+
docker pull ${{ secrets.ECR_PASSWORD }}/${{ secrets.ECR_REPO }}:latest
70+
sudo docker image prune -f
71+
sudo docker compose up -d

0 commit comments

Comments
 (0)