-
Notifications
You must be signed in to change notification settings - Fork 67
Re-organize workflows and releasing process #202
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
base: staging
Are you sure you want to change the base?
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.
@v9n, could you check out this PR, to see if my understanding of the current flow is correct, and is there any concerns with this optimization?
|
||
# Due to EigenSDK package differences on Ethereum mainnet, | ||
# this workflow ensures the mainnet branch stays in sync with main | ||
# while maintaining its own Docker image tag. |
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.
The original mainnet.yml
is deleted and triggered manually by update-docker-mainnet.yml
on-demand instead.
| Staging | `staging` | `avaprotocol/ap-avs-staging` | `commit-hash` | GA: `update-docker-staging` | Automatic on PR merge to staging branch | | ||
| Production | `main` | `avaprotocol/ap-avs` | `x.y.z` (semantic version) | GA: `release-and-update-docker` | Automatic on PR merge from staging to main | | ||
| Mainnet | `mainnet` | `avaprotocol/ap-avs` | `mainnet` | GA: `update-docker-mainnet` | Manual trigger to sync main to mainnet and deploy | | ||
|
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.
@v9n, could you walk through this file to see if anything wrong with the plan?
- There meant be no changes to docker image or tags to the current production images.
- Question: Does the
deploy-ethereum.yml
depends on theavaprotocol/ap-avs@mainnet
docker image? If so, I need to update the flow to auto-update the@mainnet
tag first, before running deploy. - The operators only need to care about
avaprotocol/ap-avs@mainnet
? They run only the operator program, right? Does theavaprotocol/ap-avs@mainnet
contain both aggregator and operator?
|
||
- name: Run semantic versioning and release | ||
id: semantic-release | ||
uses: go-semantic-release/action@v1 |
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.
The go-semantic-release
library will replace the existing tagging process offered by the Go native method. It enforces version format, auto-bump versions, and create a release.
The scripts are not tested yet, but if the plan in RELEASE.md makes sense I will test and finalize them.
|
||
on: | ||
push: | ||
branches: | ||
- staging |
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.
The staging Docker image is updated after each PR merge. This branch serves as a caching and testing pool before changes are merged into main, which basically means the code goes live.
uses: docker/build-push-action@v6 | ||
with: | ||
build-args: | | ||
RELEASE_TAG=${{ inputs.tag || github.sha || github.head_ref || github.ref_name }} | ||
RELEASE_TAG=staging-${{ github.sha }} |
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.
i thinkwe should keep:
- branch-name: so we can pin toward
avaprotocol/avs-dev:test-my-new-feature
instead of manuallly update your code everytime to point to new sha - really userful to have the abilitty to trigger build with dispatch and set the tag yourself.
tags: | | ||
avaprotocol/ap-avs:mainnet | ||
build-args: | | ||
RELEASE_TAG=mainnet-${{ github.sha }} |
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.
not github.sha. should be the tag so we can have mainnet
as latest and mainnet-1.5.0
and mainnet-1.6.0
.
we don't usually need mainnet-abcdef
for mainnet.
uses: docker/build-push-action@v6 | ||
with: | ||
build-args: | | ||
RELEASE_TAG=${{ github.sha }} |
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 shoukd keep the branch
name: 'Base' | ||
environment: 'Base' | ||
directory: 'base' | ||
- id: 'deploy-ethereum.yml' |
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.
base and ethereum should be trigger after we release the mainnet branc docker image. otherwise they will not be up to date. so you may want to move these to run after update-docker-mainnet
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.
I suggest to hold back this change and wait until you completed your avs-infra
deployment for Minato.
At that time you will have better understanding of what docker images and tags we used in testnet and mainnet.
7422b32
to
63bc1de
Compare
No description provided.