快取 vcpkg 建置的二進位檔案,用於您的 GitHub Actions 工作流程
vcpkg 的二進位快取功能可減少建置使用 GitHub Actions 進行持續整合的專案所花費的時間量。 如需詳細資訊,請參閱 二進位快取功能檔。
GitHub Packages NuGet 快取提供者
GitHub Packages 可讓存放庫發佈二進製成品以供公用或私用使用。 除了裝載已發佈套件的記憶體之外,GitHub Packages 支援還提供 NuGet 登錄介面, nuget vcpkg 可與二進位來源提供者搭配使用作為二進位快取。
GitHub 相依性圖表
備註
本節涵蓋 vcpkg 的實驗功能,隨時可能會變更或移除。
小提示
我們正積極開發這項功能,並想要聽到您的意見反應。 如果您有任何關於目前功能或任何所需功能的想法,請傳送電子郵件 vcpkg@microsoft.com 或在 vcpkg 中提出問題,讓我們知道。 如果您對任何 GitHub 所啟用的功能有意見或回饋,請告訴我們,我們會確保它被傳達給 GitHub 的合適人員。
關於 GitHub 相依性圖表
GitHub 相依性圖表會儲存存放庫的相依性集合。 除了能夠可視化存放庫的相依性之外,GitHub 會在此數據之上建置數個有用的功能,包括相依性檢閱和 Dependabot 警示。 若要深入瞭解,請參閱 GitHub 關於 保護您的供應鏈檔。
vcpkg 與 GitHub 相依性圖表整合
vcpkg 具有實驗性支援,可從 GitHub Actions 工作流程中填入 GitHub 相依性圖表。 若要啟用此功能,請在工作流程檔案中進行下列變更:
- 設定
VCPKG_FEATURE_FLAGS環境變數以包含 值dependencygraph。 - 將
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