Можно ли сохранить WORKDIR между действиями в действиях GitHub? - PullRequest
0 голосов
/ 01 февраля 2019

Сегодня утром я проснулся с бета-приглашением GitHub Actions (wooo) и начал играть с ним, чтобы перенести несколько простых конвейеров сборки, тестирования и развертывания, которые у меня сейчас есть на CircleCI.

Я все еще пытаюсь разобраться с действиями, но поток, который я имею в виду, заключается в том, что после нажатия первое действие в рабочем процессе запустит контейнер Docker.Внутри этого контейнера я буду запускать несколько простых процессов сборки, таких как минимизация ресурсов и удаление артефактов.Следующее действие затем запустит несколько тестов для сборки.И следующее действие (я) в конвейере будет развернуто в одной из нескольких сред, в зависимости от ветви, в которую я нажал.

Я следовал за документами на https://developer.github.com/actions/creating-github-actions/creating-a-docker-container/ и у меня есть элементарный рабочий процесс, который запускает контейнер Docker и запускает некоторые команды сборки внутри WORKDIR.Я также могу запустить развертывание (через rsync) из этого WORKDIR.

Однако я хотел бы разделить это на отдельные шаги / действия, но я не могу понятьпуть к этому.

По сути, это будет похоже на модель заданий / рабочих процессов CircleCI, которую я использую.Однако, с CircleCI, первое задание запускает сборку, а затем сохраняет результирующую структуру каталогов на протяжении всего остального рабочего процесса, например:

# Persist dist directory
  - persist_to_workspace:
      root: ~/project
      paths:
        - .

Итак, я как бы приравниваю задания CircleCI к действиям GitHub здесь,что, возможно, неправильно делать?По сути, я пытаюсь выяснить, могу ли я сохранить WORKDIR внутри контейнера Docker первого действия и сделать его доступным для последующих действий WORKDIR.

Возможно ли это, или я в порядке?что я могу себе представить GitHub Actions?

Спасибо!

1 Ответ

0 голосов
/ 02 февраля 2019

Отвечаю на этот вопрос сам, если кто-то еще столкнется с этой проблемой (и, как и я, не полностью прочитал документы!).: o)

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

Итак, ответДа, Docker WORKDIR на /github/workspace сохраняется в рабочем процессе GitHub Actions аналогично тому, как он может сохраняться в рабочем процессе CircleCI.

...