有没有一种方法只能在Github操作上获得项目文件夹名称?

时间:2019-10-19 20:58:23

标签: github yaml action github-actions

我可以用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:

2 个答案:

答案 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}