GitHub Actions: 再利用可能なワークフローを構築できます!


Actions Hackathon 2021 を楽しんでいただければ幸いです.既存のアクションを活用した参加者の提出物に感銘を受けました.何だと思う? GitHub は、再利用可能なワークフローと呼ばれる新機能により、参加者が既存のワークフローとアクションをさらに簡単に使用できるようにしました.



再利用可能なワークフローの利点は何ですか?



この機能が開始される前は、既存のワークフローを再利用する場合、ワークフローをコピーして新しいワークフローに貼り付ける必要がありました.これにより、ワークフローが過度に冗長に見える可能性があります.ソフトウェア エンジニアとして、私たちはベスト プラクティスに従いたいと考えています.きれいなコードを書くための私のお気に入りのベスト プラクティスの 1 つは、DRY 原則です.これは、Don't Repeat Yourself の頭字語です.再利用可能なワークフローを採​​用すると、ワークフローの管理も容易になります.再利用可能なワークフローを使用して、クリーンで保守可能なアクションを記述できるようになりました.

再利用可能なワークフローをどのように作成しますか?


  • 知っておくべき用語
  • 発信者ワークフロー: 別のワークフローを使用するワークフロー
  • 呼び出されたワークフロー: 再利用可能なワークフロー


  • 呼び出されたワークフローに workflow_call トリガーを追加することで、ワークフローを再利用可能にすることができます. workflow_call トリガーは次のようになります.

    on: 
      workflow_call:
    

    workflow_call トリガー内で、次の例のように、必要な入力とシークレットを渡すことができます.

    on:
      workflow_call:
        inputs:
          ring:
            description: 'Identifier for the target deployment ring'
            default: 'ring-0'
            required: false
            type: string
          environment:
            required: false
            type: string
        secrets:
          token:
            required: false
    


    発信者ワークフローは複数のワークフローを呼び出すことができます.ただし、呼び出されたワークフローは、他の再利用可能なワークフローを呼び出すことはできません.

    1 つのワークフローが再利用可能なワークフローにアクセスするにはどうすればよいですか?



    ワークフローが以下の基準のいずれかを満たす場合、別のワークフローにアクセスできます.
  • 呼び出されたワークフローが公開リポジトリに保存されています.
  • 両方のワークフローが同じリポジトリにあります.
  • 呼び出されたワークフローは内部リポジトリに格納されており、そのリポジトリの設定によりアクセスが許可されます.これらの設定を構成する方法については、here をクリックしてください.

  • 資力



    以下は、独自の再利用可能なワークフローを構築して使用するのに役立つリソースのリストです.
  • CoderDave uses reusable workflows to build and publish a docker image
  • GitHub's official documentation about reusable workflows (with examples)
  • Colin Dembovsky's detailed review of reusable workflows

  • GitHub アクション ハッカソンに参加する



    今から 12 月 8 日まで、GitHub はハッカソンを実行します.参加すると、ギフトカードやグッズが当たるチャンスがあります.課題は、既に existing actions を活用するワークフローを作成して送信することです. GitHub Marketplace には現在 10,000 actions を超えています.

    ハッカソンへの参加について詳しくは、こちらをお読みください.

    また、アクションに関してサポートが必要な場合は、この で質問にお答えします.

    再利用可能なワークフローが役立つユースケースについて教えてください!