Skip to content

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

Open
wants to merge 2 commits into
base: staging
Choose a base branch
from

Conversation

chrisli30
Copy link
Member

No description provided.

Copy link
Member Author

@chrisli30 chrisli30 left a 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.
Copy link
Member Author

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 |

Copy link
Member Author

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?

  1. There meant be no changes to docker image or tags to the current production images.
  2. Question: Does the deploy-ethereum.yml depends on the avaprotocol/ap-avs@mainnet docker image? If so, I need to update the flow to auto-update the @mainnet tag first, before running deploy.
  3. The operators only need to care about avaprotocol/ap-avs@mainnet? They run only the operator program, right? Does the avaprotocol/ap-avs@mainnet contain both aggregator and operator?


- name: Run semantic versioning and release
id: semantic-release
uses: go-semantic-release/action@v1
Copy link
Member Author

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
Copy link
Member Author

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 }}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i thinkwe should keep:

  1. 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
  2. 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 }}
Copy link
Member

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 }}
Copy link
Member

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'
Copy link
Member

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

Copy link
Member

@v9n v9n left a 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.

@chrisli30 chrisli30 force-pushed the staging branch 2 times, most recently from 7422b32 to 63bc1de Compare April 21, 2025 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants