-
Notifications
You must be signed in to change notification settings - Fork 51
74 lines (65 loc) · 1.97 KB
/
dev_deploy.yml
File metadata and controls
74 lines (65 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
name: Dev Deploy
on:
workflow_run:
workflows:
- CI Checks
types:
- completed
permissions:
contents: read
packages: write
env:
DOCKER_IMAGE_NAME: ${{ vars.DOCKER_IMAGE_NAME }}
SHA_TAG: ${{ github.event.workflow_run.head_sha }}
IMAGE: ghcr.io/${{ github.repository_owner }}/${{ vars.DOCKER_IMAGE_NAME }}
concurrency:
group: dev_deploy
cancel-in-progress: false
jobs:
build_and_push_image:
name: Build and push commit image
if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push' && github.event.workflow_run.head_branch == 'dev'
uses: ./.github/workflows/build_and_push_image.yml
with:
ref: ${{ github.event.workflow_run.head_sha }}
image_tag: ${{ github.event.workflow_run.head_sha }}
push: true
deploy_dev:
name: Deploy commit image to dev
needs: [build_and_push_image]
runs-on: ubuntu-latest
environment: dev
steps:
- name: Trigger VM deploy gate (dev)
uses: appleboy/ssh-action@v1.2.3
with:
host: ${{ secrets.VM_HOST }}
username: ${{ secrets.VM_USERNAME }}
key: ${{ secrets.VM_SSH_KEY }}
fingerprint: ${{ secrets.VM_FINGERPRINT }}
script: dev ${{ env.SHA_TAG }}
tag_dev:
name: Tag deployed commit image as dev
needs: [deploy_dev]
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: GHCR login
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Retag commit image as dev
run: |
docker pull "${IMAGE}:${SHA_TAG}"
docker tag "${IMAGE}:${SHA_TAG}" "${IMAGE}:dev"
docker push "${IMAGE}:dev"
cleanup_ghcr:
name: Cleanup old package versions in GHCR
needs: [tag_dev]
uses: ./.github/workflows/ghcr_cleanup.yml
with:
keep_sha_tags: 20