feat(conductor, relayer)!: batch multiple Sequencer blocks to save on Celestia fees #3629
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
pull_request: | |
merge_group: | |
push: | |
branches: | |
- main | |
jobs: | |
run_checker: | |
uses: ./.github/workflows/reusable-run-checker.yml | |
proto: | |
runs-on: ubuntu-latest | |
environment: BUF | |
needs: run_checker | |
if: github.event_name != 'merge_group' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'astriaorg/astria') && needs.run_checker.outputs.run_release_proto == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: bufbuild/buf-setup-action@v1 | |
with: | |
version: "1.15.1" | |
github_token: ${{ github.token }} | |
- name: "Get Buf Branch Annotation" | |
run: | | |
if [ "${{ github.event_name }}" == "pull_request" ]; then | |
echo "buf_repo_ending=${{ github.event.number }}/merge" >> $GITHUB_ENV | |
else | |
echo "buf_repo_ending=main" >> $GITHUB_ENV | |
fi | |
- name: "Upload Composer API Protos" | |
uses: bufbuild/buf-push-action@v1 | |
with: | |
draft: ${{ github.ref_name != 'main'}} | |
input: "proto/composerapis" | |
buf_token: ${{ secrets.BUF_TOKEN }} | |
- name: "Upload Primitive API Protos" | |
uses: bufbuild/buf-push-action@v1 | |
with: | |
draft: ${{ github.ref_name != 'main'}} | |
input: "proto/primitives" | |
buf_token: ${{ secrets.BUF_TOKEN }} | |
- name: "Update Sequencer Block API dependency" | |
run: | | |
cd proto/sequencerblockapis | |
BUF_COMMIT=$(buf beta registry commit get buf.build/astria/primitives:${{ env.buf_repo_ending }} --format=json | jq -r '.commit') | |
sed -i "s/buf.build\/astria\/primitives/buf.build\/astria\/primitives:$BUF_COMMIT/" buf.yaml | |
buf mod update --only buf.build/astria/primitives | |
- name: "Upload Sequencer Block API Protos" | |
uses: bufbuild/buf-push-action@v1 | |
with: | |
draft: ${{ github.ref_name != 'main'}} | |
input: "proto/sequencerblockapis" | |
buf_token: ${{ secrets.BUF_TOKEN }} | |
- name: "Update Execution API dependency" | |
run: | | |
cd proto/executionapis | |
BUF_COMMIT=$(buf beta registry commit get buf.build/astria/sequencerblock-apis:${{ env.buf_repo_ending }} --format=json | jq -r '.commit') | |
sed -i "s/buf.build\/astria\/primitives/buf.build\/astria\/sequencerblock-apis:$BUF_COMMIT/" buf.yaml | |
buf mod update --only buf.build/astria/sequencerblock-apis | |
- name: "Upload Execution API Protos" | |
uses: bufbuild/buf-push-action@v1 | |
with: | |
draft: ${{ github.ref_name != 'main'}} | |
input: "proto/executionapis" | |
buf_token: ${{ secrets.BUF_TOKEN }} | |
- name: "Update Protocol API dependency" | |
run: | | |
cd proto/protocolapis | |
BUF_COMMIT=$(buf beta registry commit get buf.build/astria/primitives:${{ env.buf_repo_ending }} --format=json | jq -r '.commit') | |
sed -i "s/buf.build\/astria\/primitives/buf.build\/astria\/primitives:$BUF_COMMIT/" buf.yaml | |
buf mod update --only buf.build/astria/primitives | |
- name: "Upload Protocol API Protos" | |
uses: bufbuild/buf-push-action@v1 | |
with: | |
draft: ${{ github.ref_name != 'main'}} | |
input: "proto/protocolapis" | |
buf_token: ${{ secrets.BUF_TOKEN }} | |
charts: | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
needs: run_checker | |
if: github.ref_name == 'main' && needs.run_checker.outputs.run_release_charts == 'true' | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: Publish to Charts Repo | |
uses: cpina/github-action-push-to-another-repository@v1.7.2 | |
env: | |
API_TOKEN_GITHUB: ${{ secrets.CHARTS_REPO_TOKEN }} | |
with: | |
source-directory: 'charts/' | |
target-directory: 'charts/' | |
target-branch: 'main' | |
destination-github-username: 'astriaorg' | |
destination-repository-name: 'charts' | |
user-email: '${{ github.actor }}@users.noreply.github.com' | |
user-name: '${{ github.actor }}' | |
conductor: | |
needs: run_checker | |
if: needs.run_checker.outputs.run_release_services == 'true' | |
uses: ./.github/workflows/reusable-release-cargo.yml | |
with: | |
package-name: 'conductor' | |
display-name: 'Conductor' | |
composer: | |
needs: run_checker | |
if: needs.run_checker.outputs.run_release_services == 'true' | |
uses: ./.github/workflows/reusable-release-cargo.yml | |
with: | |
package-name: 'composer' | |
display-name: 'Composer' | |
sequencer: | |
needs: run_checker | |
if: needs.run_checker.outputs.run_release_services == 'true' | |
uses: ./.github/workflows/reusable-release-cargo.yml | |
with: | |
package-name: 'sequencer' | |
display-name: 'Sequencer' | |
sequencer-relayer: | |
needs: run_checker | |
if: needs.run_checker.outputs.run_release_services == 'true' | |
uses: ./.github/workflows/reusable-release-cargo.yml | |
with: | |
package-name: 'sequencer-relayer' | |
display-name: 'Sequencer Relayer' | |
cli: | |
needs: run_checker | |
if: needs.run_checker.outputs.run_release_services == 'true' | |
uses: ./.github/workflows/reusable-release-cargo.yml | |
with: | |
package-name: 'cli' | |
display-name: 'CLI' | |
release: | |
needs: [proto, conductor, composer, sequencer, sequencer-relayer, cli] | |
if: ${{ always() && !cancelled() }} | |
uses: ./.github/workflows/reusable-success.yml | |
with: | |
success: ${{ !contains(needs.*.result, 'failure') }} |