SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GitHub Actionsをはじめよう

【GitHub Actionsの基本のキ】実際に“アクション”を作ってみよう

GitHub Actionsをはじめよう 第3回

アクションを呼び出すワークフローファイルを作成する

 作成したアクションを呼び出してみましょう。

 .github/workflowsフォルダにcall-actions.ymlを作成し、以下の内容を記載します。

name: Call Actions
on: 
  push:

jobs:
  call-actions-job:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4
      - name: Show message
        uses: ./.github/actions/thanks

 リポジトリ内に配置するプライベートアクションを実行する場合、リポジトリをチェックアウトする必要があります。そのため、actions/checkout@v4を利用します。その後、usesキーを使って先ほど作成したアクションを格納しているフォルダへのパスを相対パスで指定します。

 リポジトリにpushされるとワークフローが実行され、以下のようにメッセージが表示されます。

 自作アクションを呼び出すことができました!

 今回作ったアクションは、ランダムに選択されたメッセージがワークフローの実行ログとして表示されます。例えばプルリクエストの作成をイベントに指定し、プルリクエストのコメントとしてメッセージを投稿するようにすれば、ちょっとしたお楽しみ要素にもなりそうです。

 ワークフローが増えてくると、ワークフロー間で重複する処理が出てきたり、統一したログを出力したりしたくなるでしょう。そんなときにアクションはぴったりです。小さなところから始めてみてください。 

 最後に今回作成したファイルの構成を記載します。

repo/
┗━ .github/
       ┣━ actions/
       ┃   ┗━ thanks/
       ┃          ┣━ action.yml
       ┃          ┗━ index.js
       ┗━ workflows/
              ┗━ call-actions.yml

セキュリティ

 とても便利なアクションですが、特に公開されているアクションを利用する場合は注意が必要です。悪意がある第三者が作成したアクションを利用してしまった場合、リポジトリのデータや機密情報の流出や改ざんという恐れもあります。

 GitHub Marketplaceでは、GitHubがパートナー組織として認証しているコミュニティが作成したアクションにはバッチが表示されています。ただし、このアクション自体の安全性を担保するものではありません。選ぶときの一つの指標とするのが良いでしょう。

 信頼できる作者であること、アクションの指定にはアクションのコミットSHAを指定するなど、対策をしましょう。以下のページにはアクションも含めたGitHub Actionsのセキュリティ強化に関してまとめられています。一読することをおすすめします。

まとめ

 今回は以下の内容を取り上げました。

  • アクションの基本
  • アクションを作ってみる

 いよいよ最終回となる次回は、CI/CDに取り組みやすくするためのポイントを紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
GitHub Actionsをはじめよう連載記事一覧

もっと読む

この記事の著者

藤澤 千尋(フジサワ チヒロ)

 ソフトウェアエンジニアとして約10年働いており、最近は主にフロントエンド開発を担当しています。最近、筋トレを始めました。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/21540 2025/05/28 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー