Одна из самых классных вещей в Github Action – экшены. С их помощью значительно сокращается количество кода в воркфлоу, а стандартный цикл сборки и тестирования собирается буквально за минуты на любом стеке.
В предыдущих уроках мы уже встречались с несколькими экшенами. Чаще всего, в сборках, используется экшен checkout, который клонирует репозиторий в рабочую директорию.
steps:
- uses: actions/checkout@v2
Отметим несколько деталей. Экшен работает как один из шагов задания. Для этого вместо ключа run
используется ключ uses
, за которым идет имя экшена. Откуда берется это имя? Из каталога экшенов. Причем там могут быть как встроенные Github Actions, так и созданные сторонними пользователями. Понять что откуда можно по имени экшена, оно соответствует структуре ссылок самого Github: имя пользователя или команды/название репозитория. Встроенные экшены находятся в команде actions.
Кроме имени экшена, Github требует указания его версии. Это сделано в целях надежности, чтобы обновления экшена не могли привести к случайной поломке всех репозиториев, которые его используют. Следить за версиями придется самостоятельно, поглядывая в README конкретного репозитория с экшеном.
У экшена могут быть параметры. Они задаются через ключ with
:
steps:
- uses: actions/checkout@v2
# https://github.com/actions/setup-node
- uses: actions/setup-node@v2
with:
node-version: '16.x'
cache: npm # ускоряет повторные сборки
- run: npm ci
- run: npm test
А вот пример стороннего экшена, который запускает тесты на фреймворке cypress:
name: End-to-end tests
on: [push]
jobs:
cypress-run:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
# Устанавливает зависимости, кеширует их и запускает тесты
- uses: cypress-io/github-action@v2
Добавим в наш воркфлоу проверку проекта на наличие уязвимостей с помощью Snyk, и ускорим npm с помощью дополнительного функционала экшена setup-node ⎯ кеширования зависимостей.
Зарегистрируйтесь на snyk.io
Добавьте в воркфлоу запуск экшена Snyk Node Action. Нужно будет заполнить значение переменной окружения SNYK_TOKEN. Токен можно найти в Account Settings → General на snyk.io. Используйте Encrypted secrets.
Включите кеширование для npm с помощью соответствующей опции экшена setup-node.
Запуште изменения и убедитесь, что экшен работает
Вам ответят команда поддержки Хекслета или другие студенты.
Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.
Загляните в раздел «Обсуждение»:
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт