Skip to content
This repository was archived by the owner on Jan 27, 2026. It is now read-only.

chore: release v0.3.11 #39

chore: release v0.3.11

chore: release v0.3.11 #39

Workflow file for this run

name: Production Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
discussions: write
packages: write
jobs:
build-and-release:
name: Build and Create Production Release
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get version from tag
id: get_version
run: |
# Get the tag that triggered this workflow
TAG_NAME="${{ github.ref_name }}"
VERSION="${TAG_NAME#v}" # Remove 'v' prefix
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "tag_name=${TAG_NAME}" >> $GITHUB_OUTPUT
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Build all workspace members
env:
WORKER_RPC_URL: https://sepolia.base.org
run: |
export CARGO_BUILD_JOBS=$(nproc)
cargo build --release --workspace --features testnet
- name: Prepare binaries
run: |
mkdir -p release-artifacts
for binary in worker validator orchestrator discovery; do
if [ -f "target/release/$binary" ]; then
cp "target/release/$binary" "release-artifacts/$binary-linux-x86_64"
fi
done
- name: Generate checksums
run: |
cd release-artifacts
for file in *-linux-x86_64; do
if [ -f "$file" ]; then
sha256sum "$file" | cut -d ' ' -f 1 > "${file}.checksum"
fi
done
cd ..
- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.get_version.outputs.tag_name }}
name: Release ${{ steps.get_version.outputs.tag_name }}
body: |
🚀 Production Release ${{ steps.get_version.outputs.tag_name }}
⚠️ Currently using testnet configuration
Platform:
- Linux x86_64
Components:
- Worker
- Validator
- Orchestrator
- Discovery service
SHA256 checksums are provided for each binary.
## Installation
Download the appropriate binary for your system and verify the checksum.
```bash
# Verify checksum (example for worker)
sha256sum -c worker-linux-x86_64.checksum
```
## Changes
See CHANGELOG.md for detailed changes in this release.
files: release-artifacts/*
prerelease: false
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Google Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- name: Configure Docker for Artifact Registry
run: |
gcloud auth configure-docker us-east1-docker.pkg.dev
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Docker metadata
id: meta
run: |
REPO_LOWER=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
echo "repo_lower=${REPO_LOWER}" >> $GITHUB_OUTPUT
- name: Build and push Discovery image
uses: docker/build-push-action@v4
with:
context: .
file: ./crates/discovery/Dockerfile
push: true
tags: |
ghcr.io/${{ steps.meta.outputs.repo_lower }}/discovery:latest
ghcr.io/${{ steps.meta.outputs.repo_lower }}/discovery:${{ steps.get_version.outputs.tag_name }}
us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/prime-protocol/discovery:latest
us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/prime-protocol/discovery:${{ steps.get_version.outputs.tag_name }}
- name: Build and push Validator image
uses: docker/build-push-action@v4
with:
context: .
file: ./crates/validator/Dockerfile
push: true
tags: |
ghcr.io/${{ steps.meta.outputs.repo_lower }}/validator:latest
ghcr.io/${{ steps.meta.outputs.repo_lower }}/validator:${{ steps.get_version.outputs.tag_name }}
us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/prime-protocol/validator:latest
us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/prime-protocol/validator:${{ steps.get_version.outputs.tag_name }}
- name: Build and push Orchestrator image
uses: docker/build-push-action@v4
with:
context: .
file: ./crates/orchestrator/Dockerfile
push: true
tags: |
ghcr.io/${{ steps.meta.outputs.repo_lower }}/orchestrator:latest
ghcr.io/${{ steps.meta.outputs.repo_lower }}/orchestrator:${{ steps.get_version.outputs.tag_name }}
us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/prime-protocol/orchestrator:latest
us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/prime-protocol/orchestrator:${{ steps.get_version.outputs.tag_name }}