Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Memorizzazione nella cache dei file binari creati da vcpkg per i flussi di lavoro di GitHub Actions
La funzionalità di memorizzazione nella cache binaria di vcpkg riduce il tempo necessario per compilare progetti che usano GitHub Actions per l'integrazione continua. Per altre informazioni, vedere la documentazione relativa alla funzionalità di memorizzazione nella cache binaria.
Provider di cache NuGet di GitHub Packages
GitHub Packages consente ai repository di pubblicare artefatti binari per uso pubblico o privato. Oltre all'archiviazione per i pacchetti pubblicati, il supporto di GitHub Packages offre un'interfaccia del registro NuGet che vcpkg può usare come cache binaria, con il provider di risorse binarie.
Grafico delle dipendenze di GitHub
Annotazioni
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. Fateci sapere se avete qualche opinione sulla funzionalità attuale o su qualsiasi funzionalità desiderata inviando un messaggio di posta elettronica vcpkg@microsoft.com o segnalando un problema su vcpkg. Se hai commenti o suggerimenti su una delle funzionalità di GitHub che questo abilita, faccelo sapere e ci assicureremo che arrivi alle persone giuste su GitHub.
Informazioni sul grafico delle dipendenze di GitHub
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.
Integrazione di vcpkg con il grafico delle dipendenze di GitHub
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_FLAGSvariabile di ambiente per includere il valoredependencygraph. - Impostare la
GITHUB_TOKENvariabile 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.
Limitazioni note
- 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à.
Flusso di lavoro di GitHub Actions di esempio
Annotazioni
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