我在 github 操作上很挣扎。这似乎有效:
- name: Tag & Push docker image
run: |
docker push myrepo/myapp:${GITHUB_SHA::8}
Run Code Online (Sandbox Code Playgroud)
但是,这不会:
- name: create release
uses: some-custom-action
with:
release_version: 1.0.0-${GITHUB_SHA::8}
Run Code Online (Sandbox Code Playgroud)
也不是这个:
- name: create release
uses: some-custom-action
with:
release_version: "1.0.0-${{ env.GITHUB_SHA }}"
Run Code Online (Sandbox Code Playgroud)
我对 github 操作完全陌生,对缺乏文档等感到有点惊讶。
我只需要将一个变量传递到 github 操作的“with”参数中。
如果有人能够帮助我弄清楚我做错了什么,我将不胜感激!
当您使用run上下文时,您正在调用一个 shell。(对于 macOS 和 Linux 主机,这是/bin/bash。)所以对于这一步:
- name: Tag & Push docker image
run: |
docker push myrepo/myapp:${GITHUB_SHA::8}
Run Code Online (Sandbox Code Playgroud)
你正在使用一个 shell${GITHUB_SHA::8}并将被逐字传递给它。然后,shell 将解析它并使用其正常的解析规则对其进行插值。
但是,当您指定要运行的操作而不是要执行的脚本时,您只是在调用不同的程序。没有外壳,所以没有什么可以解析${GITHUB_SHA::8}.
您可以使用${{ ... }}来引用可用上下文中的事物。例如,有一个env上下文可供您设置键/值对并重新使用它们。(但env上下文不是bashshell 的一部分,所以没有${{ env.PWD }}例如。)
这里是一个映射,但是之间的github范围内,并当您已设置环境变量就运行shell。该${{ github.sha }}上下文变量会在你的shell作为设置$GITHUB_SHA环境变量。
所以在你的例子中,这应该有效:
- name: create release
uses: some-custom-action
with:
release_version: "1.0.0-${{ github.sha }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
705 次 |
| 最近记录: |