我可以用${{ github.repository }}
得到repoowner/repo-name
,但我喜欢得到repo-name
。
当我在的时候。
GitLab 为此有一个简单的变量。
如何从脚本内部.yaml
获取引用访问环境变量?${{ $ENV_VAR }}
有效吗?应该不会。
有没有办法直接在 yaml 中删除或替换斜杠?
build:
needs: test
name: Build release Zip
runs-on: ubuntu-latest
env:
DEPLOY_REF: ${{ github.sha }}
DEPLOY_REF_SHORT: ${{ github.sha }}
DEPLOY_ZIPFILE: ${{ github.workspace }}/build/zip/${{ github.repository }}-${{ github.sha }}.zip
steps:
github
上下文还包含事件数据,从中可以轻松阅读一些更详细的信息。在这种情况下,${{ github.event.repository.name }}
只会给你repo-name
部分。
最好创建测试工作流/作业以打印所有上下文数据,直到熟悉它们,请参阅将上下文信息打印到日志文件的示例。
至于替换文本,你总是可以把第一步放在后面使用 ::set-env 或 ::set-output 准备你需要的一切。您只需要以特定格式打印名称/值,因此您可以使用您熟悉的任何 shell 来操作文本:
# All steps after this one will have env variable `GHA_BRANCH` passed to them.
- run: echo ::set-env name=GHA_BRANCH::$(echo $GITHUB_REF | awk -F / '{print $3}')
shell: bash
除了@Samira响应之外,您还可以使用${GITHUB_REPOSITORY#*/}
来获取存储库名称,因为它会在/
前缀之前删除所有内容。
例如,在我的工作流程中,我使用:
- run: echo ::set-env name=TF_VAR_instance_label::${GITHUB_REPOSITORY#*/}-${GITHUB_SHA:0:7}