Я создал новый проект Rust и решил, что я дам Github Actions попытку запуска автоматических сборок и тестов для каждого запроса на извлечение:
name: Rust
on: [pull_request]
Мне потребовалосьв то же время, чтобы заметить, что по умолчанию Github Actions не извлекает мой код вообще, а GITHUB_WORKSPACE
просто пуст.Итак, я попытался вручную клонировать хранилище.Делаем что-то вроде этого:
REPO=/tmp/path/to/repository
git clone https://github.com/myself/mycode.git $REPO
Но это просто проверяет, что находится в ветке по умолчанию.Итак, я исследовал проверку $GITHUB_SHA
, которая оказалась неизвестной моему хранилищу.И то же самое верно для $GITHUB_REF
, который просто пуст.
На данный момент я не знаю, что я делаю.Мое первоначальное предположение состояло в том, что задание, которое буквально сконфигурировано для запуска on: [pull request]
, должно иметь именно этот код, но оно не может извлечь и подготовить его.
Я также исследовал предоставленные Действия проверки :
Это действие проверяет ваш репозиторий на $GITHUB_WORKSPACE
, чтобы ваш рабочий процесс мог получить доступ к содержимому вашегорепозиторий.
По умолчанию это эквивалентно выполнению git fetch
и git checkout $GITHUB_SHA
, так что вы всегда будете иметь содержимое репозитория в той версии, которая запустила рабочий процесс.См. здесь , чтобы узнать, что такое $GITHUB_SHA
для различных видов событий.
Но, как я уже говорил, $GITHUB_WORKSPACE
полностью пуст, и git fetch
будетпросто скажу вам, что git-репозитория нет.
Вот такой пример сбоя :
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
fatal: reference is not a tree: d76745134ae45905e4a0ab8d27c92f1e2544bdc1
##[error]Process completed with exit code 128.
Что такое $GITHUB_SHA
, если оно неизвестно моему репозиторию?Полностью ли я неправильно понимаю действия Github?Как оформить последний коммит с помощью Github Actions, т. Е. По запросу извлечения?
Вот хронология моих сбоев .