GitHub Actions
Введение | |
Создать бесплатный репозиторий на GitHub | |
Создать Simple Workflow | |
Анализ ошибок | |
Редактирование .yml файла | |
Запус вручную | |
Другие статьи про Git |
Введение
В этой статье мы разберем GitHub Actions на примере бесплатного репозитория. Про корпоративные репозитории вы можете прочитать здесь
Создать бесплатный репозиторий на GitHub
Для демонстрации возможностей GitHub Actions создадим новый репозиторий
Перейдите в раздел Your repositories и нажмите New

https://devhops.ru
Задайте имя репозитория.
Если требуется - установите флаги Private и Add a README file.
Нажмите Create repository

https://devhops.ru
Новый репозиторий будет выглядеть следующим оригинальным образом

https://devhops.ru
Создать Simple workflow
Приступим к созданию простейшего workflow в новом репозитории
Перейдите в раздел Actions

https://devhops.ru
В разделе Simple workflow Нажмите Configure

https://devhops.ru
По умолчанию .yml файл для Simple workflow выглядит следующим оригинальным образом

https://devhops.ru
Полный код на январь 2025-го года.
# This is a basic workflow to help you get started with Actions name: CI # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the "main" branch push: branches: [ "main" ] pull_request: branches: [ "main" ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 # Runs a single command using the runners shell - name: Run a one-line script run: echo Hello, world! # Runs a set of commands using the runners shell - name: Run a multi-line script run: | echo Add other actions to build, echo test, and deploy your project.
Внесём небольшие изменения. Сделаем несколько echo, плюс раз этот workflow запускается на Ubuntu выведем на экран информацию о хосте .
# This is a basic workflow to help you get started with Actions name: Devhops.ru # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the "main" branch push: branches: [ "main" ] pull_request: branches: [ "main" ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 # Runs a single command using the runners shell - name: Run a one-line script run: echo Thank you for visiting https://devhops.ru # Runs a set of commands using the runners shell - name: Run a multi-line script run: | echo Our telegram channel is, echo https://t.me/aofeed echo You are welcome to subscribe! hostnamectl
Новый .yml будет выглядеть так

https://devhops.ru
Закоммитим изменения. Нажмите Commit changes… в верхнем правом углу.
При необходимости добавьте что-то в коммит и нажмите Commit changes

https://devhops.ru
Результат

https://devhops.ru
Через некоторое время должен появится индикатор успеха.
Если всё хорошо - появится зелёная галочка. На неё можно кликнуть и изучить детали выполнения.

https://devhops.ru
Нажмите Details

https://devhops.ru
Теперь можно изучить каждый шаг по отдельности.
Выберите Run a multi-line script

https://devhops.ru
Все echo и hostnamectl выполнены успешно

https://devhops.ru
Просмотр этих логов может быть очень полезен для выяснения причин ошибки.
Анализ ошибок
Предположим, что мы допустили ошибку в .yml файле.
… # Runs a set of commands using the runners shell - name: Run a multi-line script run: | echo Our telegram channel is, echo https://t.me/aofeed echo You are welcome to subscribe! ${ hostnamectl }
После коммита мы увидим красный индикатор ошибки

https://devhops.ru
После клика на него можно узнать некоторые подробности

https://devhops.ru
Чтобы выяснить причину - нужно зайти в логи этого шага

https://devhops.ru
Прочитав лог можно понять, что ошибка на четвёртой строке нашего многострочного скрипта
… line 4: ${ hostnamectl }: bad substitution
Редактирование .yml файла
Чтобы внести изменения в существуюй workflow нужно отредактирвоать .yml файл.
Перейти к .yml файлу можно несколькими способами
1. Из раздела Actions нажав … и View workflow file

https://devhops.ru
2. Из раздела Code нажав .github/workflows

https://devhops.ru
.. И затем нажав на .yml файл

https://devhops.ru
Внесём небольшие изменения и закоммитим их

https://devhops.ru

https://devhops.ru
Некоторое время можно будет видеть статус queued в виде коричневого круга

https://devhops.ru
Затем статус должне измениться на успех

https://devhops.ru
Лог будет выглядеть примерно так

https://devhops.ru
Запус вручную
Чтобы внести изменения в существуюй workflow нужно отредактирвоать .yml файл.
Перейти к .yml файлу можно несколькими способами
1. Из раздела Actions нажав … и View workflow file

https://devhops.ru
2. Из раздела Code нажав .github/workflows

https://devhops.ru
.. И затем нажав на .yml файл

https://devhops.ru
Внесём небольшие изменения и закоммитим их

https://devhops.ru

https://devhops.ru
Некоторое время можно будет видеть статус queued в виде коричневого круга

https://devhops.ru
Затем статус должне измениться на успех

https://devhops.ru
Лог будет выглядеть примерно так

https://devhops.ru
Автор статьи: Андрей Олегович
Git remote | |
Git | |
GitHub | |
Actions | |
Переход с https аутентификации на ssh | |
GitLab |
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги