Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

アクションの検索とカスタマイズ

アクションは、ワークフローを動かす構成要� です。 ワークフローには、コミュニティによって作成されたアクションを含めることも、アプリケーションのリポジトリ内に直接独自のアクションを作成することもできます。 このガイドでは、アクションを発見、使用、およびカスタマイズする方法を説明します。

注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。

概要

ワークフローで使用するアクションは、以下の� �所で定義できます。

  • ワークフロー ファイルと同じリポジトリ
  • すべてのパブリック リポジトリ
  • Docker Hubで公開された Docker コンテナイメージ

GitHub Marketplace は、GitHub コミュニティによって作成されたアクションを検索するための一元的な� �所です。

注: の GitHub Actions では、GitHub.com または GitHub Marketplace に対するアクションへのアクセスが制限される� �合があります。 詳細については、「GitHub.com からのアクションへのアクセスを管理する」を参照し、GitHub Enterprise サイト管理者にお問い合わせく� さい。

同じリポジトリからのアクションの追� 

ワークフロー ファイルがアクションを使用するのと同じリポジトリでアクションが定義されている� �合、そのアクションはワークフロー ファイル内の {owner}/{repo}@{ref} または ./path/to/dir 構文を使用して参照できます。

リポジトリ ファイル構� の例:

|-- hello-world (repository)
|   |__ .github
|       └── workflows
|           └── my-first-workflow.yml
|       └── actions
|           |__ hello-world-action
|               └── action.yml

ワークフロー ファイルの例:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # This step checks out a copy of your repository.
      - uses: actions/checkout@v2
      # This step references the directory that contains the action.
      - uses: ./.github/actions/hello-world-action

この action.yml ファイルは、アクションのメタデータを提供するために使用されます。 このファイルの内容については、「GitHub Actions のメタデータ構文」を参照してく� さい。

別のリポジトリからのアクションの追� 

アクションがワークフロー ファイルとは異なるリポジトリで定義されている� �合は、ワークフロー ファイル内で {owner}/{repo}@{ref} 構文を使用してアクションを参照できます。

アクションはパブリック リポジトリに� �納する必要があります。

jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: actions/setup-node@v2

Docker Hubでのコンテナの参照

あるアクションが Docker Hub の公開された Docker コンテナー イメージで定義されている� �合は、そのアクションはワークフロー ファイル内で docker://{image}:{tag} 構文を使用して参照する必要があります。 コードとデータを保護するには、ワークフローで使用する前に Docker HubからのDocker コンテナイメージの整合性を確認することを強くおすすめします。

jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: docker://alpine:3.8

Docker アクションの例については、Docker-image.yml ワークフローと「Docker コンテナー アクションの作成」を参照してく� さい。

カスタ� アクションにリリース管理を使用する

コミュニティアクションの作者は、タグ、ブランチ、または SHA 値を使用してアクションのリリースを管理するオプションがあります。 他の依存関係と同様に、アクションの更新を自動的に受け入れる際のお好みに応じて、使用するアクションのバージョンを指定する必要があります。

ワークフローファイルでアクションのバージョンを指定します。 リリース管理へのアプローチに関する情� �、および使用するタグ、ブランチ、または SHA 値を確認するには、アクションのドキュメントを確認してく� さい。

注: サードパーティのアクションを使用する� �合は、SHA 値を使用することをお勧めします。 詳細については、「GitHub Actions のセキュリティ強化」を参照してく� さい。

タグの使用

タグは、メジャーバージョンとマイナーバージョンの切り替えタイミングを決定するときに役立ちますが、これらはより一過性のものであり、メンテナから移動または削除される可能性があります。 この例では、v1.0.1 としてタグ付けされたアクションをターゲットにする方法を示しています。

steps:
  - uses: actions/javascript-action@v1.0.1

SHA の使用

より信� �性の高いバージョン管理が必要な� �合は、アクションのバージョンに関連付けられた SHA 値を使用する必要があります。 SHA は不変であるため、タグやブランチよりも信� �性が高くなります。 た� し、このアプローチでは、重要なバグ修正やセキュリティアップデートなど、アクションの更新を自動的に受信しません。 短縮された値ではなく、コミットの完全な SHA 値を使う必要があります。 この例では、アクションの SHA を対象としています。

steps:
  - uses: actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89

ブランチの使用

アクションのターゲットブランチを指定すると、そのブランチに現在あるバージョンが常に実行されます。 ブランチの更新に重大な変更が含まれている� �合、このアプローチは問題を引き起こす可能性があります。 この例では、@main という名前のブランチを対象とします。

steps:
  - uses: actions/javascript-action@main

詳細については、「アクションにリリース管理を使用する」を参照してく� さい。

アクションで入力と出力を使用する

多くの� �合、アクションは入力を受け入れたり要求したりして、使用できる出力を生成します。 たとえば、アクションでは、ファイルへのパス、ラベルの名前、またはアクション処理の一部として使用するその他のデータを指定する必要がある� �合があります。

アクションの入力と出力を確認するには、リポジトリのルート ディレクトリの action.yml または action.yaml を確認します。

この action.yml の例では、inputs キーワードによって file-path という名前の必� �の入力が定義され、何も指定されていない� �合に使用される既定値が含まれています。 outputs キーワードは、結果を配置する� �所を示す results-file という名前の出力を定義します。

name: "Example"
description: "Receives file and generates output"
inputs:
  file-path: # id of input
    description: "Path to test script"
    required: true
    default: "test-file.js"
outputs:
  results-file: # id of output
    description: "Path to results file"

次の手� �

GitHub Actions について引き続き学習するには、「GitHub Actions の重要な機能」を参照してく� さい。