有没有办法仅在 Github 操作上获取项目文件夹名称?



我可以用${{ 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}

最新更新