我可以用reowner/repo-name
得到${{ github.repository }}
,但是我只想得到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:
答案 0 :(得分:1)
github
上下文还包含事件数据,您可以从中轻松读取一些更详细的信息。在这种情况下,${{ github.event.repository.name }}
将只给您repo-name
部分。
创建测试工作流程/作业以打印所有上下文数据直到您熟悉它们可能是一个好主意,请参阅Example printing context information to the log file。
对于替换文本,您总是可以使用第一步::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
答案 1 :(得分:1)
除了@Samira响应外,您还可以使用${GITHUB_REPOSITORY#*/}
来获取存储库名称,因为它将剪切/
前缀之前的所有内容。
例如,在我的工作流程中,我使用:
- run: echo ::set-env name=TF_VAR_instance_label::${GITHUB_REPOSITORY#*/}-${GITHUB_SHA:0:7}