55 branches :
66 - main
77
8+ permissions :
9+ contents : read
10+ packages : write
11+
812jobs :
913 deploy :
1014 runs-on : ubuntu-latest
@@ -14,38 +18,28 @@ jobs:
1418 - name : Checkout code
1519 uses : actions/checkout@v3
1620
17- # Log in to Heroku Container Registry
18- - name : Log in to Heroku Container Registry
21+ # Log in to GHCR
22+ - name : Log in to GHCR
23+ uses : docker/login-action@v3
24+ with :
25+ registry : ghcr.io
26+ username : ${{ github.actor }}
27+ password : ${{ secrets.GITHUB_TOKEN }}
28+
29+ # Build image
30+ - name : Build new container image
31+ run : docker build -t ${{ vars.IMAGE_NAME }}:latest .
32+
33+ # Push image
34+ - name : Push image
35+ run : docker push ${{ vars.IMAGE_NAME }}:latest
36+
37+ # Trigger deploy on VPS (web hook)
38+ - name : Trigger prod deployment
39+ if : success() # Only runs if previous steps succeeded
1940 run : |
20- echo "${{ secrets.HEROKU_AUTH_TOKEN }}" | docker login --username=_ --password-stdin registry.heroku.com
21-
22- # Build the Docker image
23- - name : Build new Docker image
24- run : docker build -t registry.heroku.com/$HEROKU_APP_NAME/web .
25- env :
26- HEROKU_APP_NAME : ${{ secrets.HEROKU_APP_NAME }}
27-
28- # Push the Docker image to Heroku
29- - name : Push new Docker image to Heroku
30- run : docker push registry.heroku.com/$HEROKU_APP_NAME/web
31- env :
32- HEROKU_APP_NAME : ${{ secrets.HEROKU_APP_NAME }}
33-
34- # Install Heroku CLI
35- - name : Install Heroku CLI
36- run : curl https://cli-assets.heroku.com/install.sh | sh
37-
38- # Authenticate with Heroku using the Heroku API key (GitHub secret)
39- - name : Login to Heroku
40- run : heroku container:login
41- env :
42- HEROKU_API_KEY : ${{ secrets.HEROKU_AUTH_TOKEN }}
43- HEROKU_HEADERS : ${{ vars.HEROKU_HEADERS }}
44-
45- # Trigger Heroku deploy
46- - name : Deploy the updated container on Heroku
47- run : heroku container:release web -a harmony-backend
48- env :
49- HEROKU_APP_NAME : ${{ secrets.HEROKU_APP_NAME }}
50- HEROKU_API_KEY : ${{ secrets.HEROKU_AUTH_TOKEN }}
51- HEROKU_HEADERS : ${{ vars.HEROKU_HEADERS }}
41+ curl -X 'POST' "${{ secrets.PROD_DEPLOY_WEB_HOOK_URL }}" \
42+ -H 'accept: application/json' \
43+ -H "Content-Type: application/json" \
44+ -H "x-api-key: ${{ secrets.API_KEY }}" \
45+ -d "{ \"applicationId\": \"${{ secrets.APP_ID }}\" }"
0 commit comments