-
Notifications
You must be signed in to change notification settings - Fork 117
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
build with GH actions and Docker #680
Conversation
I am willing to help in polishing this. I have quite some experience with CI and especially GitHub actions. Some thoughts:
That's normal. It's also a regular build step. Binaries should be uploaded in a separate step in my opinion, especially when running multiple jobs in parallel (back in the times when GitHub actions did not exist and Travis CI was used by everyone, we ran into race conditions a lot due to the lack of an artifacts storage). Beware that artifacts can be downloaded only when logged into GitHub for some reason.
Just delete the branch filter and the pipeline is going to be run on all branches automatically. You may need such a filter only for singular build steps if you want to implement some fancy auto releasing. But there are better solutions that do not require any such filtering (see below!). For manual builds, there is the
Why not test end-to-end? The builds shouldn't take that long anyway. You want to have CI changes be tested, too.
Please see pyuploadtool, which automates uploading binaries to GitHub releases in an opinionated way (including features like filtering branches, i.e., uploading binaries only for releases, which means the tool can be run with every build, it will automatically skip uploads on feature branches). You can see it in action for instance on AppImageUpdate's release page. There is a continuous release which is recreated for every new commit on I can implement this in my fork and send a PR to your branch. |
I'm happy to hear that you want to help and that you know more than me :-)
I would personally prefer a solution with less external dependencies. On the other hand, I have to concede that GitHub does not offer a reasonable solution without external tools. For example, they stopped supporting their "create release action" and refer to third party forks instead. So I have nothing to propose that is better than yours.
Is there maybe a variant of your solution where the dependency is fixed to a specific hash / commit ID?
Looking forward to your PR, I will then just close this PR.
|
- For all commits on master, use both GH Actions and the old buildserver (download.visicut.org). - For all PRs, use GH Actions. Limitation: Currently the output of GH Actions is only temporarily kept for 90 days. No release is created.
I updated the PR content and description:
I think the current result is a useful first step, so I would merge this sooner or later if there is no other feedback. |
Totally forgot about this. Looks good to me as a first step. I'd like to have it merged before sending my own PR. I'll take your feedback into account. Approved by me (if that matters to you). |
For the record, I just tagged a release on pyuploadtool. I still think |
(updated)
Add GitHub actions in parallel to the old buildserver.
Currently implemented:
Not implemented: