Skip to content

Commit 993a70d

Browse files
committed
[Fix] ci/cd 변경
1 parent 1468f7c commit 993a70d

File tree

1 file changed

+72
-75
lines changed

1 file changed

+72
-75
lines changed

.github/workflows/ci-cd.yml

Lines changed: 72 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -9,95 +9,92 @@ name: Java CI with Gradle
99

1010
on:
1111
push:
12-
branches: [ "main" ]
12+
branches: ["main"]
1313

1414
jobs:
1515
build:
16-
if: github.event.pull_request.head.repo.full_name == github.repository
1716
if: github.event.repository.fork == false
1817
runs-on: ubuntu-latest
1918
permissions:
2019
id-token: write
2120
contents: read
2221

2322
steps:
24-
- uses: actions/checkout@v4
25-
- name: Set up JDK 21
26-
uses: actions/setup-java@v4
27-
with:
28-
java-version: '21'
29-
distribution: 'temurin'
30-
31-
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
32-
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
33-
- name: Setup Gradle
34-
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
35-
36-
- name: Build with Gradle Wrapper
37-
run: ./gradlew build
38-
39-
# 3. 도커허브 로그인
40-
- name: Login to DockerHub
41-
uses: docker/login-action@v3
42-
with:
43-
username: ${{ secrets.DOCKER_USERNAME }}
44-
password: ${{ secrets.DOCKER_PASSWORD }}
45-
46-
# 4. 도커 허브에 이미지 푸시
47-
- name: Push Docker Image
48-
uses: docker/build-push-action@v6
49-
with:
50-
push: true
51-
context: .
52-
tags: ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_NAME }}:latest
53-
54-
# 5. GCP 인증
55-
- name: Authenticate to GCP
56-
id: 'auth'
57-
uses: 'google-github-actions/auth@v2'
58-
with:
59-
workload_identity_provider: ${{ secrets.WORKLOAD_IDENTITY_PROVIDER }} # 생성한 워크로드 아이덴티티 풀의 ID
60-
service_account: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} # IAM 서비스 계정
61-
62-
# 6. GCP Compute Engine SSH로 배포
63-
- name: Deploy to GCP Compute Engine
64-
id: 'compute-ssh'
65-
uses: 'google-github-actions/ssh-compute@v1'
66-
with:
67-
instance_name: ${{ secrets.GCP_INSTANCE_NAME }}
68-
zone: ${{ secrets.GCP_INSTANCE_ZONE }}
69-
ssh_private_key: ${{ secrets.GCP_SSH_PRIVATE_KEY }}
70-
command: |
71-
mkdir ./${{ github.repository }}
72-
cd ./${{ github.repository }}
73-
ls -al
74-
sudo curl -o docker-compose.yml https://raw.githubusercontent.com/${{ github.repository }}/main/docker-compose.yml
75-
sudo docker-compose down
76-
sudo docker-compose up -d ${{ secrets.DOCKER_IMAGE_NAME }}
77-
sudo docker image prune -a -f
78-
79-
# Example of using the output
80-
- id: 'debug'
81-
run: |-
82-
echo '${{ steps.compute-ssh.outputs.stdout }}'
83-
echo '${{ steps.compute-ssh.outputs.stderr }}'
84-
23+
- uses: actions/checkout@v4
24+
- name: Set up JDK 21
25+
uses: actions/setup-java@v4
26+
with:
27+
java-version: "21"
28+
distribution: "temurin"
29+
30+
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
31+
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
32+
- name: Setup Gradle
33+
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
34+
35+
- name: Build with Gradle Wrapper
36+
run: ./gradlew build
37+
38+
# 3. 도커허브 로그인
39+
- name: Login to DockerHub
40+
uses: docker/login-action@v3
41+
with:
42+
username: ${{ secrets.DOCKER_USERNAME }}
43+
password: ${{ secrets.DOCKER_PASSWORD }}
44+
45+
# 4. 도커 허브에 이미지 푸시
46+
- name: Push Docker Image
47+
uses: docker/build-push-action@v6
48+
with:
49+
push: true
50+
context: .
51+
tags: ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_NAME }}:latest
52+
53+
# 5. GCP 인증
54+
- name: Authenticate to GCP
55+
id: "auth"
56+
uses: "google-github-actions/auth@v2"
57+
with:
58+
workload_identity_provider: ${{ secrets.WORKLOAD_IDENTITY_PROVIDER }} # 생성한 워크로드 아이덴티티 풀의 ID
59+
service_account: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} # IAM 서비스 계정
60+
61+
# 6. GCP Compute Engine SSH로 배포
62+
- name: Deploy to GCP Compute Engine
63+
id: "compute-ssh"
64+
uses: "google-github-actions/ssh-compute@v1"
65+
with:
66+
instance_name: ${{ secrets.GCP_INSTANCE_NAME }}
67+
zone: ${{ secrets.GCP_INSTANCE_ZONE }}
68+
ssh_private_key: ${{ secrets.GCP_SSH_PRIVATE_KEY }}
69+
command: |
70+
mkdir ./${{ github.repository }}
71+
cd ./${{ github.repository }}
72+
ls -al
73+
sudo curl -o docker-compose.yml https://raw.githubusercontent.com/${{ github.repository }}/main/docker-compose.yml
74+
sudo docker-compose down
75+
sudo docker-compose up -d ${{ secrets.DOCKER_IMAGE_NAME }}
76+
sudo docker image prune -a -f
77+
78+
# Example of using the output
79+
- id: "debug"
80+
run: |-
81+
echo '${{ steps.compute-ssh.outputs.stdout }}'
82+
echo '${{ steps.compute-ssh.outputs.stderr }}'
8583
8684
dependency-submission:
87-
8885
runs-on: ubuntu-latest
8986
permissions:
9087
contents: write
9188

9289
steps:
93-
- uses: actions/checkout@v4
94-
- name: Set up JDK 17
95-
uses: actions/setup-java@v4
96-
with:
97-
java-version: '21'
98-
distribution: 'temurin'
99-
100-
# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
101-
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
102-
- name: Generate and submit dependency graph
103-
uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
90+
- uses: actions/checkout@v4
91+
- name: Set up JDK 17
92+
uses: actions/setup-java@v4
93+
with:
94+
java-version: "21"
95+
distribution: "temurin"
96+
97+
# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
98+
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
99+
- name: Generate and submit dependency graph
100+
uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0

0 commit comments

Comments
 (0)