Skip to content

Commit 081311d

Browse files
committed
[NEW] Github Actions CD
1 parent 37642a1 commit 081311d

File tree

1 file changed

+36
-8
lines changed

1 file changed

+36
-8
lines changed

.github/workflows/ci-cd.yml

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
name: Docker CI/CD
22

33
on:
4-
push:
5-
branches: [ main ]
6-
pull_request:
7-
branches: [ main ]
8-
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
99
env:
1010
API_IMAGE_NAME: github-api
1111
API_CONTAINER_NAME: github-api
1212
UI_IMAGE_NAME: github-ui
1313
UI_CONTAINER_NAME: github-ui
14+
UI_PORT: 4000:4000
15+
API_PORT: 4001:4001
1416

1517
REPO_NAME: ${{ github.repository }}
1618
REGISTRY: ghcr.io
19+
SSH_HOST: ${{ secrets.SERVER_IP }}
20+
SSH_USER: ${{ secrets.SERVER_USERNAME }}
21+
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
1722

1823
jobs:
1924
build_and_push:
@@ -41,7 +46,7 @@ jobs:
4146
context: .
4247
file: ./API.Dockerfile
4348
push: true
44-
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}:${{ github.sha }}
49+
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}-${{ github.sha }}
4550
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}:buildcache
4651
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}:buildcache,mode=max
4752

@@ -51,7 +56,30 @@ jobs:
5156
context: .
5257
file: ./UI.Dockerfile
5358
push: true
54-
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}:${{ github.sha }}
59+
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}-${{ github.sha }}
5560
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}:buildcache
5661
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}:buildcache,mode=max
57-
62+
63+
deploy:
64+
needs: build_and_push
65+
runs-on: ubuntu-latest
66+
permissions:
67+
contents: read
68+
packages: write
69+
steps:
70+
- name: Executing remote SSH commands to deploy
71+
uses: appleboy/ssh-action@master
72+
with:
73+
host: "${{ env.SSH_HOST }}"
74+
username: "${{ env.SSH_USER }}"
75+
key: "${{ env.SSH_KEY }}"
76+
script: |
77+
echo ${{ secrets.GITHUB_TOKEN }} | docker login -u ${{ github.actor }} --password-stdin ${{ env.REGISTRY }}
78+
docker pull "${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}-${{ github.sha }}"
79+
docker pull "${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}-${{ github.sha }}"
80+
docker stop "${{ env.UI_CONTAINER_NAME }}" || true
81+
docker stop "${{ env.API_CONTAINER_NAME }}" || true
82+
docker rm "${{ env.UI_CONTAINER_NAME }}" || true
83+
docker rm "${{ env.API_CONTAINER_NAME }}" || true
84+
docker run -d --name "${{ env.API_CONTAINER_NAME }}" -p "${{ env.API_PORT }}" "${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.API_IMAGE_NAME }}-${{ github.sha }}"
85+
docker run -d --name "${{ env.UI_CONTAINER_NAME }}" -p "${{ env.UI_PORT }}" "${{ env.REGISTRY }}/${{ env.REPO_NAME}}/${{ env.UI_IMAGE_NAME }}-${{ github.sha }}"

0 commit comments

Comments
 (0)