1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-29 23:29:41 +02:00

Enable vcpkg binary cache using Nuget

Add Nuget binary caching to vcpkg builds
Enable Jfrog Artifactory as Nuget source in CI builds
Add manual non-interactive Nuget authentication
Prevent CMake from overwriting VCPKG_BINARY_SOURCES
Use CI builds to auto generate cache artifacts within Artifactory
Enable action trigger kind "workflow_dispatch" within `cmake_build.yml`

Signed-off-by: Emily Mabrey <emabrey@tenacityaudio.org>
This commit is contained in:
Emily Mabrey 2021-08-21 08:41:58 -04:00
parent 13914c5125
commit 03d8c31316
No known key found for this signature in database
GPG Key ID: 6F4EF47256A1B7DC
2 changed files with 25 additions and 1 deletions

View File

@ -5,6 +5,7 @@ on:
branches:
- master
pull_request:
workflow_dispatch:
defaults:
run:
@ -73,6 +74,7 @@ jobs:
VCPKG_DISABLE_METRICS: true
VCPKG_DEFAULT_TRIPLET: ${{ matrix.config.vcpkg_triplet }}
VCPKG_BINARY_SOURCES: "clear;default,readwrite;nuget,https://tenacityteam.jfrog.io/artifactory/api/nuget/tenacity-nuget,readwrite"
# Windows codesigning
# This variables will be used by all the steps
@ -88,13 +90,31 @@ jobs:
with:
submodules: true
- name: Install Nuget
uses: nuget/setup-nuget@v1
with:
# Nuget versions needs to be the same version that vcpkg expects
# So update them in parallel
nuget-version: 5.10.0
- name: Authenticate CI to Artifactory
if: github.event_name == 'push' && github.repository_owner == 'tenacityteam'
run: |
nuget sources Add -Name Artifactory -Source https://tenacityteam.jfrog.io/artifactory/api/nuget/tenacity-nuget -username ${JFROG_ARTIFACTORY_NUGET_USER} -password ${JFROG_ARTIFACTORY_NUGET_PASS} -ForceEnglishOutput -NonInteractive
nuget setapikey ${JFROG_ARTIFACTORY_NUGET_USER}:${JFROG_ARTIFACTORY_NUGET_TOKEN} -Source Artifactory -ForceEnglishOutput -NonInteractive
env:
JFROG_ARTIFACTORY_NUGET_USER: ${{secrets.JFROG_ARTIFACTORY_NUGET_USER}}
JFROG_ARTIFACTORY_NUGET_PASS: ${{secrets.JFROG_ARTIFACTORY_NUGET_PASS}}
JFROG_ARTIFACTORY_NUGET_TOKEN: ${{secrets.JFROG_ARTIFACTORY_NUGET_TOKEN}}
- name: Install dependencies
run: |
exec bash "scripts/ci/dependencies.sh"
- name: Install Apple codesigning certificates
uses: apple-actions/import-codesign-certs@v1
if: startswith( matrix.config.os, 'macos' ) && github.event_name == 'push' && github.repository_owner == 'audacity'
if: startswith( matrix.config.os, 'macos' ) && github.event_name == 'push' && github.repository_owner == 'tenacityteam'
with:
p12-file-base64: ${{ secrets.APPLE_CERTIFICATE }}
p12-password: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}

View File

@ -24,6 +24,10 @@ endif()
if(VCPKG)
set(ENV{VCPKG_DISABLE_METRICS} true)
if(NOT DEFINED ENV{VCPKG_BINARY_SOURCES})
set(ENV{VCPKG_BINARY_SOURCES} "clear;default,readwrite;nuget,https://tenacityteam.jfrog.io/artifactory/api/nuget/tenacity-nuget,read")
endif()
set(ENV{VCPKG_FEATURE_FLAGS} "-compilertracking,manifests,registries,versions")
if(VCPKG_ROOT)
message(STATUS "Using dependencies from vcpkg repository at ${VCPKG_ROOT}")