Closed hrls closed 3 months ago
As far as I can see, the DockerHub release contains no more info than a simple timestamp.
It looks like using RuntimeVersion
involves some code updates, such a CLI command to call a Runtime API func named version
. I'll move on with it. Please let me know if there is some more applicable approach to do this.
As far as I can see, the DockerHub release contains no more info than a simple timestamp. It looks like using
RuntimeVersion
involves some code updates, such a CLI command to call a Runtime API func namedversion
. I'll move on with it. Please let me know if there is some more applicable approach to do this.
yeah, we considered simplify things on the start and use timestamps (which is both human readable and inremented). after a little bit more thinking, I think now that it's actually would be better (and easier) to use good old semantic versioning. as RuntimeVersion
may not be changed in case of inner node upgrades. we can simply release on tag and tag the releases with a semantic version. we would need to update the release workflow a little (make a release on a tag push).
UPD
but I'm not sure whether we need it for the devnet, because of how often it should be deployed. maybe it would be better to use timestamps as versions for the devnet releases and upload them on push into devnet
.
Also, we need to release runtime as a wasm. It's needed by https://github.com/Atleta-network/atleta-network-deploy/issues/4 And for the wasm it would be great to have RuntimeVersion
. But it shouldn't be released each time when the new version of the node is released — as I mentioned, the node could be updated, while the runtime kept unchanged.
Okay, I'll change triggers for this workflow just for release-*
tags where wildcard means specific version (no matter semver or just rolling timestamp).
For the devnet
branch I'll add the ability to a manual start a workflow. This could be used when we want to just trigger devnet release and then the new deploy repo listens to those releases and runs it.
Related to the Runtime WASM binary (blob)…
We can just add this blob to the release archive as well. I prefer to keep automated workflows as stupid as possible as it's hard to decide whether we should run runtime release or not based on some detection logic.
So my proposition is the following: 1) add blob to the release archive as is, 2) then we implement version-extractor utility and mark the blob based on it's output, 3) and then we can add specific logic to the workflow where we will check do we need roll the new runtime release or not;
Okay, I'll change triggers for this workflow just for
release-*
tags where wildcard means specific version (no matter semver or just rolling timestamp). For thedevnet
branch I'll add the ability to a manual start a workflow. This could be used when we want to just trigger devnet release and then the new deploy repo listens to those releases and runs it.
the purpose of devnet is to be able to check changes immediately. so it should be a rolling release - deploy should happen every time there is a push into devnet
.
Related to the Runtime WASM binary (blob)…
We can just add this blob to the release archive as well. I prefer to keep automated workflows as stupid as possible as it's hard to decide whether we should run runtime release or not based on some detection logic.
So my proposition is the following:
- add blob to the release archive as is,
- then we implement version-extractor utility and mark the blob based on it's output,
- and then we can add specific logic to the workflow where we will check do we need roll the new runtime release or not;
let's rather trigger wasm releases manually or based on RuntimeVersion
change. having releases for the runtime covered by particular node version even if there are no changes in the runtime is too confusing.
upd I mean, probably it's out of the scope of this PR.
JFYI there is a tool called subwasm. We can probably use it to implement some fancy stuff like this https://docs.substrate.io/reference/how-to-guides/tools/verify-wasm/#compare-two-different-runtimes-of-a-live-chain
We decide to implement CD release for runtime WASM outside this PR. TODO: #147
This workflow will release LICENSE
file and atleta-node
binary named in as release-branch_or_tag-commit_sha-OS-arch
for any push to: testnet
and devnet
branches, release-v*
tag.
TODO @hrls :
There is an additional trick – mark as the latest release only the one built on the devnet
or testnet
branch. This way any other release (for example manually triggered for on the specified branch) will not be marked as the latest.
Edit: done
Closes #109