Coder Social home page Coder Social logo

Comments (5)

NeroBurner avatar NeroBurner commented on July 24, 2024

how and where are the changes in cmake/projects or examples detected? How do you decide which versions to compare?

from hunter.

bkotzz avatar bkotzz commented on July 24, 2024

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.

bkotzz avatar bkotzz commented on July 24, 2024

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.

NeroBurner avatar NeroBurner commented on July 24, 2024

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.

rbsheth avatar rbsheth commented on July 24, 2024

Closed by #250

from hunter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.