Skip to content

WIP: Binary distributions via GitHub Releases.#98

Open
zivy wants to merge 2 commits into
SimpleITK:mainfrom
zivy:releaseAndBinaryPackages
Open

WIP: Binary distributions via GitHub Releases.#98
zivy wants to merge 2 commits into
SimpleITK:mainfrom
zivy:releaseAndBinaryPackages

Conversation

@zivy
Copy link
Copy Markdown
Member

@zivy zivy commented May 19, 2026

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.

@zivy zivy requested a review from blowekamp May 19, 2026 16:41
@blowekamp blowekamp requested a review from Copilot May 20, 2026 20:16
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Comment thread .github/workflows/main.yml
Comment thread .github/workflows/main.yml
Comment thread .github/workflows/main.yml Outdated
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).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep it simple. Just run when there is a tag starting with be. The whole comparison is really not needed.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

# it with the GitHub Actions artifacts and the release description/body.
- name: Create or Update Draft Release
uses: softprops/action-gh-release@v2
env:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would just use the gh command line directly and not use the third party action.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer to keep using the action as it is more robust and the setup is more concise than a gh cli.

@zivy zivy force-pushed the releaseAndBinaryPackages branch from 524a9cb to 5532b32 Compare May 21, 2026 13:41
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.
@zivy zivy force-pushed the releaseAndBinaryPackages branch 4 times, most recently from 874ed16 to 95a05ca Compare May 22, 2026 13:15
Refer to actions using the hash and not the tag
that can be moved. Also limit permissions to
read-only.
@zivy zivy force-pushed the releaseAndBinaryPackages branch from 95a05ca to cc5585f Compare May 22, 2026 17:55
@Artur-man
Copy link
Copy Markdown
Collaborator

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,
Artür

@zivy
Copy link
Copy Markdown
Member Author

zivy commented May 22, 2026

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants