Dockerコンテナで独自のGitHubアクションを構築する


GitHubアクションは、あなたのリポジトリの快適さから、すべてのコードから雲に行くあなたのチームを強化する強力なプラットフォームです.
このポストでは、dockerfileを使用して再利用可能なgithubアクションをどのように構築するかを簡単に説明します.
あなたがより詳細に入ることを望むならば、チェックしてくださいGitHub Actions: Write Docker container actions コース.

始まり


ほとんどのGithubのアクションは、オープンソースのgithubレポ、簡単に検索し、コミュニティ構築のアクションを発見することです.独自のアクションを作成するには、github repoを作成することから始めます.あなたはDockerの専門家である必要はありませんが、高レベルでは、Dockerはスクリプトとしてコードを実行することが可能になります.
このアクションでは、Dockerイメージ(Alpine)はbashスクリプトを実行する環境を提供します.今までのところ、dockerfileにDockerのものを入れて移動できます.
この点を指摘するのは、entrypointの作成です.安entrypoint.sh 我々が我々のbashを書く場所であるでしょう.これはindex.rb or index.js 別の言語が好ましいならば.必要な最大のものはentryPointの実行ファイルです.
私はまた、実行可能な説明とは何を意味します.コマンドラインからファイルパスを使用するだけでこれを実行できるということです.これは簡単にスクリプトのために役立つ.私たちが実行可能にするためにこれを書くことができた他の言語があります.そして、説明のために、そして、私がすでにマッシュで書かれたこのコードを持っていたという事実のために、我々は今日bashに固執するつもりです.
// Dockerfile

FROM alpine
RUN apk add --no-cache jq
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
以下のBashコードは、アクションランナーの標準的な環境変数の一つであるGitHubCount EventRangeパスからいくつかの項目を取得します.このコードには、コメント本文には、.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
bashの最後に注意してください.そして、私たちは直接にGITUB APIに話をするためにcurlコマンドを活用しています.このcurlコマンドは単純化のためのものです.このすべては、octokit.rest.js ライブラリーベターgithub-script .
そして今、あなたはそれがレポからテストするGithubにこれをプッシュすることができます.私はレポでこの実際の行動を活用するbdougie/take-action 私の行動から戻って反応を得た、それがうまく動作したように見えます.
あなたがこのチュートリアルの完全なバージョンに興味があるならば、これはYouTubeの以前に録画されたビデオからの抜粋でした:
これは私の28日間のアクションシリーズの一部です.より多くのGithubアクション・ティップスの通知を得るために、Div .
02:00