Conversation
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>
1036e92 to
07797c8
Compare
Since vcpkg no longer always generates buildtree logs ignore them missing Signed-off-by: Emily Mabrey <emabrey@tenacityaudio.org>
|
Have you added the secrets yet? The authentication step is being skipped. |
It's being skipped because this is a pull request. It only runs on pushes to master. I tested that it works before adding that conditional, so that's the only reason it's not pushing to Artifactory. I didn't want our build cache clogged with PR gunk, and I also consider letting PRs push the build cache to be a glaring security problem, considering the ease with which a malicious PR could just modify the zip files. |
|
I cannot confirm that this works without the cache being populated from this branch. I do not think populating the cache should require merging to master; I'd want any upstream branch to have permission to populate the cache. |
The binary caching is to speed up new contributor on-boarding not to provide a general bitbucket for caching every conceivable type of dev build (between compilers/codebase/OS that's a lot of different configurations). We can't store an infinite amount of things in the Artifactory instance. |
Ultimately this is an administrative CI change so I can merge it and you can verify it post-merge. CI can't really be perfectly subject to the contrib guidelines for this exact reason. |
|
I'm not confident that this works and won't require a bunch of tiny fixup commits on master without seeing it working before merging. |
I'll duplicate it to my branch and remove the conditional. |
https://github.com/emabrey/tenacity/runs/3390272343?check_suite_focus=true |
|
Also you can verify the file upload messages are actually resulting in files being uploaded to Artifactory here: https://tenacityteam.jfrog.io/artifactory/tenacity-nuget/ |
|
Nice. Now if you build locally after clearing the local binary cache, does vcpkg use the cache from Artifactory or does it rebuild everything? |
It uses the local cache first, remote cache second, and builds as a last resort. |
|
You can also override usage of the remote cache by manually setting |
Be-ing
left a comment
There was a problem hiding this comment.
🎉 Thanks for working on this!
Only attempt signing using Apple certificate on create tag events. Signed-off-by: Emily Mabrey <emabrey@tenacityaudio.org> Reference-to: https://github.com/tenacityteam/tenacity/pull/525
Add support for binary caching for vcpkg using nuget to access the tenacityteam Artifactory instance. @emabrey is administrating the Artifactory instance and is able to provide user accounts with appropriate permissions to anyone who needs one (though honestly, that is basically nobody, since the Artifactory instance supports anonymous reads, so you don't need to have an authentication source setup to use it from within CMake, it should just work).
This setup:
Please note that even though it claims to enable "readwrite" to the Artifactory instance globally without reservation, without the authentication tokens nothing actually happens other than the "read" scenario which is the default anyway.
Checklist
-sorSigned-off-by* (See: Contributing § DCO)* indicates required