Рубрики
Uncategorized

Создайте свое собственное действие GitHub с контейнером Docker

GitHub Actions — это мощная платформа, которая позволяет вашей команде переходить от кода в облако, все из … Tagged Github, DevOps, GitHubactions, Docker.

[«28-github-Actions»] (серия 26 деталей)

Github Actions — это мощная платформа, которая дает вашей команде переходить от кода в облако, и все это от комфорта ваших репозиториев.

В этом посте я кратко пройду, как вы можете построить многоразовое действие GitHub, используя DockerFile.

Если вы хотите подробно рассмотреть Действия GitHub: Напишите контейнер Docker курс.

Начинать

Большинство действий GitHub-это репо с открытым исходным кодом, что позволяет легко искать и открывать в сообщество действий. Чтобы создать свои собственные действия, вы начнете с создания репозитория GitHub, и в этом репо вам понадобится Dockerfile. Вам не нужно быть экспертом в Docker, но на высоком уровне Docker позволит запустить ваш код в качестве сценария.

В этом действии изображение Docker (альпийское) предоставит среду для запуска сценария Bash. До сих пор мы можем поместить немного докеров в Dockerfile и двигаться дальше.

Один из них, чтобы указать, — это создание точки входа. А intrypoint.sh Будет то место, где мы пишем наш удар. Это может быть index.rb или index.js Если другой язык предпочтительнее. Самая большая вещь, которая нам нужно, — это исполняемый файл для точки входа.

Я также хочу объяснить исполняемый файл и что это значит. Это просто означает, что я могу запустить это из командной строки только с помощью пути файла. Это полезно для легких сценариев. Есть и другие языки, на которых мы могли бы написать это, чтобы сделать исполняемый файл, как пример Go, и ради объяснения, и тот факт, что у меня уже был написан этот код в Mash, мы собираемся придерживаться Bash сегодня.

// Dockerfile

FROM alpine
RUN apk add --no-cache jq
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

Приведенный ниже код Bash получает несколько элементов из Github_event_path , одна из стандартных переменных среды в бегуне действий. Код также включает в себя условное для органа комментариев, подтверждающее, что он включает в себя .take ключевое слово.

// entrypoint.sh

#!/bin/sh

BODY="$(jq '.comment.body' $GITHUB_EVENT_PATH)"
ISSUE_NUMBER="$(jq '.issue.number' $GITHUB_EVENT_PATH)"
LOGIN="$(jq '.comment.user.login' $GITHUB_EVENT_PATH | tr -d \")"
REPO="$(jq '.repository.full_name' $GITHUB_EVENT_PATH | tr -d \")"

if [[ $BODY == *".take"* ]]; then
  echo "Assigning issue $ISSUE_NUMBER to $LOGIN"
  echo "Using the link: https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER/assignees"
  curl -H "Authorization: token $GITHUB_TOKEN" -d '{"assignees":["'"$LOGIN"'"]}' https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER/assignees
fi

Примечание в конце удара, и мы используем команду Curl, чтобы поговорить непосредственно с API GitHub. Эта команда Curl предназначена для простоты. Все это могло быть сделано с помощью octokit.rest.js Библиотека или лучше GitHub-Script Анкет

И теперь вы можете подтолкнуть это к GitHub, чтобы проверить его из репо. Я использую это фактическое действие в моем репо Bdougie/Take-Action Получил ответ от моего действия, похоже, все сработало.

Если вы заинтересованы в полной версии этого учебника, это был отрывок из моего ранее записанного видео на YouTube:

Это часть моей серии 28 дней действий. Чтобы получить уведомление о большем количестве советов по действию GitHub, следуйте организации GitHub прямо здесь, на Dev.

Создайте свое собственное действие GitHub с помощью CLI с действиями

Брайан Дуглас ・ 15 февраля ・ 2 мин читал

[«28-github-Actions»] (серия 26 деталей)

Оригинал: «https://dev.to/github/build-github-actions-with-a-docker-container-37e2»