如何在GitHub工作流作业之间传递数据 [英] How to pass data between github workflow jobs
本文介绍了如何在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 }}
失败作业的屏幕快照
推荐答案
您发布的示例运行正常:
问题肯定出在您如何生成RELEASE_NUMBER或如何处理我们看不到的自定义脚本中的输入方面。 GitHub工作流部件工作正常。这篇关于如何在GitHub工作流作业之间传递数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文