Punti di integrazione di GitHub
La funzionalità di memorizzazione nella cache binaria di vcpkg riduce il tempo necessario per compilare progetti che usano GitHub Actions per l'integrazione continua. Esistono due provider di cache binari disponibili per i repository GitHub, il provider di cache GitHub Actions e il provider di cache NuGet di GitHub Packages. Per altre informazioni su queste funzionalità di GitHub, vedere Cache di GitHub Actions e GitHub Packages. Per altre informazioni sulla memorizzazione nella cache binaria vcpkg, vedere la documentazione relativa alla funzionalità di memorizzazione nella cache binaria.
Nota
Questa sezione illustra una funzionalità sperimentale di vcpkg che può cambiare o essere rimossa in qualsiasi momento.
La cache di GitHub Actions è progettata per archiviare i file di compilazione intermedi di un repository che non cambiano spesso tra processi o esecuzioni del flusso di lavoro. Per gli utenti di GitHub, la cache di GitHub Actions è una soluzione naturale per la memorizzazione nella cache binaria di vcpkg ed è più semplice configurare l'integrazione della memorizzazione nella cache binaria del pacchetto GitHub di vcpkg. GitHub offre alcuni strumenti diversi per gestire le cache delle azioni, incluse le API REST e un'estensione allo gh
strumento da riga di comando, in modo da poter ottimizzare le cache per il flusso di lavoro. L'integrazione di vcpkg con la cache di GitHub Actions è tramite il x-gha
provider di origine binario.
GitHub Packages consente a un repository di pubblicare artefatti binari per uso pubblico o privato. Oltre all'hosting dell'archiviazione per i pacchetti pubblicati, GitHub Packages supporta un'ampia gamma di strumenti di gestione dei pacchetti fungendo da registro dei pacchetti. vcpkg può usare l'interfaccia del Registro di sistema NuGet per GitHub Packages come cache per gli artefatti binari vcpkg, usando il nuget
provider di origine binaria. Questa integrazione con GitHub Packages non è così semplice quanto l'integrazione e la gestione della cache di GitHub Actions dei file binari memorizzati nella cache è più difficile, rendendo la cache di GitHub Actions un'opzione migliore per la maggior parte degli utenti.
Nota
Questa sezione illustra una funzionalità sperimentale di vcpkg che può cambiare o essere rimossa in qualsiasi momento.
Suggerimento
Stiamo sviluppando attivamente questa funzionalità e desideriamo ricevere commenti e suggerimenti. Inviare un messaggio di posta elettronica vcpkg@microsoft.com o segnalare un problema in vcpkg. Se si hanno commenti e suggerimenti su una qualsiasi delle funzionalità di GitHub abilitate, segnalare che anche in GitHub si otterrà un riscontro corretto.
Il grafico delle dipendenze di GitHub archivia il set di dipendenze per un repository. Oltre a poter visualizzare le dipendenze di un repository, GitHub crea diverse funzionalità utili su questi dati, tra cui la revisione delle dipendenze e gli avvisi Dependabot. Per altre informazioni, vedere la documentazione di GitHub sulla protezione della supply chain.
vcpkg offre supporto sperimentale per popolare il grafico delle dipendenze di GitHub dall'interno di un flusso di lavoro di GitHub Actions. Per abilitare questa funzionalità, apportare le modifiche seguenti nel file del flusso di lavoro:
- Impostare la
VCPKG_FEATURE_FLAGS
variabile di ambiente per includere il valoredependencygraph
. - Impostare la
GITHUB_TOKEN
variabile di ambiente sul valore${{ secrets.GITHUB_TOKEN }}
. - Concedere a GitHub Actions l'accesso in scrittura al contenuto del repository includendo il blocco di autorizzazioni seguente. Questa operazione è necessaria per scrivere i metadati del grafo delle dipendenze nel repository. In questo modo non verranno aggiunti commit al repository né verranno apportate altre modifiche al contenuto del repository.
permissions:
contents: write
È necessario abilitare il grafico delle dipendenze di GitHub nelle impostazioni del repository (abilitato per impostazione predefinita nei repository pubblici). Per i repository privati, seguire la documentazione di GitHub per abilitare il grafico delle dipendenze per soddisfare questo requisito.
- La versione di vcpkg in bundle con gli strumenti di esecuzione di GitHub Actions potrebbe non essere aggiornata. Usare la versione più recente di vcpkg per ottenere l'accesso a questa funzionalità e ricevere le correzioni di bug più recenti.
- Le funzionalità che dipendono dal grafico delle dipendenze, ad esempio gli avvisi Dependabot e le richieste pull Dependabot, non sono ancora disponibili. Si prega di segnalare se si è interessati a queste funzionalità.
Nota
In questo esempio si presuppone che sia presente un manifesto valido vcpkg.json
che elenca alcune porte dipendenti. Per altre informazioni sui manifesti, vedere la documentazione sulla modalità manifesto.
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
Feedback su vcpkg
vcpkg è un progetto di open source. Selezionare un collegamento per fornire feedback: