-
Notifications
You must be signed in to change notification settings - Fork 191
Add support for nightly builds for dev branch
#3247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
- Use matrices for building on separate platforms - Add support for (dev branch) nightly builds on which update the release (with 'nightly' tag). If no changes have been made to dev, then no changes are made.
|
Very tough to review only from code. Demonstrated generation of releases: https://github.com/daljit46/mrtrix3/releases/tag/nightly What's the lifetime of the generated release assets? In #2665 @tclose is looking for persistent build derivatives. I don't particularly want to generate a pre-release tag as the code is a long way away from being "pre-release", but if nightly |
|
CLI works, but mrview produces: |
|
What I noticed is that the directory naming scheme is not the same across platforms, e.g. on macOS it unpacks to |
Co-authored-by: Robert Smith <robert.smith@florey.edu.au>
Co-authored-by: Robert Smith <robert.smith@florey.edu.au>
The workflow deliberately deletes old release artefacts on a new nightly run. This is primarily to avoid wasting storage space. If the intention is to use the latest release asset as the build derivatives, then this is fairly straightforward, as the URL for the assets will always point to the latest ones (as long as the name of the artefacts is not changed). One can even query more robustly via |
|
@MRtrix3/mrtrix3-devs One issue that needs to be solved prior to this is our version matching logic in FindVersion.cmake. Since the new workflow relies on the existence of the |
|
It might be necessary to have a more verbose name than Indeed there could be a
Maybe safer would be requiring that a cmake variable be defined at the command-line indicating that the intended tag is
It will presumably still show in the verbose description that there are a large number of commits between the most recent tag and the tip. But true, it's not the most interpretable thing in the world. Maybe as a resolution to both this and request in #2665 we could create an "alpha" tag (which I find more palatable than "release candidate") on |
I think generally speaking (in other software projects), "nightly" releases are not intended to be bug fixes. They usually refer to releases of the branch where new features for the software are actively being developed (in our case,
I've implemented this on my fork of MRtrix3, with a new |
This PR refactors the
releases.ymlworkflow to add support for nightly builds for thedevbranch. The workflow is scheduled to run every day at00:00and will update the release tagged with thenightlytag (which I have already created) with the artefacts for each platform. The release will show the latest 15 commits ondev. If there have been no changes ondevsince the last run, the workflow is cancelled.Additionally, the workflow file has been refactored for improved code reuse and a simplified YAML file that utilises the GitHub Actions matrix strategy to build artefacts for each platform.