Skip to content

Commit a6a7844

Browse files
committed
ci(cert): add self-hosted GitHub Actions workflow for certificate system deployment
1 parent b1fad41 commit a6a7844

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Deploy (self-hosted)
2+
3+
on:
4+
push:
5+
branches: ['**']
6+
workflow_dispatch:
7+
8+
jobs:
9+
deploy:
10+
runs-on: oracle
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
# === main 배포 ===
15+
- name: Build & up (main)
16+
if: github.ref == 'refs/heads/main'
17+
env:
18+
# --- Frontend build arg / 공용 ENV ---
19+
FRONTEND_EXTERNAL_API_URL: ${{ vars.FRONTEND_EXTERNAL_API_URL }}
20+
FRONTEND_PORT: ${{ vars.FRONTEND_PORT }}
21+
BACKEND_PORT: ${{ vars.BACKEND_PORT }}
22+
23+
# --- Backend runtime ENV (공용) ---
24+
CORS_ORIGINS: ${{ vars.CORS_ORIGINS }}
25+
SMTP_HOST: ${{ vars.SMTP_HOST }}
26+
SMTP_PORT: ${{ vars.SMTP_PORT }}
27+
SMTP_USERNAME: ${{ vars.SMTP_USERNAME }}
28+
29+
# --- Notion / Secrets (공용) ---
30+
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
31+
NOTION_CERT_DB_ID: ${{ secrets.NOTION_CERT_DB_ID }}
32+
NOTION_PROJ_DB_ID: ${{ secrets.NOTION_PROJ_DB_ID }}
33+
SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }}
34+
35+
ENV_MODE: production
36+
run: |
37+
echo "ENV_MODE=$ENV_MODE"
38+
docker compose config -q
39+
docker compose down --remove-orphans
40+
docker compose up -d --build --remove-orphans
41+
docker image prune -f
42+
43+
# === 비-main (테스트 배포) ===
44+
- name: Build & up (non-main)
45+
if: github.ref != 'refs/heads/main'
46+
env:
47+
# --- Frontend build arg / 공용 ENV ---
48+
FRONTEND_EXTERNAL_API_URL: ${{ vars.FRONTEND_EXTERNAL_API_URL }}
49+
FRONTEND_PORT: ${{ vars.FRONTEND_PORT }}
50+
BACKEND_PORT: ${{ vars.BACKEND_PORT }}
51+
52+
# --- Backend runtime ENV (공용 + 테스트 전용) ---
53+
CORS_ORIGINS: ${{ vars.CORS_ORIGINS }}
54+
SMTP_HOST: ${{ vars.SMTP_HOST }}
55+
SMTP_PORT: ${{ vars.SMTP_PORT }}
56+
SMTP_USERNAME: ${{ vars.TEST_SMTP_USERNAME }}
57+
58+
# --- Notion / Secrets (테스트 전용) ---
59+
NOTION_API_KEY: ${{ secrets.TEST_NOTION_API_KEY }}
60+
NOTION_CERT_DB_ID: ${{ secrets.TEST_NOTION_CERT_DB_ID }}
61+
NOTION_PROJ_DB_ID: ${{ secrets.TEST_NOTION_PROJ_DB_ID }}
62+
SMTP_PASSWORD: ${{ secrets.TEST_SMTP_PASSWORD }}
63+
64+
ENV_MODE: test
65+
run: |
66+
echo "ENV_MODE=$ENV_MODE"
67+
docker compose config -q
68+
docker compose down --remove-orphans
69+
docker compose up -d --build --remove-orphans
70+
docker image prune -f

0 commit comments

Comments
 (0)