Comments (5)
how and where are the changes in cmake/projects
or examples
detected? How do you decide which versions to compare?
from hunter.
How - using a git diff (name only) between the HEAD commit of the PR branch, and the merge base of the PR branch and the merge target (which is the master branch of this repo). Essentially the detected changes files should be identical to the changed files you see in the PR on github
Where - at the beginning of each build in the build matrix for Travis and appveyor jobs
Which versions - I think I answered that above, but let me know if something doesnโt make sense
from hunter.
A proposal for an intermediate step:
We have currently moved ingenue/hunter
into the cpp-pm org here https://github.com/cpp-pm/hunter-testing. Again, this repo's only relation to hunter is that each branch contains the travis/appveyor build matrix for that package. It doesn't need to be a fork of hunter, because instead of merging the testing branches into feature branches, it's reasonable to do:
# On your feature branch
git remote add testing https://github.com/cpp-pm/hunter-testing
git fetch testing pkg.gtest
git checkout testing/pkg.gtest -- appveyor.yml
git checkout testing/pkg.gtest -- .travis.yml
git checkout -b gtest_test
git commit -m "Test gtest builds"
git push -u origin gtest_test
# As long as CI is enabled on your fork, go to travis/appveyor websites and track the relevant build job that you just kicked off
So instead of maintaining a repo with branches to hold the build matrices for each package, we could instead check them into https://github.com/cpp-pm/hunter as unused files. So for example, we would have cmake/projects/GTest/.travis.yml
and cmake/projects/GTest/appveyor.yml
. Then, if you wanted to run CI when updating gtest to a new version, you would do:
cp cmake/projects/GTest/.travis.yml .
cp cmake/projects/GTest/appveyor.yml .
git checkout -b gtest_test
git commit -m "Test gtest builds"
git push -u origin gtest_test
This would then mean that:
- To add a new package, you don't need a PR against the testing repo to create the branch for the new package
- For existing packages, you don't need to merge against another repo to run CI
- When updating packages, if a build in the build matrix starts/stops failing, you can comment/uncomment in the same PR against hunter that updates the package.
from hunter.
GitLab released generated child pipelines. You can generate the jobs, that need to be triggered dynamically. So one job detects which examples need to be run, and a child pipeline then runs only for the changed project files
https://docs.gitlab.com/ee/ci/parent_child_pipelines.html#dynamic-child-pipelines
is there something like that in the github space?
from hunter.
Closed by #250
from hunter.
Related Issues (20)
- How would people feel about overhauling the iOS support to remove polly magic? HOT 6
- Update cryptopp
- Update libsodium HOT 8
- Update "CURL" package HOT 2
- Unexpected CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE: 'ARM64' HOT 6
- ceres-solver: ceres-solver: build failure on Ubuntu 16.04 of jet.h with 'specialization of std::common_type in different namespace'
- ceres-solver v2.1.0 unexpectedly builds with CUDA support
- How to compute Hunter/Toolchain/Config ID HOT 4
- Add "tensorflow-lite" package HOT 1
- fatal error C1083: Cannot open include file: 'json/json.h': No such file or directory HOT 4
- [BUG] cmake hangs on hunter_unpack_directory HOT 1
- Support for OpenSSL 3.x HOT 3
- missing SHA1 details in v0.24.16 release note HOT 1
- Pass build options to boost HOT 3
- /usr/bin/ld: /home/sahoo/.hunter/_Base/cb0ea1f/a3a48bb/b64ffe3/Install/lib/libz.a(zutil.c.o): relocation R_X86_64_PC32 against symbol `z_errmsg' can not be used when making a shared object; recompile with -fPIC HOT 12
- unittest hunter_setup_msvc fails because of ARM64 change HOT 9
- reeenable cmake hunter unittests to run in CI
- Doc - First step points to ruslo/hunter/wiki which does not exist HOT 1
- Missing OpenSSL 3.x IMPORTED Targets Crypto and SSL HOT 2
- cmake has now deprecated support for versions prior to 3.5 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hunter.