Введение и настройка GitHub Actions

GitBeginner
Практиковаться сейчас

Введение

GitHub Actions — это платформа непрерывной интеграции и непрерывной доставки (CI/CD), которая позволяет автоматизировать конвейер сборки, тестирования и развертывания. Вы можете создавать рабочие процессы (workflows), которые выполняют сборку и тестирование каждого pull request в вашем репозитории или развертывают объединенные pull requests в производственную среду (production).

В этой лабораторной работе вы изучите первоначальную настройку, необходимую для начала использования GitHub Actions. Вы пройдете процесс создания репозитория GitHub, клонирования его в локальную среду разработки и настройки специфической структуры каталогов, которую GitHub Actions требует для распознавания ваших рабочих процессов.

Предварительные требования

  • Аккаунт GitHub (https://github.com). Если у вас нет аккаунта GitHub, вам необходимо сначала зарегистрировать бесплатный аккаунт по адресу https://github.com/signup. Это является обязательным условием для прохождения данной лабораторной работы.
  • Базовое знакомство с командной строкой (command line).

Создание нового репозитория на сайте GitHub

На этом шаге вы создадите новый репозиторий на веб-сайте GitHub. Этот репозиторий будет служить удаленным хранилищем для вашего проекта и местом, где будут выполняться рабочие процессы (workflows) GitHub Actions.

  1. Откройте веб-браузер и перейдите по адресу https://github.com.
  2. Войдите в свою учетную запись GitHub.
  3. В правом верхнем углу любой страницы используйте выпадающее меню + и выберите New repository (Новый репозиторий).
  4. В поле Repository name (Имя репозитория) введите github-actions-demo.
  5. Выберите Public (Публичный) (GitHub Actions бесплатен для публичных репозиториев).
  6. Установите флажок Add a README file (Добавить файл README). Это гарантирует, что репозиторий инициализирован и готов к клонированию.
  7. Нажмите Create repository (Создать репозиторий).
Create a new repository on GitHub website

Теперь вы создали удаленный репозиторий. На следующих шагах вы перенесете этот репозиторий в свою локальную среду.

Клонирование репозитория на виртуальную машину Ubuntu с помощью команды git clone

На этом шаге вы клонируете только что созданный репозиторий в вашу локальную среду LabEx. Это позволит вам редактировать файлы и создавать рабочие процессы локально.

  1. На странице вашего репозитория на GitHub нажмите зеленую кнопку Code.
  2. Убедитесь, что выбрана вкладка HTTPS, и скопируйте URL. Он должен выглядеть примерно так: https://github.com/your-username/github-actions-demo.git.
  3. Откройте терминал в среде LabEx. Путь по умолчанию — ~/project.
  4. Используйте команду git clone для загрузки репозитория. Замените your-username на ваше фактическое имя пользователя GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git

Пример вывода:

Cloning into 'github-actions-demo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
  1. Проверьте, что каталог был создан:
ls -F

Вы должны увидеть github-actions-demo/ в списке.

Создание каталога .github/workflows в репозитории

GitHub Actions ищет файлы конфигурации рабочих процессов (workflow configuration files) в определенном каталоге внутри вашего репозитория: .github/workflows. На этом шаге вы создадите эту структуру каталогов.

  1. Убедитесь, что вы находитесь внутри каталога репозитория:
cd ~/project/github-actions-demo
  1. Создайте каталог .github и подкаталог workflows внутри него, используя команду mkdir с флагом -p (parents):
mkdir -p .github/workflows
  1. Git не отслеживает пустые каталоги. Чтобы гарантировать, что мы сможем закоммитить эту структуру на следующем шаге, давайте создадим простой пустой файл рабочего процесса с именем main.yml внутри этого каталога.
touch .github/workflows/main.yml
  1. Проверьте структуру:
ls -R .github

Пример вывода:

.github:
workflows

.github/workflows:
main.yml

Эта структура является обязательной. GitHub будет распознавать YAML-файлы, размещенные в .github/workflows, только как рабочие процессы Actions.

Фиксация и отправка изменений каталога с использованием git add, git commit и git push

На этом шаге вы зафиксируете новую структуру каталогов и отправите ее в GitHub.

  1. Добавьте новые файлы для фиксации (stage the new files for commit):
git add .
  1. Зафиксируйте изменения с описательным сообщением:
git commit -m "Setup GitHub Actions workflow directory"

Пример вывода:

[main ... ] Setup GitHub Actions workflow directory
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 .github/workflows/main.yml
  1. Отправьте изменения в удаленный репозиторий на GitHub:
git push

Примечание об аутентификации:
Когда вы выполните команду git push, WebIDE автоматически предложит вам пройти аутентификацию. Следуйте этим подробным шагам:

  1. Появится всплывающее окно с сообщением: "The extension 'GitHub' wants to sign in using GitHub." Нажмите Allow (Разрешить).
  2. Появится новое уведомление. Нажмите "Copy&Continue to GitHub" (Скопировать и продолжить в GitHub), затем нажмите "Open" (Открыть) в следующем запросе.
  3. Войдите в свою учетную запись GitHub в открывшемся окне браузера и введите скопированный код авторизации. После подтверждения авторизации страница закроется автоматически.
  4. Подождите несколько секунд, и вы увидите, что терминал успешно завершил операцию отправки (push).
GitHub Authentication

Примечание о конфиденциальности: 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% (2/2), done.
Writing objects: 100% (5/5), 388 bytes | 388.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
   2e0917f..a191a97  master -> master
  1. Посетите свой репозиторий на GitHub в веб-браузере, чтобы убедиться, что каталог .github/workflows и файл main.yml теперь видны в структуре репозитория.

Резюме

В этой лабораторной работе вы успешно заложили основу для использования GitHub Actions. Вы выполнили следующие действия:

  1. Создали новый репозиторий на GitHub.
  2. Клонировали репозиторий в свою локальную среду.
  3. Создали обязательную структуру каталогов .github/workflows.
  4. Зафиксировали и отправили эти изменения обратно на GitHub.

Теперь, когда эта структура настроена, вы готовы определять рабочие процессы CI/CD, редактируя YAML-файлы в каталоге workflows.