Skip to main content

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

必� �ステータスチェックのトラブルシューティング

ステータスチェック必� �を使用して、一般的なエラーを調べ、問題を解決できます。

保護されたブランチは、GitHub Free及びOrganizationのGitHub Freeのパブリックリポジトリ、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Serverのパブリック及びプライベートリポジトリで利用できます。

同じ名前のチェックとステータスがあり、その名前をステータスチェック必� �とするようにした� �合、チェックとステータスはどちらも必� �になります。 詳細については、「チェック」を参照してく� さい。

ステータスチェック必� �を有効にした後、マージする前にブランチをベースブランチに対して最新にする必要がある� �合があります。 これによって、ブランチがベースブランチからの最新のコードでテストされたことが保証されます。 ブランチが古い� �合、ベースブランチをブランチにマージする必要があります。 詳細については、「保護されたブランチについて」を参照してく� さい。

注: Git リベースを使用してブランチをベース ブランチと同じ最新状態にすることもできます。 詳細については、「Git リベースについて」を参照してく� さい。

必� �ステータスチェックにすべてパスするまでは、ローカルでの変更を保護されたブランチにプッシュすることはできません。 その代わりに、以下のようなエラー メッセージが返されます。

remote: error: GH006: Protected branch update failed for refs/heads/main.
remote: error: Required status check "ci-build" is failing

注: 必� �状態チェックに合� �した最新の pull request は、ローカルでマージされた後で、保護されたブランチにプッシュできます。 これはマージコミット自体でステータスチェックを実行せずに行えます。

head コミットとテスト マージ コミットの間の競合

テストマージコミットと head コミットのステータスチェックの結果が競合する� �合があります。 テストマージコミットにステータスがある� �合、そのテストマージコミットは必ずパスする必要があります。 それ以外の� �合、ヘッドコミットのステータスは、ブランチをマージする前にパスする必要があります。 テスト マージ コミットの詳細については、「プル」を参照してく� さい。

マージコミットが競合しているブランチ

スキップされた必� �チェックの処理

注: パスのフィルター処理ブランチのフィルター処理、または コミット メッセージのためにワークフローがスキップされた� �合、そのワークフローに関連付けられているチェックは "保留中" 状態のままになります。 これらのチェックを成功させる必要がある pull request は、マージが禁止されます。

ワークフロー内のジョブが条件付きでスキップされた� �合、状態は "成功" として� �告されます。 詳細については、「ワークフロー実行をスキップする」および「条件を使用してジョブの実行を制御する」を参照してく� さい。

次の例で示すのは、build ジョブの完了状態が "成功" であることが必要なワークフローです。た� し、pull request が scripts ディレクトリのどのファイルも変更しないと、このワークフローはスキップされます。

name: ci
on:
  pull_request:
    paths:
      - 'scripts/**'
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x, 14.x, 16.x]
    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test

パスのフィルター処理のために、リポジトリのルートのファイルのみを変更する pull request は、このワークフローをトリガーせず、マージがブロックされます。 この pull request では次の状態が表示されます。

必� �チェックがスキップされたが保留中として表示

これを修正するには、同じ名前の汎用ワークフローを作成して、次のワークフローのようにどのケースでも true を返すようにします。

name: ci
on:
  pull_request:
    paths-ignore:
      - 'scripts/**'
      - 'middleware/**'
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: 'echo "No build required"'

これで、誰かが送った pull request が最初のワークフローの paths 内のファイルを変更しないときも常にチェックに合� �します。

チェックがスキップされたが汎用ワークフローによって合� �

注:

  • 両方のワークフロー ファイルの name キーと必� �ジョブ名を同じにしてく� さい。 詳細については、「GitHub Actions のワークフロー構文」を参照してく� さい。
  • 上記の例では GitHub Actions が使用されていますが、この対処方法は、GitHub と統合されている他の CI/CD プロバイダーにも適用できます。