WIP: Binary distributions via GitHub Releases.#98
Conversation
| name: Create GitHub Draft Release | ||
| # Only run this job for tag pushes after the R-build job completes | ||
| # successfully (also means the pushed tag matches SITK_TARGET since | ||
| # R-build validates that at the beginning). |
There was a problem hiding this comment.
Keep it simple. Just run when there is a tag starting with be. The whole comparison is really not needed.
There was a problem hiding this comment.
The tag matching is now only performed for the draft release creation job. That step should only happen when the intention is to create a release and then the pushed tag should match the one in the DESCRIPTION file so that the installer and the SimpleITK versions are kept in sync.
95a05ca to
cc5585f
Compare
|
Hey guys, It is amazing that you guys are officially releasing binaries. I think I saw that the Python binary releases of new SimpleITK versions now will come with Elastix installed too. Can we also do the same with R binaries here? Would be a nice addition since most of R wrappers of registration software out there cannot handle large images. Best, |
|
Hi @Artur-man, This is still experimental, but we are thinking of turning SimpleElastix on by default, so that will apply to all languages. Note that the two developments, SimpleElastix and R binary distribution, are independent of each other. Currently it looks like the workflow for R binary distribution is working. Would appreciate it if you could try some of the artifacts on your side. The PR testing is still running but some of the artifacts have already been uploaded here. Let us know if you test some of them and if you encounter problems. Note that the macos-ARM are not there as those are built on CircleCI and we're a bit cautious in terms of security and setting it up to allow CircleCI to automatically upload artifacts to the GitHub release. With SimpleITK 3.0 we hope that the required build resources on GitHub will be sufficient and we'll add the ARM builds here. Otherwise, we'll need to think of another solution. |
|
Thanks so much @zivy, will do. Is there anything in particular do you want me to try ? I can scan ... |
For all triggering events, the workflow builds SimpleITK using the installer, creates binary packages from the results and uploads the artifacts to GitHub. When the triggering event is a tag push that matches the SITK_TARGET (DESCRIPTION file) a draft release is created and the packages are uploaded to it.
Refer to actions using the hash and not the tag that can be moved. Also limit permissions to read-only.
cc5585f to
62362b2
Compare
|
Hi @Artur-man, Would appreciate it if you tested the windows packages. Also, just an FYI, the effort to provide binary packages just exposed an issue with the configure script. The generated binary for linux is overly large. The CMake code in the configure script was missing some settings that greatly reduce the binary size. You've set us on a path of improvement. |
Stripped debug symbols from the binaries to reduce package size. Hides symbols by default in shared libraries and hide inline C++ functions to reduce binary size and prevent symbol conflicts with other packages.
Always a pleasure XD ok I will bring out the windows machine tonight. |
When a tag that matches the SITK_TARGET is pushed
to the repository, binary R packages for all tested platforms and that specific tag are created and uploaded to a draft release on GitHub.
Binary packages built and uploaded by CircleCI
use the GitHub CLI tool and requiere a GitHub
personal access token (PAT) with full repo control. In CircleCI project settings, under
Environment Variables add a variable:
GITHUB_TOKEN = PAT_value.