Skip to content
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

CI: revise the 'cygwin' job of the "Wrap releases" workflow #5289

Merged
merged 3 commits into from
Jan 12, 2023

Conversation

fingolfin
Copy link
Member

@fingolfin fingolfin commented Dec 19, 2022

First, we change the 'unix' job to always upload the .tar.gz it produces as an artifact. This puts a little extra burden on GitHub; but it lets us modify the 'cygwin' job to always use this artifact.

This removes a major point in which our simulated releases differed from actual releases. This subtle difference already caused trouble for two releases. With this change, I hope it won't cause trouble a third time.

As an added benefit, it also allows us to remove a bunch of custom code from the 'cygwin' job, and let's us avoid cloning GAP.

Motivated by issue #5285

Resolves #5011

@fingolfin fingolfin added release notes: not needed PRs introducing changes that are wholly irrelevant to the release notes topic: ci Anything related to GitHub Actions, Codecov, AppVeyor, Coveralls, Travis, ... labels Dec 19, 2022
@fingolfin
Copy link
Member Author

Excellent, the failure of #5285 is perfectly reproduced.

@fingolfin
Copy link
Member Author

So I've added a HACK commit which works around the issue currently troubling the package distro (i.e. it removes the broken symlink in the AGT package before creating the gap-VERSION.tar.gz) and with that the CI seems to pass; without it, it breaks as expected.

So in principle this seems ready to me, though I'd appreciate if it got some review; and of course that HACK commit should be removed, and the package distro be fixed instead (ideally by getting an update for the AGT package in).

#
# Furthermore, this would remove the need for the
# download_release_archive.py script, and if we would also remove the need
# for the upload_file_to_github_release.py script, as described below,
Copy link
Member Author

Choose a reason for hiding this comment

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

argh, ok, so we still need to make sure upload_files_to_github_release.py is available, or replace it (which I'd prefer anyway).

But also: this mistake of mine was not revealed because this code path is only tested for a release. Bad!

Perhaps we can always perform the upload -- but to where? Not sure this is possible. But perhaps we can do it at least for the scheduled daily jobs: we could let that (re)create a release nightly (i.e. delete it if it exists, then tag the commit from which the scheduled workflow is run, and upload there). Then we still notice failures relatively quickly

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe also should get rid of make_github_release.py... I'll give it a spin

Copy link
Member Author

Choose a reason for hiding this comment

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

Done, and verified on my personal fork of the gap repository (i.e. I made a dummy tag there and it successfully built and uploaded the .exe installer and the .sha256 file for it.

@fingolfin fingolfin closed this Dec 22, 2022
@fingolfin fingolfin reopened this Dec 22, 2022
@fingolfin fingolfin closed this Dec 22, 2022
@fingolfin fingolfin reopened this Dec 22, 2022
@fingolfin fingolfin added this to the GAP 4.13.0 milestone Dec 29, 2022
First, we change the 'unix' job to always upload the .tar.gz it produces
as an artifact. This puts a little extra burden on GitHub; but it lets
us modify the 'cygwin' job to always use this artifact.

This removes a major point in which our simulated releases differed from
actual releases. This subtle difference already caused trouble for two
releases. With this change, I hope it won't cause trouble a third time.

As an added benefit, it also allows us to remove a bunch of custom code
from the 'cygwin' job, and let's us avoid cloning GAP.
@fingolfin fingolfin force-pushed the mh/refactor-release-ci branch 2 times, most recently from 09ef8c4 to 60ecb8f Compare January 12, 2023 08:38
@fingolfin fingolfin marked this pull request as ready for review January 12, 2023 12:24
Copy link
Contributor

@ruthhoffmann ruthhoffmann left a comment

Choose a reason for hiding this comment

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

Looks good to me. Was worried about {{ matrix.arch }} being replaced with a hardcoded x86_64 (with more ARM arch being out there) but I don't see how this is an issue atm.

@fingolfin
Copy link
Member Author

Is there even aa cygwin version for ARM Windows? Anyway, if GitHub adds runners for ARM Windows, we can of course add that. The real reason for the matrix of course was that building these installers is soooo slooooooow. I've opened an issue about that

@fingolfin fingolfin merged commit 7e403f5 into gap-system:master Jan 12, 2023
@fingolfin fingolfin deleted the mh/refactor-release-ci branch January 12, 2023 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release notes: not needed PRs introducing changes that are wholly irrelevant to the release notes topic: ci Anything related to GitHub Actions, Codecov, AppVeyor, Coveralls, Travis, ...
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CI for creating Windows .exe for release tags is broken
2 participants