如何在GitHub工作流作业之间传递数据 [英] How to pass data between github workflow jobs

查看:37
本文介绍了如何在GitHub工作流作业之间传递数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将create_release作业中的版本号传递给deploy作业?

...
jobs:
  create_release:
    name: Create release
    needs: run_tests
    runs-on: ubuntu-latest
    outputs:
      release_id: ${{ steps.set_release_number.outputs.release_number }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set release number
        id: set_release_number
        run: |
          RELEASE_NUMBER=$(date +%Y-%m-%d)-${{ github.ref_name }}-${{ github.run_id }}
          chmod +x ./scripts/github-workflow/set-release-number.sh
          ./scripts/github-workflow/set-release-number.sh 
            -e ${{ github.event.inputs.environment }} 
            -n $RELEASE_NUMBER
          echo "::set-output name=release_number::$RELEASE_NUMBER"
      - name: Build and upload release
        env:
          DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
          DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
        run: |
          chmod +x ./scripts/github-workflow/build-and-publish-release.sh
          ./scripts/github-workflow/build-and-publish-release.sh
  deploy:
    name: Deploy release
    needs: create_release
    if: (needs.create_release.result == 'success') && (github.event.inputs.should_auto_deploy == 'true')
    uses: Aplanke/ApiBackend/.github/workflows/deployment.yml@main
    with:
      environment: ${{ github.event.inputs.environment }}
      release_number: ${{ needs.create_release.outputs.release_id }}

编辑:添加部署管道代码段

  workflow_call:
    inputs:
      environment:
        description: Environment to deploy to
        required: true
        type: string
        default: prod
      release_number:
        description: Release number/ID to deploy
        required: true
        type: string

jobs:
  deployment:
    steps:
      - name: Set release number
        run: |
          chmod +x ./scripts/github-workflow/set-release-number.sh
          ./scripts/github-workflow/set-release-number.sh 
            -e ${{ github.event.inputs.environment }} 
            -n ${{ github.event.inputs.release_number }}
失败作业的屏幕快照

推荐答案

您发布的示例运行正常:

https://github.com/grzegorzkrukowski/stackoverflow_tests/runs/5155488550?check_suite_focus=true#step:2:4

问题肯定出在您如何生成RELEASE_NUMBER或如何处理我们看不到的自定义脚本中的输入方面。 GitHub工作流部件工作正常。

这篇关于如何在GitHub工作流作业之间传递数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆