英語で読む

次の方法で共有


GitHub 統合ポイント

GitHub Actions ワークフロー用の vcpkg ビルド バイナリのキャッシュ

vcpkg のバイナリ キャッシュ機能により、GitHub Actions を使用して継続的インテグレーションを行うプロジェクトのビルドにかかる時間が短縮されます。 GitHub リポジトリには、GitHub Actions キャッシュ プロバイダーと GitHub Packages NuGet キャッシュ プロバイダーの 2 つのバイナリ キャッシュ プロバイダーがあります。 これらの GitHub 機能の詳細については、GitHub Actions のキャッシュと GitHub パッケージに関するページを参照してください vcpkg バイナリ キャッシュの詳細については、バイナリ キャッシュ機能のドキュメントを参照 してください

GitHub Actions キャッシュ プロバイダー

注意

このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。

GitHub Actions キャッシュは、ジョブまたはワークフローの実行間で頻繁に変更されないリポジトリの中間ビルド ファイルを格納することを目的としています。 GitHub ユーザーの場合、GitHub Actions キャッシュは vcpkg のバイナリ キャッシュに適しており、vcpkg の GitHub Package バイナリ キャッシュ統合よりも簡単に構成できます。 GitHub には、ワークフローのキャッシュを最適化できるように、REST API とコマンド ライン ツールの gh 拡張機能を含む、Actions キャッシュを管理するためのいくつかの異なるツールが用意されています。 vcpkg と GitHub Actions キャッシュの統合は、バイナリ ソース プロバイダーを通じて行 x-gha われます。

GitHub Packages NuGet キャッシュ プロバイダー

GitHub パッケージを使用すると、リポジトリでパブリックまたはプライベートの使用のためにバイナリ成果物を発行できます。 発行されたパッケージのストレージをホストするだけでなく、GitHub Packages はパッケージ レジストリとして機能することで、さまざまなパッケージ管理ツールをサポートします。 vcpkg は、バイナリ ソース プロバイダーを使用して、GitHub Packages への NuGet レジストリ インターフェイスを vcpkg バイナリ 成果物の nuget キャッシュとして使用できます。 GitHub Packages とのこの統合は、GitHub Actions キャッシュの統合とキャッシュされたバイナリの管理がより困難であるため、ほとんどのユーザーにとって GitHub Actions キャッシュの方が優れたオプションになります。

GitHub 依存関係グラフ

注意

このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。

ヒント

この機能は積極的に開発されており、フィードバックをお聞かせください。 現在の機能や必要な機能に関するご意見がある場合は、電子メールを送信vcpkg@microsoft.comするか、vcpkg問題を提出して、お知らせください。 これが可能な GitHub 機能に関するフィードバックがある場合は、それをお知らせください。GitHub で適切なユーザーに確実にアクセスできるようにします。

GitHub 依存関係グラフについて

GitHub 依存関係グラフには、リポジトリの依存関係のセットが格納されます。 GitHub では、リポジトリの依存関係を視覚化できるだけでなく、依存関係の確認や Dependabot アラートなど、このデータの上にいくつかの便利な機能を構築しています。 詳細については、サプライ チェーンのセキュリティ保護に関する GitHub のドキュメントを参照してください。

vcpkg と GitHub 依存関係グラフ の統合

vcpkg には、GitHub Actions ワークフロー内から GitHub 依存関係グラフを設定するための試験的なサポートがあります。 この機能を有効にするには、ワークフロー ファイルで次の変更を行います。

  • この値dependencygraphVCPKG_FEATURE_FLAGS含むように環境変数を設定します。
  • 環境変数を GITHUB_TOKEN${{ secrets.GITHUB_TOKEN }}に設定します。
  • 次のアクセス許可ブロックを含めることで、GitHub Actions にリポジトリの内容への書き込みアクセス権を付与します。 これは、依存関係グラフメタデータをリポジトリに書き込む場合に必要です。 これにより 、リポジトリにコミットが追加されたり、リポジトリの内容に他の変更が加えたりすることはありません
permissions:
  contents: write

リポジトリの設定で GitHub 依存関係グラフを有効にする必要があります (パブリック リポジトリでは既定で有効になっています)。 プライベート リポジトリの場合は、GitHub のドキュメントに従って、この要件を満たすために依存関係グラフを有効にします。

既知の制限事項

  • GitHub Actions ランナーにバンドルされている vcpkg のバージョンが最新ではない可能性があります。 vcpkg の最新バージョンを使用して、この機能にアクセスし、最新のバグ修正プログラムを受け取ります。
  • Dependabot アラートや Dependabot プル要求など、依存関係グラフに依存する機能はまだ使用できません。 これらの機能に興味がある場合は、お知らせください!

GitHub Actions のサンプル ワークフロー

注意

この例では、いくつかの依存ポートを一覧表示する有効な vcpkg.json マニフェストがあることを前提としています。 マニフェストの詳細については、マニフェスト モードに関するドキュメントを参照してください

name: Populate dependencies

on:
  push:
    branches: [ main ]
  workflow_dispatch:

permissions:
  contents: write

env:
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  VCPKG_FEATURE_FLAGS: dependencygraph

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4
      with:
        submodules: 'recursive'

    # This will execute a dry-run, meaning that libraries will not be built and
    # installed, but they will still be reported to the GitHub dependency graph.
    # This step assumes `vcpkg` has been bootstrapped (run `./vcpkg/bootstrap-vcpkg`)
    - name: Run vcpkg
      run: ${{ github.workspace }}/vcpkg/vcpkg install --dry-run