Titik integrasi GitHub

Penggunaan cache untuk biner hasil pembangunan vcpkg dalam alur kerja GitHub Actions Anda

Fitur penyimpanan biner vcpkg mempercepat proses kompilasi proyek yang memanfaatkan GitHub Actions untuk integrasi berkelanjutan. Untuk informasi selengkapnya, baca dokumentasi fitur penyimpanan biner.

Penyedia cache NuGet Paket GitHub

Paket GitHub memungkinkan repositori menerbitkan artefak biner untuk penggunaan publik atau privat. Di luar penyimpanan hosting untuk paket yang diterbitkan, dukungan Paket GitHub menawarkan antarmuka registri NuGet yang dapat digunakan vcpkg sebagai cache biner, dengan nuget penyedia sumber biner.

Grafik dependensi GitHub

Nota

Bagian ini mencakup fitur eksperimental vcpkg yang dapat berubah atau dihapus kapan saja.

Petunjuk / Saran

Kami secara aktif mengembangkan fitur ini dan ingin mendengar umpan balik Anda. Beri tahu kami jika Anda memiliki pemikiran tentang fungsionalitas saat ini atau fungsionalitas yang diinginkan dengan mengirim vcpkg@microsoft.com email atau dengan mengajukan masalah di vcpkg. Jika Anda memiliki umpan balik tentang salah satu fitur GitHub yang memungkinkan ini, beri tahu kami bahwa juga dan kami akan memastikannya sampai ke orang yang tepat di GitHub.

Tentang grafik dependensi GitHub

Grafik dependensi GitHub menyimpan serangkaian dependensi untuk repositori. Selain dapat memvisualisasikan dependensi repositori, GitHub membangun beberapa fitur berguna di atas data ini, termasuk tinjauan dependensi dan pemberitahuan Dependabot. Pelajari lebih lanjut di dokumentasi GitHub tentang mengamankan rantai pasokan Anda.

Integrasi vcpkg dengan grafik dependensi GitHub

vcpkg memiliki dukungan eksperimental untuk mengisi grafik dependensi GitHub dari dalam alur kerja GitHub Actions. Untuk mengaktifkan fitur ini, buat perubahan berikut dalam file alur kerja Anda:

  • Atur VCPKG_FEATURE_FLAGS variabel lingkungan untuk menyertakan nilai dependencygraph.
  • Atur GITHUB_TOKEN variabel lingkungan ke nilai ${{ secrets.GITHUB_TOKEN }}.
  • Berikan GitHub Actions akses tulis ke konten repositori Anda dengan menyertakan blok izin berikut. Ini diperlukan untuk menulis metadata grafik dependensi ke repositori Anda. Ini tidak akan menambahkan commit apa pun ke repositori Anda atau melakukan modifikasi lainnya pada konten repositori Anda.
permissions:
  contents: write

Anda harus mengaktifkan grafik dependensi GitHub di pengaturan repositori Anda (diaktifkan secara default pada repositori publik). Untuk repositori privat, ikuti dokumentasi GitHub untuk mengaktifkan grafik dependensi untuk memenuhi persyaratan ini.

Batasan yang diketahui

  • Versi vcpkg yang dibundel dengan runner GitHub Actions mungkin tidak diperbarui. Gunakan versi terbaru vcpkg untuk mendapatkan akses ke fitur ini dan menerima perbaikan bug terbaru.
  • Fitur yang bergantung pada grafik dependensi, seperti pemberitahuan Dependabot dan permintaan penarikan Dependabot, belum tersedia. Harap beri tahu kami jika Anda tertarik dengan fitur-fitur tersebut!

Contoh alur kerja GitHub Actions

Nota

Contoh ini mengasumsikan bahwa ada vcpkg.json manifes valid yang mencantumkan beberapa port dependen. Untuk informasi selengkapnya tentang manifes, lihat dokumentasi kami tentang mode manifes.

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