Skip to content

Commit dc4412c

Browse files
authored
Test/docker cd (#4)
* test commit * test commit
1 parent b993c09 commit dc4412c

File tree

3 files changed

+88
-1
lines changed

3 files changed

+88
-1
lines changed

.github/workflows/cd.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: CD
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
7+
workflow_dispatch:
8+
9+
jobs:
10+
continuous-delivery:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v3
15+
16+
- name: Set up JDK 17
17+
uses: actions/setup-java@v3
18+
with:
19+
java-version: 17
20+
distribution: 'corretto'
21+
22+
- name: Set YML
23+
env:
24+
YAML_SECRET: ${{ secrets.APPLICATION_YAML }}
25+
YAML_DIR: src/main/resources
26+
YAML_FILE_NAME: application.yml
27+
run: |
28+
mkdir -p $YAML_DIR
29+
echo $YAML_SECRET | base64 --decode > $YAML_DIR/$YAML_FILE_NAME
30+
find src
31+
32+
- name: Gradle Caching
33+
uses: actions/cache@v3
34+
with:
35+
path: |
36+
~/.gradle/caches
37+
~/.gradle/wrapper
38+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
39+
restore-keys: |
40+
${{ runner.os }}-gradle-
41+
42+
- name: Get Short SHA
43+
id: short_sha
44+
run: |
45+
echo "::set-output name=sha_short::$(echo ${{ github.sha }} | head -c 7)"
46+
echo "Short SHA: ${{ steps.short_sha.outputs.sha_short }}"
47+
48+
- name: Print branch & tag information
49+
run: |
50+
echo "Current branch: ${{ github.event.inputs.branch || github.ref }}"
51+
echo "Current tag: ${{ steps.short_sha.outputs.sha_short }}"
52+
53+
- name: Grant execute permission for gradlew
54+
run: chmod +x ./gradlew
55+
shell: bash
56+
57+
- name: Run build
58+
run: ./gradlew build -x test
59+
shell: bash
60+
61+
- name: Docker Login and Push
62+
env:
63+
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}
64+
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
65+
DOCKER_IMAGE_TAG: test:${{ steps.short_sha.outputs.sha_short }}
66+
run: |
67+
echo $DOCKER_HUB_PASSWORD | docker login -u $DOCKER_HUB_USERNAME --password-stdin
68+
docker build -t $DOCKER_IMAGE_TAG .
69+
docker tag $DOCKER_IMAGE_TAG $DOCKER_HUB_USERNAME/$DOCKER_IMAGE_TAG
70+
docker push $DOCKER_HUB_USERNAME/$DOCKER_IMAGE_TAG
71+
72+
- name: Deploy to EC2
73+
uses: appleboy/ssh-action@master
74+
with:
75+
host: ${{ secrets.EC2_HOST }}
76+
username: ${{ secrets.EC2_USERNAME }}
77+
key: ${{ secrets.EC2_PEM_KEY }}
78+
script: |
79+
docker pull ${{ secrets.DOCKER_USERNAME }}/test:${{ steps.short_sha.outputs.sha_short }}
80+
docker tag ${{ secrets.DOCKER_USERNAME }}/test:${{ steps.short_sha.outputs.sha_short }} test
81+
docker rm -f test || true
82+
docker run -d --name test -e TZ=Asia/Seoul -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/test:${{ steps.short_sha.outputs.sha_short }}

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
uses: actions/setup-java@v3
1919
with:
2020
java-version: 17
21-
distribution: 'zulu'
21+
distribution: 'corretto'
2222

2323
- name: Set YML
2424
env:

Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM openjdk:17-jdk-alpine
2+
EXPOSE 8080
3+
VOLUME /tmp
4+
COPY build/libs/*.jar test-server.jar
5+
ENTRYPOINT ["java", "-jar", "/test-server.jar"]

0 commit comments

Comments
 (0)