GitHub Actions — это мощный инструмент для автоматизации рабочих процессов прямо внутри вашего репозитория. Он позволяет создавать цепочки шагов (workflow), которые выполняются автоматически при определённых событиях: от пуша кода до публикации релиза.
В этой статье мы разберём, как использовать Actions внутри workflow, зачем нужен экшен checkout, и как можно обойтись без него, используя стандартные команды Git.
Что такое рабочий каталог в GitHub Actions
Когда вы запускаете workflow в GitHub Actions, система создаёт виртуальную машину, на которой выполняются все шаги вашего сценария. Однако важно понимать, что рабочий каталог (working directory) на этой машине изначально пуст.
Многие начинающие разработчики ожидают увидеть там файлы своего репозитория — например, index.html или README.md, — но этого не происходит. GitHub не копирует автоматически ваш проект в рабочее окружение, потому что Actions — это универсальный инструмент автоматизации, который можно использовать не только для работы с кодом, но и для любых других задач: CI/CD, тестов, интеграций, уведомлений и так далее.
Чтобы работать с файлами репозитория, их нужно явно скопировать в рабочую среду. Для этого и существует специальный экшен — actions/checkout.
Что такое экшены и как они работают
Экшены (Actions) — это готовые скрипты, созданные разработчиками для решения типовых задач. Они размещаются в GitHub Marketplace, где доступно более 20 000 экшенов: для тестирования, деплоя, работы с Docker, уведомлений в Slack, сборки фронтенда и многого другого.
Каждый экшен — это мини-программа, обычно написанная на TypeScript или JavaScript. Вы можете использовать её в своём workflow буквально в одной строке кода.
Подключение actions/checkout
Чтобы скопировать файлы репозитория в рабочий каталог, используем экшен actions/checkout.
Пример кода в workflow:
- name: Checkout repository
uses: actions/checkout@v4
Здесь:
uses— ключевое слово, указывающее, что мы используем экшен;actions/checkout— имя экшена;@v4— версия (на момент написания актуальна 4-я).
После выполнения этого шага в рабочем каталоге появятся все файлы из вашего репозитория, и вы сможете работать с ними как обычно: запускать тесты, собирать проект, выполнять деплой и т. д.
Как проверить результат
Добавим несколько шагов в workflow, чтобы убедиться, что файлы действительно скопировались:
steps:
- name: Show current directory
run: pwd
- name: List files before checkout
run: ls -la
- name: Checkout repository
uses: actions/checkout@v4
- name: List files after checkout
run: ls -la
Если вы запустите этот workflow, то сначала увидите пустой каталог, а после шага checkout — все файлы вашего проекта: .git, .github, index.html, README.md и т. д.
Альтернатива: копирование репозитория без экшенов
Хотя экшен checkout решает задачу идеально, можно обойтись и без него, используя стандартные команды Git. Это бывает полезно, если вы хотите больше контроля над процессом или работаете в специфических сценариях.
Пример:
steps:
- name: Clone repository manually
run: |
git init
git remote add origin https://github.com/${{ github.actor }}/${{ github.repository }}
git fetch origin
git checkout main
ls -la
В этом примере:
- мы вручную инициализируем Git;
- добавляем удалённый репозиторий;
- выполняем
fetchи переключаемся на веткуmain; - затем проверяем содержимое каталога.
GitHub Actions автоматически создаёт системные переменные вроде ${{ github.actor }} и ${{ github.repository }}, а также предоставляет временный доступный токен ${{ secrets.GITHUB_TOKEN }}, который можно использовать для авторизации.
Что выбрать: экшен или команды Git?
Оба подхода работают.
Однако:
- ✅ Экшен
checkout— проще, надёжнее, поддерживается GitHub, имеет обновления и понятную документацию. - ⚙️ Команды Git — дают гибкость и подходят для кастомных сценариев (например, частичное клонирование или работа с несколькими репозиториями).
Если ваша задача простая — используйте экшены. Если же вы строите сложный pipeline с кастомной логикой, возможно, стоит написать собственные шаги на Git.
Заключение
Экшены — это сердце GitHub Actions. С их помощью можно автоматизировать всё: от копирования файлов до публикации сайта или сборки Docker-образов. Экшен checkout — первый и один из самых важных шагов в любом workflow, который позволяет подготовить окружение для дальнейших задач.

