Введение
В этой лабораторной работе вы узнаете, как использовать действие actions/checkout, которое является одним из самых важных шагов в любом рабочем процессе (workflow) GitHub Actions. По умолчанию среда выполнения (runner) GitHub Actions запускается в пустом каталоге. Чтобы собрать, протестировать или развернуть ваш код, вы должны сначала извлечь (check out) репозиторий в рабочее пространство среды выполнения.
Вы создадите файл рабочего процесса, настроите его для извлечения вашего кода, а затем проверите доступность файлов, перечислив их в логах. Этот процесс имитирует стандартную настройку конвейера непрерывной интеграции (CI).
Эта лабораторная работа основана на репозитории, который вы создали в предыдущих лабораторных работах. Вы клонируете репозиторий github-actions-demo и создадите новый рабочий процесс, использующий действие checkout.
Добавление шага для использования actions/checkout@v4 в рабочем процессе
На этом шаге вы клонируете репозиторий и создадите рабочий процесс (workflow), который использует действие actions/checkout. Это действие извлекает (checks out) ваш репозиторий в $GITHUB_WORKSPACE, чтобы ваш рабочий процесс мог получить к нему доступ.
- На странице вашего репозитория GitHub для
github-actions-demoнажмите зеленую кнопку Code. - Убедитесь, что выбрана вкладка HTTPS, и скопируйте URL. Он должен выглядеть примерно так:
https://github.com/your-username/github-actions-demo.git. - Откройте терминал в среде LabEx. Путь по умолчанию —
~/project. - Используйте команду
git cloneдля загрузки репозитория. Заменитеyour-usernameна ваше фактическое имя пользователя GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
- Перейдите в клонированный репозиторий:
cd ~/project/github-actions-demo
- Создайте новый файл рабочего процесса с именем
ci.ymlвнутри директории.github/workflows:
touch .github/workflows/ci.yml
- Откройте
.github/workflows/ci.ymlв редакторе WebIDE и добавьте следующее содержимое. Эта конфигурация определяет рабочий процесс с именем "CI", который запускается при каждом событииpush. Он включает одну задачу (job) с именемbuild, выполняющуюся наubuntu-latest, с шагом для извлечения кода (checkout).
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
Строка uses: actions/checkout@v4 указывает GitHub Actions загрузить и выполнить версию v4 официального действия checkout.
Добавление шага для вывода списка файлов с помощью команды run ls -la
На этом шаге вы добавите второй шаг в ваш рабочий процесс (workflow) для проверки того, что действие checkout успешно получило ваши файлы. Вы будете использовать стандартную команду оболочки (shell) для вывода списка файлов в текущем каталоге.
Откройте .github/workflows/ci.yml и добавьте следующий шаг в список steps. Убедитесь, что отступы выровнены правильно относительно предыдущего шага.
- name: List files
run: ls -la
Ваш полный файл .github/workflows/ci.yml теперь должен выглядеть следующим образом:
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: List files
run: ls -la
Ключевое слово run позволяет выполнять программы командной строки. Здесь ls -la выведет список всех файлов, включая скрытые, в корне репозитория.
Создание демонстрационного файла с именем index.js в репозитории
На этом шаге вы создадите пример файла в вашем репозитории. Этот файл послужит доказательством того, что действие actions/checkout работает корректно, когда мы увидим его в логах рабочего процесса (workflow logs).
- Убедитесь, что вы находитесь в директории репозитория:
cd ~/project/github-actions-demo
- Создайте простой JavaScript-файл с именем
index.jsв корне вашего репозитория:
echo "console.log('Hello, GitHub Actions!');" > index.js
- Вы можете проверить создание файла, выполнив команду:
ls -l index.js
Этот файл представляет исходный код вашего приложения, который конвейер CI (CI pipeline) обычно собирает или тестирует.
Зафиксировать (commit) и отправить (push) изменения демонстрационного файла и рабочего процесса
На этом шаге вы закоммитите свои изменения и отправите их на GitHub. Отправка этого коммита запустит рабочий процесс (workflow), который мы определили, благодаря конфигурации on: [push].
- Убедитесь, что вы находитесь в каталоге репозитория:
cd ~/project/github-actions-demo
- Проверьте статус вашего репозитория, чтобы увидеть неотслеживаемые файлы:
git status
Вы должны увидеть .github/workflows/ci.yml и index.js как неотслеживаемые.
- Добавьте все изменения в индекс (stage):
git add .
- Закоммитьте изменения с описательным сообщением:
git commit -m "Add CI workflow and index.js"
Пример вывода:
[main ... ] Add CI workflow and index.js
2 files changed, 14 insertions(+), 0 deletions(-)
create mode 100644 .github/workflows/ci.yml
create mode 100644 index.js
- Отправьте изменения в удаленный репозиторий на GitHub:
git push
Примечание об аутентификации:
Когда вы выполняете git push, WebIDE автоматически предложит вам пройти аутентификацию. Следуйте этим подробным шагам:
- Появится всплывающее окно с сообщением: "The extension 'GitHub' wants to sign in using GitHub." Нажмите Allow.
- Появится новое уведомление. Нажмите "Copy&Continue to GitHub", а затем "Open" в следующем запросе.
- Войдите в свою учетную запись GitHub в открывшемся окне браузера и введите скопированный код авторизации. После подтверждения авторизации страница закроется автоматически.
- Подождите несколько секунд, и вы увидите, что терминал успешно завершил операцию отправки (push).
Примечание о конфиденциальности: WebIDE запросит полный доступ к вашей учетной записи GitHub для целей аутентификации. Вам не нужно беспокоиться о проблемах конфиденциальности — виртуальная машина LabEx будет немедленно уничтожена после завершения текущей лабораторной работы, а ваши учетные данные и информация об авторизации не будут сохранены.
Этот процесс аутентификации не требует ручной настройки имени пользователя или Персонального токена доступа (Personal Access Token).
Пример вывода:
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 512 bytes | 512.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
1234567..abcdef1 main -> main
Эта отправка запускает рабочий процесс на GitHub.
Проверьте выполнение рабочего процесса, чтобы убедиться в перечислении файлов в логах
После отправки вашего кода рабочий процесс (workflow) автоматически запустится на GitHub. Вы можете просмотреть журналы выполнения рабочего процесса, чтобы убедиться, что действие checkout успешно получило ваши файлы.
- Перейдите в ваше репозиторий на GitHub через веб-браузер:
https://github.com/your-username/github-actions-demo - Нажмите на вкладку Actions в верхней части страницы репозитория.
- Вы должны увидеть запущенный рабочий процесс, вероятно, с названием "Add CI workflow and index.js" или "CI".
Примечание: При отправке кода могут быть запущены несколько действий (Actions), если в вашем репозитории несколько файлов рабочих процессов. Пожалуйста, определите правильное выполнение рабочего процесса, проверив его название в левой боковой панели или используя список выполнений рабочих процессов справа.
- Нажмите на заголовок выполнения рабочего процесса, затем нажмите на задание (job) build.
- Разверните шаг List files, чтобы увидеть вывод.
Вы должны увидеть вывод команды ls -la, который включает index.js и другие файлы из вашего репозитория:
Run ls -la
ls -la
shell: /usr/bin/bash -e {0}
total XX
drwxr-xr-x X runner ... .
drwxr-xr-x X runner ... ..
drwxr-xr-x X runner ... .git
drwxr-xr-x X runner ... .github
-rw-r--r-- X runner ... index.js
...
Это подтверждает, что шаг actions/checkout успешно извлек (checked out) ваш репозиторий. Без шага checkout команда ls -la показала бы только пустую директорию. Это демонстрирует, почему действие checkout является необходимым — оно делает файлы вашего репозитория доступными для исполнителя рабочего процесса (workflow runner).

Резюме
В этой лабораторной работе вы успешно создали рабочий процесс GitHub Actions, использующий действие actions/checkout. Вы узнали, как:
- Настроить структуру каталогов
.github/workflows. - Определить рабочий процесс, который запускается по событиям
push. - Использовать
actions/checkout@v4для клонирования вашего репозитория в исполнитель (runner). - Добавить шаг для проверки наличия файлов с помощью
ls -la.
Это основополагающий шаг для почти всех конвейеров CI/CD, позволяющий последующим шагам выполнять сборку, тестирование и развертывание кода вашего приложения.



