Skip to content

Commit deca584

Browse files
committed
Create TestBuildAndDeploy.yml
Created action to test and deploy TODO: add manual npm run tests
1 parent c8b0569 commit deca584

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed
+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: TestBuildAndDeploy
2+
3+
on:
4+
push:
5+
branches: [development]
6+
release:
7+
types: [created]
8+
9+
env:
10+
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
11+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
12+
SERVER_HOST: ${{ secrets.SSH_HOST }}
13+
SERVER_USERNAME: ${{ secrets.SSH_USERNAME }}
14+
SERVER_PASSWORD: ${{ secrets.SSH_PASSWORD }}
15+
SERVER_KEY: ${{ secrets.SSH_KEY }}
16+
CLIENT_ID: ${{ secrets.CLIENT_ID }}
17+
GUILD_ID: ${{ secrets.GUILD_ID }}
18+
MONGO_CONNECTION_LINK: ${{ secrets.MONGO_CONNECTION_LINK }}
19+
TOKEN: ${{ secrets.TOKEN }}
20+
21+
jobs:
22+
build-and-deploy:
23+
runs-on: ubuntu-latest
24+
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@v3
28+
29+
- name: Install dependencies
30+
run: npm ci
31+
32+
- name: Lint code
33+
run: npm run lint
34+
35+
- name: Lint Dockerfile
36+
run: docker run --rm -i hadolint/hadolint < Dockerfile
37+
38+
- name: Set up Docker Buildx
39+
if: success() && startsWith(github.ref, 'refs/tags/')
40+
uses: docker/setup-buildx-action@v2
41+
42+
- name: Login to Docker Hub
43+
if: success() && startsWith(github.ref, 'refs/tags/')
44+
uses: docker/login-action@v2
45+
with:
46+
username: ${{ env.DOCKER_USERNAME }}
47+
password: ${{ env.DOCKER_PASSWORD }}
48+
49+
- name: Build and push Docker image
50+
if: success() && startsWith(github.ref, 'refs/tags/')
51+
uses: docker/build-push-action@v4
52+
with:
53+
push: true
54+
context: .
55+
file: ./Dockerfile
56+
tags: uwrksi/ksicius:latest
57+
build-args: |
58+
MONGO_CONNECTION_LINK=${{ env.MONGO_CONNECTION_LINK }}
59+
CLIENT_ID=${{ env.CLIENT_ID }}
60+
GUILD_ID=${{ env.GUILD_ID }}
61+
TOKEN=${{ env.TOKEN }}
62+
63+
- name: SSH into server and deploy
64+
if: success() && startsWith(github.ref, 'refs/tags/')
65+
uses: appleboy/[email protected]
66+
env:
67+
USERNAME: ${{ env.DOCKER_USERNAME }}
68+
PASSWORD: ${{ env.DOCKER_PASSWORD }}
69+
with:
70+
host: ${{ env.SERVER_HOST }}
71+
username: ${{ env.SERVER_USERNAME }}
72+
password: ${{ env.SERVER_PASSWORD }}
73+
key: ${{ env.SERVER_KEY }}
74+
envs: USERNAME, PASSWORD
75+
script: |
76+
docker login -u $USERNAME -p $PASSWORD
77+
docker pull uwrksi/ksicius:latest
78+
docker stop ksicius || true
79+
docker rm ksicius || true
80+
docker run -d --restart=always --name ksicius uwrksi/ksicius:latest

0 commit comments

Comments
 (0)