ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

複合実行ステップ アクションの作成

このガイドでは、複合実行ステップ アクションを構築する方法について説明します。

GitHub ActionsはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub AEで利用できます。 GitHub Actionsは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。

ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。

はじめに

このガイドでは、パッケージ化された複合実行ステップアクションを作成して使用するために必要な基本コンポーネントについて学びます。 アクションのパッケージ化に必要なコンポーネントのガイドに焦点を当てるため、アクションのコードの機能は最小限に留めます。 アクションは「Hello World」と「Goodbye」を出力するか、カスタムの名前を指定すると「Hello [who-to-greet]」と「Goodbye」を出力します。 このアクションは、乱数を random-numberという出力変数にマップし、 goodbye.shという名前のスクリプトを実行することもします。

このプロジェクトを完了すれば、独自の複合実行ステップ アクションをビルドし、ワークフローでテストする方法を理解できるでしょう。

警告: ワークフローやアクションを作る際には、攻撃者からの信頼できない入力をコードが実行するかもしれないことを、常に意識しなければなりません。 攻撃者が悪意あるコンテンツを挿入してくるかもしれないので、特定のコンテキストは信頼できない入力として扱うべきです。 詳しい情報については「スクリプトインジェクションのリスクを理解する」を参照してください。

必要な環境

始める前に、GitHub Enterprise Server リポジトリを作成します。

  1. GitHub Enterprise Serverのインスタンス に新しいパブリックリポジトリを作成します。 任意のリポジトリ名を選択するか、以下のhello-world-composite-run-steps-actionの例を利用できます。 これらのファイルは、プロジェクトを GitHub Enterprise Serverにプッシュした後で追加できます。 詳しい情報については、「新しいリポジトリの作成」を参照してください。

  2. リポジトリをお手元のコンピューターにクローンします。 詳しい情報についてはリポジトリのクローンを参照してください。

  3. ターミナルから、ディレクトリを新しいリポジトリに変更します。

    cd hello-world-composite-run-steps-action
  4. hello-world-composite-run-steps-action リポジトリで、 goodbye.shという名前の新しいファイルを作成し、次のコード例を追加します。

    echo "Goodbye"
    
  5. ターミナルから、goodbye.sh を実行可能にします。

    chmod +x goodbye.sh
  6. ターミナルから、 goodbye.sh ファイルをチェックインします。

    git add goodbye.sh
    git commit -m "Add goodbye script"
    git push

アクションのメタデータファイルの作成

  1. hello-world-composite-run-steps-action リポジトリで、action.ymlという名前の新しいファイルを作成し、次のコード例を追加します。 この構文の詳細については、「複合実行ステップのruns 」を参照してください。

    action.yml

    name: 'Hello World'
    description: 'Greet someone'
    inputs:
      who-to-greet:  # id of input
        description: 'Who to greet'
        required: true
        default: 'World'
    outputs:
      random-number:
        description: "Random number"
        value: ${{ steps.random-number-generator.outputs.random-id }}
    runs:
      using: "composite"
      steps:
        - run: echo Hello ${{ inputs.who-to-greet }}.
          shell: bash
        - id: random-number-generator
          run: echo "::set-output name=random-id::$(echo $RANDOM)"
          shell: bash
        - run: ${{ github.action_path }}/goodbye.sh
          shell: bash
    

    このファイルはwho-to-greet入力を定義し、ランダムに生成された数値をrandom-number出力変数にマップし、goodbye.shスクリプトを実行します。 また、複合実行ステップアクションの実行方法をランナーに指示します。

    出力の管理の詳細については、「複合実行ステップのoutputs」を参照してください。

    github.action_pathの使用方法の詳細については、「github context」を参照してください。

  2. ターミナルから、action.yml ファイルをチェックインします。

    git add action.yml
    git commit -m "Add action"
    git push
  3. ターミナルから、タグを追加します。 この例では、v1 というタグを使用しています。 詳しい情報については、「Actionsについて」を参照してください。

    git tag -a -m "Description of this release" v1
    git push --follow-tags

ワークフローでアクションをテストする

次のワークフローのコードでは、「Actionsのメタデータファイルの作成」で作成したhello world Actionを使用しています。

ワークフローコードを別のリポジトリの .github/workflows/main.yml ファイルにコピーしますが、actions/hello-world-composite-run-steps-action@v1 は作成したリポジトリとタグに置き換えます。 who-to-greetの入力を自分の名前に置き換えることもできます。

.github/workflows/main.yml

on: [push]

jobs:
  hello_world_job:
    runs-on: ubuntu-latest
    name: A job to say hello
    steps:
      - uses: actions/checkout@v2
      - id: foo
        uses: actions/hello-world-composite-run-steps-action@v1
        with:
          who-to-greet: 'Mona the Octocat'
      - run: echo random-number ${{ steps.foo.outputs.random-number }}
        shell: bash

リポジトリから [Actions] タブをクリックして、最新のワークフロー実行を選択します。 出力には、「Hello Mona the Octocat」、"Goodbye"スクリプトの結果、および乱数が含まれているはずです。

このドキュメントは役立ちましたか? プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?

GitHubコミュニティで質問する サポートへの連絡