-
-
Notifications
You must be signed in to change notification settings - Fork 18.7k
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
Upload artifacts as assets of a tip (nightly/latest) pre-release #75401
Conversation
Builds produced by the CI are not suitable for publishing as official releases. They are not compiled with regular flags and optimizations, not all platform combinations are covered, and they are not signed. Therefore making those builds a part of the releases section would be misleading and not useful to most users. Instead we plan to provide official nightlies in the future, signed and compiled with the appropriate flags for all supported platforms. We will also provide pre-compiled builds of important PRs, suitable for user testing and UX feedback. PS. In the meantime you can try reviving Calinou's efforts with https://hugo.pro/projects/godot-builds/, but in an unofficial capacity. |
tips are not expected to be comparable to official releases. They are useful in CI, to anticipate for upcoming breaking changes and fixes. All non release assets are for development purposes only. Is there an estimated time-frame to provide official and signed nightlies with fixed URLs? Actually, I don't care much about being official or signed, as long as the URL is fixed and it does not require login. I'm not interested in duplicating the build infrastructure outside of godotengine. |
Exactly, but this feature suggestion, this PR doesn't work without publishing the tip as an official pre-release. Which, as I explain, is a problem, because it sends a wrong message about the usability of these builds. If this was done as a dedicated resource, be it a separate repository or a third-party website, then it's not a problem. But there is more to consider when it comes to what we officially publish on the main channels. There is no ETA for the nightlies, things in Godot development take time to materialize. But thankfully, you don't need to duplicate anything. Everything is already provided for anyone to use as https://github.com/godotengine/build-containers. Edit: Another approach, if you are okay with build artifacts and not actually production executables, is to use GitHub's own API and extract the links to the artifacts from the master commits. It should be pretty easy to set up and to publish as a GitHub Pages website. I might even do it this week, seems useful. |
Here we go: https://godotengine.github.io/godot-commit-artifacts/ |
Well, that was an impressive turnaround. I'm speechless 😲 Currently, none of the links is working for me. But, nevermind. I'll close this and we can handle it through issues/PRs in godot-commit-artifacts. |
Oops, fixed, should be all good now. An example of a link would be: https://godotengine.github.io/godot-commit-artifacts/download/godotengine/godot/master/android-template/ It redirects to the last available artifact for Android export templates. |
This PR is based on #75338, which is a duplicate of #65232. Therefore, it is to be kept as a draft until #65232 is rebased and/or merged.
Currently, users can download artifacts from workflows. However, that requires login and it cannot be easily automated because workflow run URLs are not human-readable. Therefore, they rely on third-party solutions or on manual action to get the pre-built editor and templates with latest fixes.
This PR adds a reusable workflow named
tip.yml
to be executed after all other workflows are finished and successful, as long as the CI run was triggered by a push to branchmaster
. This workflow downloads all the artifacts, packages the content, computes the sha256sums and uploads everything as assets of a pre-release namedtip
, which is linked to tagtip
. After uploading the assets, tagtip
is updated.As a result, users will have fixed URLs to download the very latest editor and templates, without requiring login.
Step 'Prepare assets' in this PR is just a naive prototype. I would need advice from some maintainer to properly decide which assets to upload and how to name them.
Related:
Since the tag is updated, the pre-release in https://github.com/godotengine/godot/releases will always point to the commit that last updated the assets, and the description of the pre-release will be the body of that commit. However, the date will be "wrong". It will be the day the pre-release was created (which some maintainer needs to do before merging this PR). It seems that GitHub does not support changing the date of a release; it must be deleted and created again, which is unnacceptable for tip/nightly because it creates too much noise.