-
Notifications
You must be signed in to change notification settings - Fork 14
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
Add workflow to automatically create new node release #485
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM ✅. We need to be aware of this workflow to trigger it manually when we change the node then?
@gianfra-t Yes. |
This is an interesting change for sure. I think the word 'workflow' in this comment was not necessarily referring to a Github workflow but why not 😅 The problem I see with this is that it doesn't mention the runtime in the title. For the other workflow, we implemented it such that the title needs to contain 'release:' + either 'amplitude' or 'pendulum'. This is missing in this node version bump title. Now the question is how do we want to decide whether it should be for amplitude or pendulum? If we look at our usual flow, our release cycle is Foucoco -> Amplitude -> Pendulum. So this node version bump actually needs to happen when we upgrade the runtime on Foucoco. Our automated runtime upgrade workflow does not cover this, though, as we didn't include Foucoco in that. I think we could do one of the following:
Since so far, we don't really have a well-defined process for creating and deploying the node upgrade in the first place, maybe option 1) is preferable. WDYT @pendulum-chain/devs? |
So if I understand idea 1 correctly, once we perform a change to the node and trigger this version-workflow, it will also trigger a Foucoco release. But couldn't the node and runtime upgrades be independent of each other? Because we may update the node but not make any change to the runtime itself I assume. |
While this is true, I think this is rarely the case and most of the time, we'll only want to ship a node upgrade in combination with a runtime upgrade. So maybe it's better not to handle that edge case for the sake of simplicity. |
@ebma @gianfra-t We have never defined "foucoco release"; what's the criteria? The upcoming polkadot-v1.0.0 will change the version of the spacewalk dependency in |
So it then would be independent of the runtime? I would prefer this. I understand the last @ebma comment as follows: we will (almost) always make a modification of the node code while also doing so on the runtime, which will generally be Foucoco. But, once the node code has been bumped (and changed), should we also bump it's version for every other consequent runtime upgrade? I understood differently. |
I checked other parachain teams. Moonbeam has extra releases for just the collator nodes however. This is an example of a node release and this of the runtime. From what I can tell, centrifuge only have the runtimes in their releases. Astar add their collators to the assets of each release and so does interlay. |
@ebma We can definitely follow moonbeam. I'll check their workflow and update this PR next week. |
Cool 👍 @pendulum-chain/devs any objections if in addition to our current workflow, we share upgrades to the collator nodes (and the new build artifacts) in separate releases on Github? |
So if I understand this right with this PR we would have the following process:
I think it makes sense to keep this separate conceptually as the node release applies to all runtimes at the same time – even if we will practically mostly only update the node version together with at least one runtime upgrade. Shall we also create a GitHub release whenever we upgrade the node version or at least create a tag for the merge commit of the PR? |
Yes, I think we should put the node upgrades into separate Github releases similar to what Moonbeam does. |
@ebma @TorstenStueber I've setup the get_commit.sh, similar to the
|
I think it's fine if we just attach the compiled node binary to the release. The .zip file of the source code is always attached to a Github release anyway, so nothing to add here. Let's coordinate with @zoveress next week. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should apply that to the automatic title as well then.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me 👍 let's coordinate with Zoltan regarding the node creation pipeline before merging this though.
The actions added to this PR were tested here. |
Partially closes #456.
This workflow will do the following:
release-node
,release-amplitude
, andrelease-pendulum
release-node
As we've never had a client release before, I've set this up to be triggered via the workflow. Like this:
The PR will look like this: