在另一个作业中重用 GitHub 个 Action 工作流步骤
Reusing GitHub Action workflow steps inside another job
我已经使用 workflow_call
触发器创建了一个 Reusable Workflow,但我需要根据其结果 运行 额外的步骤。
示例:
jobs:
released:
steps:
- name: Build
uses: my-org/some-repo/.github/workflows/build.yml@main
- name: Upload source maps
run: something
可重用 Build 步骤构建我的 JS 应用程序并生成源映射。现在我需要将这些源地图作为一个单独的步骤上传到某个地方,应该只 运行 在这个 Released 作业中。
执行上述操作会导致以下错误:
Error : .github#L1
reusable workflows should be referenced at the top-level `jobs.*.uses' key, not within steps
它只允许 运行在作业中而不是在步骤中设置我的可重用工作流。但是这样一来,我就无法再访问源地图了。
我的问题:如何重用 Build 工作流程中的步骤并在 Released 中访问其输出工作?
您可以使用工件在作业之间共享这些输出文件。
使用 upload-artifact
从 Build 工作流程上传构建文件,并 download-artifact
在 Released[=] 下载它们28=] 工作流程。
构建工作流程
name: Build
on:
workflow_call:
secrets:
SOME_SECRET:
required: true
jobs:
build:
steps:
# Your build steps here
- name: Create build-output artifact
uses: actions/upload-artifact@master
with:
name: build-output
path: build/
发布的工作流程
name: Released
on:
push:
branches:
- main
jobs:
build:
uses: my-org/some-repo/.github/workflows/build.yml@main
secrets:
SOME_SECRET: ${{ secrets.SOME_SECRET }}
released:
needs: build
steps:
- name: Download build-output artifact
uses: actions/download-artifact@master
with:
name: build-output
path: build/
# The "build" directory is now available inside this job
- name: Upload source maps
run: something
额外提示: 请注意,“my-org/some-repo/.github/workflows/build.yml@main”字符串区分大小写。我浪费了一些时间才弄清楚这是导致以下错误的原因。
Error : .github#L1
error parsing called workflow "my-org/some-repo/.github/workflows/build.yml@main": workflow was not found. See https://docs.github.com/en/actions/learn-github-actions/reusing-workflows#access-to-reusable-workflows for more information.
我已经使用 workflow_call
触发器创建了一个 Reusable Workflow,但我需要根据其结果 运行 额外的步骤。
示例:
jobs:
released:
steps:
- name: Build
uses: my-org/some-repo/.github/workflows/build.yml@main
- name: Upload source maps
run: something
可重用 Build 步骤构建我的 JS 应用程序并生成源映射。现在我需要将这些源地图作为一个单独的步骤上传到某个地方,应该只 运行 在这个 Released 作业中。
执行上述操作会导致以下错误:
Error : .github#L1
reusable workflows should be referenced at the top-level `jobs.*.uses' key, not within steps
它只允许 运行在作业中而不是在步骤中设置我的可重用工作流。但是这样一来,我就无法再访问源地图了。
我的问题:如何重用 Build 工作流程中的步骤并在 Released 中访问其输出工作?
您可以使用工件在作业之间共享这些输出文件。
使用 upload-artifact
从 Build 工作流程上传构建文件,并 download-artifact
在 Released[=] 下载它们28=] 工作流程。
构建工作流程
name: Build
on:
workflow_call:
secrets:
SOME_SECRET:
required: true
jobs:
build:
steps:
# Your build steps here
- name: Create build-output artifact
uses: actions/upload-artifact@master
with:
name: build-output
path: build/
发布的工作流程
name: Released
on:
push:
branches:
- main
jobs:
build:
uses: my-org/some-repo/.github/workflows/build.yml@main
secrets:
SOME_SECRET: ${{ secrets.SOME_SECRET }}
released:
needs: build
steps:
- name: Download build-output artifact
uses: actions/download-artifact@master
with:
name: build-output
path: build/
# The "build" directory is now available inside this job
- name: Upload source maps
run: something
额外提示: 请注意,“my-org/some-repo/.github/workflows/build.yml@main”字符串区分大小写。我浪费了一些时间才弄清楚这是导致以下错误的原因。
Error : .github#L1
error parsing called workflow "my-org/some-repo/.github/workflows/build.yml@main": workflow was not found. See https://docs.github.com/en/actions/learn-github-actions/reusing-workflows#access-to-reusable-workflows for more information.