有没有办法只在 Github 操作中获取项目文件夹名称?
Is there a way to get the project folder name only on a Github action?
我可以用 ${{ 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
部分。
创建测试 workflow/job 以打印所有上下文数据可能是个好主意,直到您熟悉它们为止,请参阅 Example printing context information to the log file。
至于替换文本,您始终可以使用 ::set-env or ::set-output 中的第一个步骤来准备您以后需要的所有内容。您只需要以特定格式打印 name/value,这样您就可以使用任何您熟悉的 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 }')
shell: bash
除了@Samira 回复之外,您还可以使用 ${GITHUB_REPOSITORY#*/}
来获取存储库名称,因为它会删除 /
前缀之前的所有内容。
例如,在我的工作流程中,我使用:
- run: echo ::set-env name=TF_VAR_instance_label::${GITHUB_REPOSITORY#*/}-${GITHUB_SHA:0:7}
我可以用 ${{ 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
部分。
创建测试 workflow/job 以打印所有上下文数据可能是个好主意,直到您熟悉它们为止,请参阅 Example printing context information to the log file。
至于替换文本,您始终可以使用 ::set-env or ::set-output 中的第一个步骤来准备您以后需要的所有内容。您只需要以特定格式打印 name/value,这样您就可以使用任何您熟悉的 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 }')
shell: bash
除了@Samira 回复之外,您还可以使用 ${GITHUB_REPOSITORY#*/}
来获取存储库名称,因为它会删除 /
前缀之前的所有内容。
例如,在我的工作流程中,我使用:
- run: echo ::set-env name=TF_VAR_instance_label::${GITHUB_REPOSITORY#*/}-${GITHUB_SHA:0:7}