5
types: [opened, reopened, synchronize, labeled]
10
runs-on: [self-hosted, dev]
12
deploy-envs: ${{ steps.make-label-list.outputs.deploy-envs }}
14
- uses: actions/checkout@v2
15
- uses: FranzDiebold/github-env-vars-action@v2
16
# Takes PR labels and turns them into env vars: https://github.com/marketplace/actions/pr-labels
19
uses: joerick/pr-labels-action@v1.0.9
20
# Turn env vars from above into a json list of deployment envs
23
DEPLOY_LABELS=${!GITHUB_PR_LABEL_DEPLOY_TO_*} # echo all of the PR label envs on one line
24
DEPLOY_ENVS=[\"${DEPLOY_LABELS// /\",\"}\"] # Turn into a json list like ["ENV_1","ENV_2"]
25
DEPLOY_ENVS=${DEPLOY_ENVS//GITHUB_PR_LABEL_DEPLOY_TO_/} # Delete GITHUB_PR_LABEL_DEPLOY_TO_ so we're just left with the deploy env name
26
DEPLOY_ENVS=${DEPLOY_ENVS//_/-} # Replace underscores with dashes
27
DEPLOY_ENVS=${DEPLOY_ENVS//\"\"/} # Remove empty strings
28
echo "deploy-envs=${DEPLOY_ENVS,,}" >> "$GITHUB_OUTPUT" # Lowercase the whole list and output it
29
echo "deploy-envs=${DEPLOY_ENVS,,}"
32
# Build our docker images based on our bake file
33
runs-on: [self-hosted, dev]
34
needs: [get-deploy-labels]
35
if: needs.get-deploy-labels.outputs.deploy-envs != '[]'
37
- uses: actions/checkout@v2
38
# Build the bakefile and push
39
- uses: ./.github/actions/docker-bake
42
# Trigger private repo to deploy to dev envs
43
runs-on: [self-hosted, dev]
44
needs: [build, get-deploy-labels]
47
deploy-env: ${{fromJson(needs.get-deploy-labels.outputs.deploy-envs)}}
50
if: needs.get-deploy-labels.outputs.deploy-envs != '[]'
52
- uses: FranzDiebold/github-env-vars-action@v2
53
- uses: convictional/trigger-workflow-and-wait@v1.6.5
56
repo: INTERNAL-mindsdb-build-deploy-to-kubernetes
57
github_token: ${{ secrets.REPO_DISPATCH_PAT_TOKEN }}
58
workflow_file_name: deploy-dev.yml
60
client_payload: '{"image-tag-prefix": "${{ env.CI_SHA }}", "deploy-env": "${{matrix.deploy-env}}"}'