Рабочий каталог Github по умолчанию с переменной

Я настраиваю действия 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 ✨
Редкая коллекция доступна в профиле на GitHub ✨
1
1
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как поделился jonrsharpe в комментариях выше, согласно официальной документации GitHub

Вы можете использовать defaults.run, чтобы предоставить параметры оболочки и рабочего каталога по умолчанию для всех шагов выполнения в рабочем процессе. Вы также можете установить параметры запуска по умолчанию, доступные только для задания. Дополнительные сведения см. в разделе jobs.<job_id>.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).

Использованная литература:

спасибо, да, мне удалось реализовать то же самое в рабочем процессе для чтения выходных данных github в переменные env, а затем перейти к последующим рабочим процессам.

Sat 23.04.2024 00:52

Другие вопросы по теме