aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/deploy.yaml
blob: 0e315327c0637d6a37385cec082ee7861394fa1c (plain) (blame)
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
name: Deploy

on:
  workflow_run:
    workflows: ["Build"]
    branches:
      - main
    types:
      - completed

jobs:
  deploy:
    if: github.event.workflow_run.conclusion == 'success'
    name: Deploy to Kubernetes Cluster
    runs-on: ubuntu-latest
    environment: production

    steps:
      - name: Create SHA Container Tag
        id: sha_tag
        run: |
          tag=$(cut -c 1-7 <<< $GITHUB_SHA)
          echo "::set-output name=tag::$tag"

      # Check out the private Kubernetes repository for the
      # deployment.yaml file using a GitHub Personal Access
      # Token to get access.
      - name: Checkout code
        uses: actions/checkout@v2
        with:
          repository: python-discord/kubernetes
          token: ${{ secrets.REPO_TOKEN }}

      - name: Authenticate with Kubernetes
        uses: azure/k8s-set-context@v1
        with:
          method: kubeconfig
          kubeconfig: ${{ secrets.KUBECONFIG }}

      - name: Deploy to Kubernetes
        uses: Azure/k8s-deploy@v1
        with:
          manifests: |
              namespaces/default/site/deployment.yaml
          images: 'ghcr.io/python-discord/site:${{ steps.sha_tag.outputs.tag }}'
          kubectl-version: 'latest'

      - name: Purge Cloudflare Edge Cache
        uses: jakejarvis/cloudflare-purge-action@master
        env:
          CLOUDFLARE_ZONE: 989c984a358bfcd1e9b9d188cc86c1df
          CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_CACHE_TOKEN }}