Conversation
.github/workflows/build.yml
Outdated
| gh release create --repo "${{ github.repository }}" "${RELEASE_NAME}" \ | ||
| --generate-notes \ | ||
| --latest \ | ||
| --target "${{ github.push.after }}" ${{ !endsWith( github.event.ref, '-rel' ) && '--prerelease' || '' }} |
There was a problem hiding this comment.
This will create a tag like "2.6-557befb" for every single commit. An set it to latest. We have always some issues with every new build. So I am not sure if this is a good idea.
How does the '-rel' thing work?
There was a problem hiding this comment.
I have here a branch which uses the build artifact directly form the action tab:
https://github.com/daschuer/mixxx/commits/vcpkg_update_direct/
This has the issue that it is removed after a while, but it works nicely during development.
Do we want to inc operate this model and do the GitHub Release after testing?
There was a problem hiding this comment.
That's a good point. We could make the non -rel branch create a pre-release instead, and reserve stable, latest releases for the rel branches. Am I right in thinking that -rel branch only gets updated upon successful tests?
There was a problem hiding this comment.
This happened probably implicit. The -rel branch mainly produces smaller archive because it only contains one set of files without debug builds.
There was a problem hiding this comment.
Actually, it turns out I had already implemented that:
*-relwill be published a pre-release*will be published as "stable" release (again we can manually untick if we wanted to, although the follow up release/merge would take precedence anyway)
Both branch type will set the latest alias to themselves, so one can easily retried the latest fresh build, similarly to a main branch on the Mixxx repo.
| if: ${{ github.event_name == 'push' }} | ||
| id: ghrelease | ||
| shell: bash | ||
| name: "Creates a release in GitHub if it doesn't exist yet" |
There was a problem hiding this comment.
We normally have the name on top. You seems to have reverted the sort order of elements.
Please keep the normal sort order.
There was a problem hiding this comment.
normal sort order
Does that mean just "name first" or is there some kind of bespoke ranking I should follow?
There was a problem hiding this comment.
I am not sure if there is something like this.
It is just a good practice to follow the examples in the GitHub Docs:
https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions
- name:
if:
env:
run:
There was a problem hiding this comment.
Not sure which example you are referring to. Only order I can find is the following:

It is just a good practice
Let's just agree to disagree here. However, I'm not willing to block this pressing optimisation over such a minor point. Here are the used keys:
runenvifidshellname
Please give me what order you want and I will update that.
There was a problem hiding this comment.
I have no strong demands in detail, but it shall be consistent with our other workflow for a good reading experience.
In https://github.com/mixxxdj/mixxx/blob/main/.github/workflows/build.yml we have:
- name
- id
- if
- uses
- with
- shell
- run
- working-directory
- env (above if when required for if)
|
It would be nice if the user has only a single BUILDENV_URL with a single BUILDENV_SHA256 to specify, also in the case of the archive in multiple parts.
Than the user could select the the buildenv just by the URL of this filelist and it's SHA256. |
|
Let's look at the whole workflow. For example this:
Only just before the last step we need the GitHub release. It would be a major time saver if we have that automated:
For my understanding a manual started workflow will remove a bit of complexity here and will also ease up our work. Regarding the checksums of the parts. They are IMHO pointless if the combined file has later a different checksum than the tested Proposal just use |
|
In the past we ALWAYS updated the environments for all at once. |

This is the first part of the proposal to also use GH release to reduce data round-trips on our runner and improve speed. The current test seems to yield about a ~5x improvement on CI and about the same performance locally, tho slightly slower as the speed tends to fluctuate more.
Note: it also restrains the
pushandpull_requestsCI trigger to prevent double builds