带变量的Github默认工作目录

问题描述 投票:0回答:1

我正在设置 github 操作,需要将默认值传递到工作目录而不是硬编码,但似乎我无法从输入变量中读取实际值,请告诉我哪里出了问题。

name: Test

on:
  workflow_dispatch:
    inputs:
      ENVIRONMENT:
        default: development
        type: string 
      PATH:
        default: test
        type: string 

  
defaults:
  run:
    shell: bash  
    working-directory: ${{ github.event.inputs.PATH }}  # ${{ inputs.PATH}} none worked
    
jobs:
  job1:
    runs-on: ubuntu-latest
    steps:
      - name: Run Commands with various variables
        run: |
          echo "Hello World"
          echo "${{ inputs.ENVIRONMENT}}/${{ inputs.APPNAME }} "
github github-actions
1个回答
0
投票

正如上面评论中jonrsharpe所分享的,根据GitHub官方文档

您可以使用 defaults.run 为工作流中的所有运行步骤提供默认 shell 和工作目录选项。您还可以设置仅适用于作业的运行默认设置。有关更多信息,请参阅 jobs..defaults.run。 您不能在此关键字中使用上下文或表达式。

现在,另一种方法是在工作流程级别设置环境变量,并在所有工作流程作业

defaults.run
配置中使用它(您也可以直接在作业
${{ inputs.PATH }}
配置中使用
defaults.run.workking-directory

示例:

name: Test

on:
  workflow_dispatch:
    inputs:
      ENVIRONMENT:
        default: development
        type: string 
      PATH:
        default: test
        type: string 

env:
  PATH: ${{ inputs.PATH }}
    
jobs:
  job1:
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash  
        working-directory: ${{ env.PATH }} # could use directly ${{ inputs.PATH }} here
    steps:
      - name: Run Commands with various variables
        run: |
          echo "Hello World"
          echo "${{ inputs.ENVIRONMENT}}/${{ inputs.PATH }} "

请注意,如果您不通过输入告知有效的working-directory

,工作流程将会中断
,因为您还无权访问
github.workspace
路径(不使用
actions/checkout

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.