-
-
Notifications
You must be signed in to change notification settings - Fork 133
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
Updating workflows. #61
base: main
Are you sure you want to change the base?
Conversation
* Build and test with binary upload * Build and release with binary upload
Hey, thank you for the PR. I got some questions since I have only basic knowledge about github actions. I have seen that you have added an "Upload artifact" step at the end of the test workflow. I have looked over the actions/upload-artifact repository and it seems like it's for sharing data between jobs and the data can be downloaded via the download artifact counterpart, but I can not see you using it anywhere. What exactly is that for? Also, could we make the "Release" action depend on the test action and then use "download artifact" to avoid building the project twice (since it takes ~8 minutes per build). Apart of that, do I understand it correctly that the "Publish release" step automatically detects all binary files, bundles them and then publishes them as a tar.gz? |
So, to address you questions:
So Upload artifact is in place to validate 2 things:
Never used it to download from a different step, but I can investigate this and update accordingly.
Currently, the release action will only trigger on tags being pushed to the main branch, that match the previous regex (vx.x.x). So it will only trigger when you push a tag to a specific commit, it shouldn't trigger in other scenarios. I can investigate further the download artifact option for the release. You need to take into account that uploaded artifacts have a life time (in repo settings), so you should run the release task close to the test, but also not sure about which artifact will the action download, so you could end up with the wrong binaries in the release. This scenario requires further research on my part. Not sure if you wan't to also have an rc workflow. Lastly:
The publish release is only uploading the librum binary, if there is a list of files that you wish to have compressed it's easy to add. You can also add binaries one by one as different downloads, that's up to you. You should also take a look to branch protection in the repo settings, actions setting to define log and artifact retention (this will affect storage use in your account and additional workflows if there is a upload/download artifact dependency). |
Thanks for the quick response.
I am not sure if I understand this correctly, what exactly do you mean with "Name/path" and why would it change between builds? Also,
The tag is always coming with the new release, so there should be pretty much no time in between them. The main branch usually gets updated when a new version on dev/develop is ready.
This is a problem, since the executable file alone won't be of any use since it doesn't run without the needed shared libraries. I suppose I'll need to look into manually adding binaries to the "package" that will be published, right? |
Not sure what the coverage for a test is. But validating that name/path is the same, between updates is to validate that file keeps the name and the path were is compiled. It happened to me that some pipelines broke, because the upstream changed the name of the binary (you are the upstream so it shouldn't happen, but I rather be safe than sorry).
If you give me a list of what needs to be packaged, it's easy to add a task that runs tar, and upload the tar file instead of the binary only. |
I'll be looking into making a list of files needed to run Librum on different Linux distributions. Once I manage to manually create such package, I will make sure to send it to you so that you are able to see what needs to be released. |
As a first approach we can do a tar file with all the files in the build-release folder. |
Working on this rn |
Just to give you an update, there seems to be a bug (probonopd/linuxdeployqt#592) in linuxdeployqt (the tool needed to create .tar.gzs for qt applications) which is holding me back right now |
I may be missunderstanding you, but we can use a simple action to create the tar file as needed. Like:
And do the rename and upload of this. |
Sadly this doesn't work, we need to bundle the Qt libraries, plugins and qml stuff as well |
Updating workflows to have:
Please let me know if other binaries need to be uploaded.