Kurz: Nastavení binární mezipaměti vcpkg pomocí GitHub Packages v pracovním postupu GitHub Actions
Poznámka
Tento kurz používá informační kanály NuGet hostované v GitHub Packages, ale stejné pokyny je možné použít pro jiné poskytovatele informačních kanálů NuGet, například Azure Artifacts s minimálními změnami.
GitHub Packages nabízí pohodlné úložiště pro binární balíčky NuGet vytvořené nástrojem vcpkg. V tomto kurzu vám ukážeme, jak nastavit binární mezipaměť v pracovním postupu GitHub Actions, který jako vzdálené úložiště používá GitHub Packages.
V tomto kurzu se naučíte:
- Editor kódu
- Úložiště GitHub pomocí GitHub Actions
- Projekt využívající vcpkg
Postupujte podle pokynů GitHubu a vygenerujte klasický token PAT (Personal Access Token) pro vaše úložiště, nezapomeňte mu packages:write
udělit oprávnění a packages:read
oprávnění.
Pak přidejte pat GitHubu jako tajný klíč dostupný v pracovních postupech GitHub Action vašeho úložiště. V tomto kurzu předpokládáme, že pojmenujete svůj tajný kód jako GH_PACKAGES_TOKEN
.
Předdefinovaný pat poskytnutý GITHUB_TOKEN
pouze má packages:read
oprávnění, můžete ho použít, pokud máte v pracovním postupu v úmyslu mít binární mezipaměť jen pro čtení.
Vcpkg získá vlastní kopii spustitelného nuget.exe
souboru, který používá při operacích binární mezipaměti. Tento kurz používá vcpkg-acquired nuget.exe
.
Přidejte do pracovního postupu krok pro bootstrap vcpkg:
- name: Bootstrap vcpkg
shell: pwsh
run: ${{ github.workspace }}/vcpkg/bootstrap-vcpkg.bat
- name: Bootstrap vcpkg
shell: bash
run: ${{ github.workspace }}/vcpkg/bootstrap-vcpkg.sh
Možná budete muset nahradit umístění skriptu vcpkg bootstrap správným skriptem pro váš pracovní postup. V tomto kurzu se předpokládá, že vcpkg se nachází ve vcpkg
složce v kořenovém adresáři úložiště.
Do souboru pracovního postupu přidejte následující proměnné prostředí (nahraďte <OWNER>
uživatelským jménem nebo názvem organizace GitHubu):
env:
USERNAME: <OWNER>
VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg
FEED_URL: https://nuget.pkg.github.com/<OWNER>/index.json
VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/<OWNER>/index.json,readwrite"
Možná budete muset nahradit hodnotu VCPKG_EXE
umístěním spustitelného souboru vcpkg generovaného v kroku bootstrap vcpkg .
V tomto kroku konfigurujete VCPKG_BINARY_SOURCES
použití informačního kanálu GitHub Packages jako binárního zdroje ukládání do mezipaměti, přečtěte si referenční informace o binární mezipaměti.
Příkaz vcpkg fetch nuget
vypíše umístění souboru vcpkg-acquired nuget.exe
, v případě potřeby stáhne spustitelný soubor.
Do souboru pracovního postupu GitHub Actions přidejte následující krok:
- name: Add NuGet sources
shell: pwsh
run: |
.$(${{ env.VCPKG_EXE }} fetch nuget) `
sources add `
-Source "${{ env.FEED_URL }}" `
-StorePasswordInClearText `
-Name GitHubPackages `
-UserName "${{ env.USERNAME }}" `
-Password "${{ secrets.GH_PACKAGES_TOKEN }}"
.$(${{ env.VCPKG_EXE }} fetch nuget) `
setapikey "${{ secrets.GH_PACKAGES_TOKEN }}" `
-Source "${{ env.FEED_URL }}"
V Linuxu je potřeba mono
spustit nuget.exe
. Spouštěče GitHub Actions používající Ubuntu jsou součástí mono
předinstalované instalace. V opačném případě můžete nainstalovat mono
pomocí správce systémových balíčků vaší distribuce.
- name: Add NuGet sources
shell: bash
env:
VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg
USERNAME: <OWNER>
FEED_URL: https://nuget.pkg.github.com/<OWNER>/index.json
run: |
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
sources add \
-Source "${{ env.FEED_URL }}" \
-StorePasswordInClearText \
-Name GitHubPackages \
-UserName "${{ env.USERNAME }}" \
-Password "${{ secrets.GH_PACKAGES_TOKEN }}"
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
setapikey "${{ secrets.GH_PACKAGES_TOKEN }}" \
-Source "${{ env.FEED_URL }}"
Možná budete muset nahradit GH_PACKAGES_TOKEN
správným názvem tajného kódu, který jste zadali pat vygenerovanému v kroku osobního přístupového tokenu GitHubu.
A to je vše! Vcpkg teď nahraje nebo obnoví balíčky z vašeho informačního kanálu NuGet hostovaného na GitHub Packages v rámci pracovního postupu GitHub Actions.
Tady jsou další úkoly, které můžete vyzkoušet:
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: