mindsdb

Форк
0
/
deploy-dev.yml 
60 строк · 2.4 Кб
1
name: Deploy to dev
2

3
on:
4
  pull_request:
5
    types: [opened, reopened, synchronize, labeled]
6

7

8
jobs:
9
  get-deploy-labels:
10
    runs-on: [self-hosted, dev]
11
    outputs:
12
      deploy-envs: ${{ steps.make-label-list.outputs.deploy-envs }}
13
    steps:
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
17
      - name: Get PR labels
18
        id: pr-labels
19
        uses: joerick/pr-labels-action@v1.0.9
20
      # Turn env vars from above into a json list of deployment envs
21
      - id: make-label-list
22
        run: |
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,,}"
30

31
  build:
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 != '[]'
36
    steps:
37
      - uses: actions/checkout@v2
38
      # Build the bakefile and push
39
      - uses: ./.github/actions/docker-bake
40

41
  trigger_deploy:
42
    # Trigger private repo to deploy to dev envs
43
    runs-on: [self-hosted, dev]
44
    needs: [build, get-deploy-labels]
45
    strategy:
46
      matrix:
47
        deploy-env: ${{fromJson(needs.get-deploy-labels.outputs.deploy-envs)}}
48
    environment:
49
      name: dev
50
    if: needs.get-deploy-labels.outputs.deploy-envs != '[]'
51
    steps:
52
      - uses: FranzDiebold/github-env-vars-action@v2
53
      - uses: convictional/trigger-workflow-and-wait@v1.6.5
54
        with:
55
          owner: mindsdb
56
          repo: INTERNAL-mindsdb-build-deploy-to-kubernetes
57
          github_token: ${{ secrets.REPO_DISPATCH_PAT_TOKEN }}
58
          workflow_file_name: deploy-dev.yml
59
          ref: master
60
          client_payload: '{"image-tag-prefix": "${{ env.CI_SHA }}", "deploy-env": "${{matrix.deploy-env}}"}'
61

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.