Переменные действий Github указывают на родительскую ветвь

#github-actions

Вопрос:

Я разветвил проект:
введите описание изображения здесь

и я настраиваю определение CI для ветвей, не являющихся основными, с помощью этих заключительных шагов:

 - name: Zip the release
  uses: papeloto/action-zip@v1
  with:
    files: README.md LICENSE *.dll nfive.yml nfive.lock fxmanifest.lua index.html config/
    dest: ${{ github.workspace }}nfive.zip

- name: Attach Zip as build artifact
  uses: actions/upload-artifact@v1
  with:
    name: nfive
    path: ${{ github.workspace }}nfive.zip
 

Почему github.workspace указывает на исходный репозиторий NFiveNFive?
введите описание изображения здесь

Итак, если запустить echo ${{ github.workspace}}, он определенно покажет родительский репозиторий, но чтобы сделать это еще сложнее, если я изменю каталог на имя своей организации и имя разветвленного репозитория, я получу это:

введите описание изображения здесь

что является результатом этих шагов:

 - run: echo ${{ github.workspace }}

- name: Move files to artifact folder
  shell: pwsh
  run: |
    cd D:aHTB-5MNFive
    mkdir Build        
    Move-Item -Path README.md,LICENSE,*.dll,nfive.yml,nfive.lock,fxmanifest.lua,index.html,config -Destination Build
 

У меня нет доступа к родительскому пути, потому что я не являюсь участником, поэтому я в первую очередь разветвил, так почему Github предполагает, что github.workspace должен сопоставляться с родительским?

=== Udate ===

Поэтому я перешел в свою учетную запись пользователя, а не в организацию, которую я использовал, и добавил шаг рабочего процесса, чтобы просто отобразить переменную github.workspace, и в ней определенно указано родительское рабочее пространство D:aNFiveNFive

введите описание изображения здесь

Я попытался изменить путь в файле nfive.yml

введите описание изображения здесь

Тот же результат

введите описание изображения здесь

Удаление файла nfive.yml ничего не меняет. Я думаю, что nfive.yml фактически используется в конвейерах CI / CD, которые оригинальные авторы настроили в appveyor, поэтому здесь это ни на что не повлияет.

Ответ №1:

Это не указывает на родительское репо fork, это потому github.workspace , что переменная следует этому формату: /home/runner/work/my-repo-name/my-repo-name .

Вот причина, по которой NFive появляется дважды, это НЕ относится к имени пользователя / организации NFive, а дважды к имени репозитория NFive.


Это объясняется в документации github о переменных среды по умолчанию

введите описание изображения здесь

Я также разветвил репозиторий и не получаю никаких ошибок при запуске этого рабочего процесса.

Вот результат выполнения рабочего процесса с сгенерированным .zip артефактом файла.

Комментарии:

1. Я только что попробовал то же самое, что и ты, но получил ту же ошибку. Я также попытался полностью удалить файл, не зная, зачем он вообще нужен, та же ошибка. На самом деле, если вы посмотрите на то, как вы выполняете шаг «эхо», он все еще показывает D:aNFiveNFive

2. Я тоже не понимаю, как это может работать на моей вилке, а не на вашей 😅 🤔

3. Самое странное, что это D:aNFiveNFive в вашем случае, тем не менее, zip все еще генерируется и прикрепляется к запуску

4. На самом деле, я не думаю, что это ошибка, это потому github.workspace , что следуйте этому формату: /home/runner/work/my-repo-name/my-repo-name . Вот почему NFive появляется дважды, оно ССЫЛАЕТСЯ НЕ на имя пользователя / организацию NFive, а дважды на имя репозитория NFive. Это объясняется в документации github о переменных среды по умолчанию . Я обновил ответ выше.