@@ -2,30 +2,90 @@ name: CI
22
33on :
44 push :
5- branches : [ "main" ]
6- pull_request :
7- branches : [ "main" ]
5+ branches : ["main"]
86
9- workflow_dispatch :
7+ jobs :
8+ build-frontend :
9+ name : Build & Push Frontend Image
10+ runs-on : ubuntu-latest
11+ environment : production
12+
13+ steps :
14+ - name : Login to Docker Hub
15+ uses : docker/login-action@v3
16+ with :
17+ username : ${{ vars.DOCKERHUB_USERNAME }}
18+ password : ${{ secrets.DOCKERHUB_TOKEN }}
19+
20+ - name : Build Docker image
21+ uses : docker/bake-action@v6
22+ env :
23+ CF_SITEKEY : ${{ vars.CF_SITEKEY }}
24+ GRAPHQL_GITHUB_API_TOKEN : ${{ secrets.GRAPHQL_GITHUB_API_TOKEN }}
25+ with :
26+ files : |
27+ docker-bake.hcl
28+ docker-bake.prod.hcl
29+ push : true
30+ no-cache : true
31+ targets : frontend
32+
33+ build-backend :
34+ name : Build & Push Backend Image
35+ runs-on : ubuntu-latest
36+ environment : production
37+
38+ steps :
39+ - name : Login to Docker Hub
40+ uses : docker/login-action@v3
41+ with :
42+ username : ${{ vars.DOCKERHUB_USERNAME }}
43+ password : ${{ secrets.DOCKERHUB_TOKEN }}
44+
45+ - name : Build Docker image
46+ uses : docker/bake-action@v6
47+ env :
48+ GRAPHQL_GITHUB_API_TOKEN : ${{ secrets.GRAPHQL_GITHUB_API_TOKEN }}
49+ with :
50+ files : |
51+ docker-bake.hcl
52+ docker-bake.prod.hcl
53+ push : true
54+ no-cache : true
55+ targets : backend
1056
11- jobs :
1257 deploy :
13- name : Deploy
58+ name : Deploy Stack
1459 runs-on : ubuntu-latest
1560 environment : production
16-
61+ needs : [build-frontend, build-backend]
62+
1763 steps :
18- - name : Deploy to Oracle Cloud server via SSH
19- uses : appleboy/ssh-action@v0.1.10
64+ - name : Checkout repository
65+ uses : actions/checkout@v3
66+
67+ - name : Deploy stack
68+ uses : ibiixie/stack-deploy-action@feature/multiple-compose-inputs
2069 with :
2170 host : ${{ secrets.REMOTE_HOST }}
22- username : ${{ secrets.REMOTE_USERNAME }}
23- key : ${{ secrets.SSH_PRIVATE_KEY }}
24- port : ${{ secrets.REMOTE_PORT }}
25- script : |
26- cd ${{ secrets.REMOTE_WORKING_DIRECTORY }}
27- echo "Pulling changes..."
28- git pull
29- echo "Running deployment script..."
30- sh deploy.sh
31- echo "Deployment complete!"
71+ user : ${{ vars.REMOTE_USER }}
72+ ssh_key : ${{ secrets.SSH_PRIVATE_KEY }}
73+ file : ./compose.yaml;./compose.prod.yaml
74+ name : biixie-website
75+ mode : compose
76+ env :
77+ CF_TURNSTILE_SECRET : ${{ secrets.CF_TURNSTILE_SECRET }}
78+ KVP_REDACTED_TERMS : ${{ secrets.REDACTED_TERMS }}
79+
80+ purge-cache :
81+ name : Purge Cloudflare Cache
82+ runs-on : ubuntu-latest
83+ environment : production
84+ needs : ["deploy"]
85+
86+ steps :
87+ - name : Purge cache
88+ uses : nathanvaughn/actions-cloudflare-purge@v3.1.0
89+ with :
90+ cf_zone : ${{ secrets.CLOUDFLARE_ZONE }}
91+ cf_auth : ${{ secrets.CLOUDFLARE_AUTH_KEY }}
0 commit comments