Ошибка проверки действий GitHub при разархивировании с помощью собственного агента

Я настраиваю конвейер CI / CD с помощью GitHub Actions, а самодостаточный агент установил сервер Windows 2019.

Проблема, с которой я столкнулся, заключается в том, что action actions / checkout@v2 не может проверить репо и полностью разархивировать его. Когда я говорю «полностью распаковать», я имею в виду, что в целевой папке есть файлы, которые ей удалось распаковать до остановки.

Из журнала:

      Run actions/checkout@v2
Syncing repository: Syd/ExternWebb
Getting Git version info
Deleting the contents of 'C:\actions-runner\_work\ExternWebb\ExternWebb'
The repository will be downloaded using the GitHub REST API
To create a local Git repository instead, add Git 2.18 or higher to the PATH
Downloading the archive
Writing archive to disk
Extracting the archive
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('C:\actions-runner\_work\ExternWebb\ExternWebb\b3193a49-e100-4cbd-81c9-6bd23ff47313.tar.gz', 'C:\actions-runner\_work\ExternWebb\ExternWebb\b3193a49-e100-4cbd-81c9-6bd23ff47313')"
Exception calling "ExtractToDirectory" with "2" argument(s): "Could not find a part of the path 'C:\actions-runner\_wor
k\ExternWebb\ExternWebb\b3193a49-e100-4cbd-81c9-6bd23ff47313\Syd-ExternWebb-77d0427f54bc3e4d6694
f0719ca9fe3ab3be3706\ExternWebb.Library\Custom\Plugins\DomainRedirectModule\DomainRedirectConfigurationCollection
.cs'."
At line:1 char:111
+ ... catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('C:\a ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : DirectoryNotFoundException
 
Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1

Я без проблем пробовал запустить то же действие на локальном собственном агенте.

Сообщение Reddit предполагает, что ошибку можно смягчить, вместо этого получая репо через Git, указывая на эту подсказку в журнале:

      The repository will be downloaded using the GitHub REST API
To create a local Git repository instead, add Git 2.18 or higher to the PATH

Я попытался установить Git v.2.30 и добавил его в PATH, как описано выше, но по какой-то причине действие все еще загружает репо через GIT API. Я не знаю, требуется ли перезапуск сервера, но команды git доступны в Powershell.

Я предполагаю, что именно поэтому локально размещенный агент может проверить репо, а агент, работающий на сервере, не может.

Это yml-файл рабочего процесса:

      name: Build Stage

on:
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]

jobs:
  build:
    runs-on: [self-hosted, stage]
    env:
      CONFIG: Stage
      BUILD_FOLDER: _build
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      
    steps:
    - name: Checking out source code
      uses: actions/checkout@v2

Любые инсайты приветствуются.

2 ответа

Убедитесь, что вы остановили и перезапустили службу GitHub Actions Runner после установки Git. Это сделало это для меня.

Достаточно установить Git и перезагрузить компьютер runner, если Actions Runner размещен как служба.

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