Leggere in inglese

Condividi tramite


Punti di integrazione di GitHub

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. 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.

Provider di cache GitHub Actions

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.

Provider di cache NuGet di GitHub Packages

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.

Grafico delle dipendenze di GitHub

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.

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_FLAGS variabile di ambiente per includere il valore dependencygraph.
  • 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.

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

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