Ler em inglês

Compartilhar via


Pontos de integração do GitHub

Armazenando em cache binários criados por vcpkg para seus fluxos de trabalho do GitHub Actions

O recurso de cache binário do vcpkg reduz o tempo necessário para criar projetos que usam Ações do GitHub para integração contínua. Há dois provedores de cache binário disponíveis para repositórios do GitHub, o provedor de cache GitHub Actions e o provedor de cache NuGet de Pacotes GitHub. Para obter mais informações sobre esses recursos do GitHub, consulte Cache de ações do GitHub e Pacotes do GitHub. Para obter mais informações sobre o cache binário vcpkg, consulte nossa documentação do recurso de cache binário.

O provedor de cache GitHub Actions

Observação

Esta seção cobre uma característica experimental do vcpkg que pode mudar ou ser removida a qualquer momento.

O cache de Ações do GitHub destina-se a armazenar os arquivos de compilação intermediários de um repositório que não mudam com frequência entre trabalhos ou execuções de fluxo de trabalho. Para usuários do GitHub, o cache de Ações do GitHub é um ajuste natural para o cache binário do vcpkg e é mais fácil de configurar do que a integração de cache binário do Pacote GitHub do vcpkg. O GitHub fornece algumas ferramentas diferentes para gerenciar seus caches de ações, que incluem APIs REST e uma extensão para a ferramenta de gh linha de comando, para que você possa otimizar caches para seu fluxo de trabalho. A integração do vcpkg com o cache de ações do GitHub é através do provedor de x-gha código-fonte binário.

O provedor de cache NuGet de pacotes do GitHub

Os Pacotes GitHub possibilitam que um repositório publique artefatos binários para uso público ou privado. Além de hospedar o armazenamento para pacotes publicados, o GitHub Packages oferece suporte a uma variedade de ferramentas de gerenciamento de pacotes, atuando como um registro de pacotes. vcpkg pode usar a interface do Registro NuGet para Pacotes GitHub como um cache para artefatos binários vcpkg, usando o provedor de nuget código-fonte binário. Essa integração com os Pacotes do GitHub não é tão simples quanto a integração do cache do GitHub Actions e o gerenciamento dos binários armazenados em cache é mais difícil, tornando o cache do GitHub Actions uma opção melhor para a maioria dos usuários.

O gráfico de dependência do GitHub

Observação

Esta seção cobre uma característica experimental do vcpkg que pode mudar ou ser removida a qualquer momento.

Dica

Estamos desenvolvendo ativamente esse recurso e gostaríamos de ouvir seus comentários. Deixe-nos saber se você tem alguma opinião sobre a funcionalidade atual ou qualquer funcionalidade desejada por e-mail vcpkg@microsoft.com ou arquivando um problema em vcpkg. Se você tiver comentários sobre qualquer um dos recursos do GitHub que isso permite, informe-nos também e garantiremos que ele chegue às pessoas certas no GitHub.

Sobre o gráfico de dependência do GitHub

O gráfico de dependência do GitHub armazena o conjunto de dependências de um repositório. Além de ser capaz de visualizar as dependências de um repositório, o GitHub cria vários recursos úteis sobre esses dados, incluindo revisão de dependência e alertas de Dependabot. Saiba mais na documentação do GitHub sobre como proteger sua cadeia de suprimentos.

Integração do vcpkg com o gráfico de dependência do GitHub

vcpkg tem suporte experimental para preencher o gráfico de dependência do GitHub de dentro de um fluxo de trabalho do GitHub Actions. Para habilitar esse recurso, faça as seguintes alterações no arquivo de fluxo de trabalho:

  • Defina a VCPKG_FEATURE_FLAGS variável de ambiente para incluir o valor dependencygraph.
  • Defina a GITHUB_TOKEN variável de ambiente como o valor ${{ secrets.GITHUB_TOKEN }}.
  • Dê às Ações do GitHub acesso de gravação ao conteúdo do seu repositório incluindo o bloco de permissões a seguir. Isso é necessário para gravar os metadados do gráfico de dependência em seu repositório. Isso não adicionará nenhuma confirmação ao seu repositório ou fará qualquer outra modificação no conteúdo do seu repositório.
permissions:
  contents: write

Você deve habilitar o gráfico de dependência do GitHub nas configurações do repositório (habilitado por padrão em repositórios públicos). Para repositórios privados, siga a documentação do GitHub para habilitar o gráfico de dependência para atender a esse requisito.

Limitações conhecidas

  • A versão do vcpkg empacotada com os executores do GitHub Actions pode não estar atualizada. Use a versão mais recente do vcpkg para ter acesso a esse recurso e receber as correções de bugs mais recentes.
  • Os recursos que dependem do gráfico de dependência, como alertas Dependabot e solicitações pull Dependabot, ainda não estão disponíveis. Por favor, deixe-nos saber se você está interessado nesses recursos!

Exemplo de fluxo de trabalho de Ações do GitHub

Observação

Este exemplo pressupõe que há um manifesto válido vcpkg.json que lista algumas portas dependentes. Para obter mais informações sobre manifestos, consulte nossa documentação sobre o modo de 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