首页 > 解决方案 > GitHub Action“set-env”导致“没有这样的文件或目录”

问题描述

尝试根据当前提交的 SHA 设置一个环境变量,该 SHA 稍后将用作文件名。我尝试了许多“set-env”变体,无论是否具有动态值,并且每次构建失败时:

 Setup Additional Environment Variables0s
 ##[error]No such file or directory
 Run echo ::set-env name=TEST_FILE::test-${GITHUB_SHA}
   echo ::set-env name=TEST_FILE::test-${GITHUB_SHA}
   shell: /bin/bash -e {0}
 ##[error]No such file or directory

我从工作流文档中引用:https ://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable

steps:
  - uses: actions/checkout@v2
  - uses: actions/setup-node@v1
    with:
      node-version: ${{ matrix.node }}

  - name: Setup Additional Environment Variables
    run: echo ::set-env name=TEST_FILE::test-${GITHUB_SHA}

标签: githubgithub-actions

解决方案


您可以使用github上下文来获取sha值。这是适合我的配置:

.github/workflows/test.yml

name: Test

on: push

jobs:
  test:
    name: Test env var
    timeout-minutes: 5
    runs-on: ubuntu-latest
    steps:      
      - uses: actions/checkout@v2.1.0
      - name: Set env var
        run: |
          echo "::set-env name=TEST_FILE_NAME::test-${{ github.sha }}"
      - name: Create file
        run: |
          mkdir temp
          cd temp
          touch $TEST_FILE_NAME
          ls -la

结果:

在此处输入图像描述


推荐阅读