Skip to content

Commit f49c439

Browse files
add production workflow
1 parent 557a2d3 commit f49c439

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

.github/workflows/production.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Production deployment
2+
on:
3+
workflow_dispatch:
4+
jobs:
5+
checkout:
6+
runs-on: [self-hosted, prod]
7+
environment: dev
8+
steps:
9+
- name: Get code
10+
uses: actions/checkout@v4
11+
- name: Cache dependencies
12+
id: cache
13+
uses: actions/cache@v4
14+
with:
15+
path: node_modules
16+
key: deps-node-modules-${{ hashFiles('**/package-lock.json') }}
17+
- name: Install dependencies
18+
if: steps.cache.outputs.cache-hit != 'true'
19+
run: npm ci
20+
create_env:
21+
needs: checkout
22+
runs-on: [self-hosted, prod]
23+
environment: dev
24+
steps:
25+
- name: Create .env file
26+
run: |
27+
echo "DB_HOST=${{ secrets.DB_HOST }}" >> dev.env
28+
echo "DB_PORT=${{ secrets.DB_PORT }}" >> dev.env
29+
echo "DB_USER=${{ secrets.DB_USER }}" >> dev.env
30+
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> dev.env
31+
echo "DB_NAME=${{ secrets.DB_NAME }}" >> dev.env
32+
echo "DB_DROP_SCHEMA=${{ secrets.DB_DROP_SCHEMA }}" >> dev.env
33+
echo "AUTH_SECRET=${{ secrets.AUTH_SECRET }}" >> dev.env
34+
echo "JWT_EXPIRES_IN=${{ secrets.JWT_EXPIRES_IN }}" >> dev.env
35+
echo "PORT=${{ secrets.PORT }}" >> dev.env
36+
build:
37+
needs: create_env
38+
runs-on: [self-hosted, prod]
39+
steps:
40+
- name: Build website
41+
id: build-website
42+
run: npm run build
43+
deploy:
44+
needs: build
45+
runs-on: [self-hosted, prod]
46+
steps:
47+
- name: Run deployment
48+
run: NODE_ENV=dev pm2 restart dist/main.js --name=events-api

0 commit comments

Comments
 (0)