Pontos de integração do GitHub
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.
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.
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.
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.
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.
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 valordependencygraph
. - 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.
- 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!
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
Comentários do vcpkg
O vcpkg é um projeto código aberto. Selecione um link para fornecer comentários: