GitHub 통합 지점
vcpkg의 이진 캐싱 기능은 연속 통합을 위해 GitHub Actions를 사용하는 프로젝트를 빌드하는 데 걸리는 시간을 줄입니다. GitHub 리포지토리, GitHub Actions 캐시 공급자 및 GitHub 패키지 NuGet 캐시 공급자에 사용할 수 있는 두 개의 이진 캐시 공급자가 있습니다. 이러한 GitHub 기능에 대한 자세한 내용은 GitHub Actions 캐시 및 GitHub 패키지를 참조하세요. vcpkg 이진 캐싱에 대한 자세한 내용은 이진 캐싱 기능 설명서를 참조 하세요.
참고
이 섹션에서는 언제든지 변경하거나 제거할 수 있는 vcpkg의 실험적 기능에 대해 설명합니다.
GitHub Actions 캐시는 작업 또는 워크플로 실행 간에 자주 변경되지 않는 리포지토리의 중간 빌드 파일을 저장하기 위한 것입니다. GitHub 사용자의 경우 GitHub Actions 캐시는 vcpkg의 이진 캐싱에 자연스럽게 적합하며 vcpkg의 GitHub 패키지 이진 캐싱 통합보다 구성하기가 더 쉽습니다. GitHub는 워크플로에 대한 캐시를 최적화할 수 있도록 REST API 및 명령줄 도구에 대한 확장을 gh
포함하는 작업 캐시를 관리하는 몇 가지 도구를 제공합니다. vcpkg와 GitHub Actions 캐시의 통합은 이진 소스 공급자를 x-gha
통해 수행됩니다.
GitHub 패키지를 사용하면 리포지토리에서 공용 또는 프라이빗 용도로 이진 아티팩트를 게시할 수 있습니다. GitHub Packages는 게시된 패키지에 대한 스토리지 호스팅 외에도 패키지 레지스트리 역할을 하여 다양한 패키지 관리 도구를 지원합니다. vcpkg는 이진 원본 공급자를 사용하여 GitHub 패키지에 대한 NuGet 레지스트리 인터페이스를 vcpkg 이진 아티팩트의 캐시로 사용할 nuget
수 있습니다. GitHub 패키지와의 통합은 GitHub Actions 캐시 통합 및 캐시된 이진 파일의 관리가 더 어렵기 때문에 GitHub Actions 캐시를 대부분의 사용자에게 더 나은 옵션으로 만드는 것만큼 간단하지 않습니다.
참고
이 섹션에서는 언제든지 변경하거나 제거할 수 있는 vcpkg의 실험적 기능에 대해 설명합니다.
팁
이 기능을 적극적으로 개발하고 있으며 피드백을 듣고 싶습니다. 전자 메일을 보내거나 vcpkg에서 문제를 제출하여 vcpkg@microsoft.com 현재 기능 또는 원하는 기능에 대한 생각이 있는지 알려주세요. 이를 가능하게 하는 GitHub 기능에 대한 피드백이 있는 경우 GitHub의 적절한 사용자에게도 알려주세요.
GitHub 종속성 그래프 리포지토리에 대한 종속성 집합을 저장합니다. GitHub는 리포지토리의 종속성을 시각화할 수 있는 것 외에도 종속성 검토 및 Dependabot 경고를 포함하여 이 데이터 위에 몇 가지 유용한 기능을 빌드합니다. 공급망 보안에 대한 GitHub 설명서에서 자세히 알아보세요.
vcpkg는 GitHub Actions 워크플로 내에서 GitHub 종속성 그래프 채우기 위한 실험적 지원을 제공합니다. 이 기능을 사용하도록 설정하려면 워크플로 파일에서 다음을 변경합니다.
VCPKG_FEATURE_FLAGS
값을dependencygraph
포함하도록 환경 변수를 설정합니다.- 환경 변수를
GITHUB_TOKEN
값${{ secrets.GITHUB_TOKEN }}
으로 설정합니다. - 다음 권한 블록을 포함하여 GitHub Actions에서 리포지토리의 콘텐츠에 대한 쓰기 권한을 부여합니다. 리포지토리에 종속성 그래프 메타데이터를 작성하는 데 필요합니다. 이렇게 하면 리포지토리에 커밋을 추가하거나 리포지토리의 내용을 수정하지 않습니다 .
permissions:
contents: write
리포지토리의 설정에서 GitHub 종속성 그래프 사용하도록 설정해야 합니다(공용 리포지토리에서 기본적으로 사용). 프라이빗 리포지토리의 경우 GitHub 설명서에 따라 이 요구 사항을 충족하기 위해 종속성 그래프 사용하도록 설정합니다.
- GitHub Actions 실행기가 번들로 제공되는 vcpkg 버전은 최신 버전이 아닐 수 있습니다. 최신 버전의 vcpkg를 사용하여 이 기능에 액세스하고 최신 버그 수정을 받습니다.
- Dependabot 경고 및 Dependabot 끌어오기 요청과 같은 종속성 그래프 의존하는 기능은 아직 사용할 수 없습니다. 이러한 기능에 관심이 있다면 알려주세요!
참고
이 예제에서는 일부 종속 포트를 나열하는 유효한 vcpkg.json
매니페스트가 있다고 가정합니다. 매니페스트에 대한 자세한 내용은 매니페스트 모드에 대한 설명서를 참조하세요.
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
vcpkg 피드백
vcpkg은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.