Skip to content

Commit

Permalink
chore: release from Github Actions (#8820)
Browse files Browse the repository at this point in the history
  • Loading branch information
spypsy authored Sep 30, 2024
1 parent 048a848 commit 0354706
Show file tree
Hide file tree
Showing 5 changed files with 266 additions and 14 deletions.
5 changes: 1 addition & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,4 @@ workflows:
- barretenberg-docs
- e2e-join
- cli-wallet
<<: *defaults

# Production releases.
- deploy-and-release: *defaults_deploy
<<: *defaults
238 changes: 238 additions & 0 deletions .github/workflows/publish-aztec-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
name: Publish Aztec Packages

on:
workflow_dispatch:
inputs:
tag:
type: string
description: "The tag to release"
required: true
publish:
type: boolean
description: "Whether to publish the release"
required: true

permissions:
# Necessary to upload new release artifacts
contents: write
issues: write

env:
# Add any global environment variables here
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
GIT_COMMIT: ${{ github.sha }}
DEPLOY_TAG: ${{ github.event.inputs.tag }}

jobs:
check-version:
runs-on: ubuntu-latest
steps:
- name: Check if tag is valid
id: check_tag
run: |
TAG=${{ github.event.inputs.tag }}
if [[ "$TAG" == aztec-packages-v* ]]; then
echo "Tag is valid. Proceeding with setup."
else
echo "Invalid tag format. Expected aztec-packages-v*"
exit 1
fi
setup-x86:
needs: check-version
uses: ./.github/workflows/setup-runner.yml
with:
username: ${{ github.actor }}
runner_type: builder-x86
secrets: inherit

setup-arm:
needs: check-version
uses: ./.github/workflows/setup-runner.yml
with:
username: ${{ github.actor }}
runner_type: builder-arm
secrets: inherit

build-aztec-x86:
needs: setup-x86
runs-on: ${{ github.actor }}-x86
steps:
- uses: actions/checkout@v4
with:
ref: "${{ env.GIT_COMMIT }}"
- uses: ./.github/ci-setup-action
with:
concurrency_key: build-aztec-${{ github.actor }}
dockerhub_password: "${{ env.DOCKERHUB_PASSWORD }}"
- name: Build & Push Aztec x86_64
timeout-minutes: 40
run: |
earthly-ci \
--no-output \
--push \
./yarn-project+export-aztec-arch \
--DIST_TAG=${{ env.GIT_COMMIT }} \
--ARCH=x86_64
build-aztec-arm:
needs: setup-arm
runs-on: ${{ github.actor }}-arm
steps:
- uses: actions/checkout@v4
with:
ref: "${{ env.GIT_COMMIT }}"
- uses: ./.github/ci-setup-action
with:
concurrency_key: build-aztec-${{ github.actor }}
dockerhub_password: "${{ env.DOCKERHUB_PASSWORD }}"
- name: Build & Push Aztec arm64
timeout-minutes: 60
run: |
earthly-ci \
--no-output \
--push \
./yarn-project+export-aztec-arch \
--DIST_TAG=${{ env.GIT_COMMIT }} \
--ARCH=arm64
build-nargo-x86:
needs: [setup-x86, build-aztec-x86]
runs-on: ${{ github.actor }}-x86
steps:
- uses: actions/checkout@v4
with:
ref: "${{ env.GIT_COMMIT }}"
- uses: ./.github/ci-setup-action
with:
concurrency_key: build-aztec-nargo-${{ github.actor }}
dockerhub_password: "${{ env.DOCKERHUB_PASSWORD }}"

- name: Build & push aztec nargo image
run: |
earthly-ci --no-output --push ./aztec-nargo+export-aztec-nargo --DIST_TAG=${{ env.GIT_COMMIT }} --ARCH=x86_64
build-nargo-arm:
needs: [setup-arm, build-aztec-arm]
runs-on: ${{ github.actor }}-arm
steps:
- uses: actions/checkout@v4
with:
ref: "${{ env.GIT_COMMIT }}"
- uses: ./.github/ci-setup-action
with:
concurrency_key: build-aztec-nargo-${{ github.actor }}
dockerhub_password: "${{ env.DOCKERHUB_PASSWORD }}"

- name: Build & push aztec nargo image
run: |
earthly-ci --no-output --push ./aztec-nargo+export-aztec-nargo --DIST_TAG=${{ env.GIT_COMMIT }} --ARCH=arm64
build-cli-wallet-x86:
needs: [setup-x86, build-aztec-x86]
runs-on: ${{ github.actor }}-x86
steps:
- uses: actions/checkout@v4
with:
ref: "${{ env.GIT_COMMIT }}"
- uses: ./.github/ci-setup-action
with:
concurrency_key: build-aztec-cli-wallet-${{ github.actor }}
dockerhub_password: "${{ env.DOCKERHUB_PASSWORD }}"

- name: Build & push aztec cli wallet image
run: |
earthly-ci --no-output --push ./yarn-project+export-cli-wallet --DIST_TAG=${{ env.GIT_COMMIT }} --ARCH=x86_64
build-cli-wallet-arm:
needs: [setup-arm, build-aztec-arm]
runs-on: ${{ github.actor }}-arm
steps:
- uses: actions/checkout@v4
with:
ref: "${{ env.GIT_COMMIT }}"
- uses: ./.github/ci-setup-action
with:
concurrency_key: build-aztec-cli-wallet-${{ github.actor }}
dockerhub_password: "${{ env.DOCKERHUB_PASSWORD }}"

- name: Build & push aztec cli wallet image
run: |
earthly-ci --no-output --push ./yarn-project+export-cli-wallet --DIST_TAG=${{ env.GIT_COMMIT }} --ARCH=arm64
publish-manifests:
needs:
[
build-aztec-x86,
build-aztec-arm,
build-nargo-x86,
build-nargo-arm,
build-cli-wallet-x86,
build-cli-wallet-arm,
]
runs-on: ${{ github.actor }}-x86
steps:
- uses: actions/checkout@v4
with:
ref: "${{ env.GIT_COMMIT }}"
- uses: ./.github/ci-setup-action
with:
dockerhub_password: "${{ env.DOCKERHUB_PASSWORD }}"
- name: Publish aztec manifests
run: |
VERSION=${${{ env.DEPLOY_TAG }}#aztec-packages-v}
docker pull aztecprotocol/aztec:${{ env.GIT_COMMIT }}-x86_64
docker pull aztecprotocol/aztec:${{ env.GIT_COMMIT }}-arm64
docker pull aztecprotocol/aztec-nargo:${{ env.GIT_COMMIT }}-x86_64
docker pull aztecprotocol/aztec-nargo:${{ env.GIT_COMMIT }}-arm64
docker pull aztecprotocol/cli-wallet:${{ env.GIT_COMMIT }}-x86_64
docker pull aztecprotocol/cli-wallet:${{ env.GIT_COMMIT }}-arm64
docker manifest create aztecprotocol/aztec:$VERSION \
aztecprotocol/aztec:${{ env.GIT_COMMIT }}-x86_64 \
aztecprotocol/aztec:${{ env.GIT_COMMIT }}-arm64
docker manifest create aztecprotocol/aztec:latest \
aztecprotocol/aztec:${{ env.GIT_COMMIT }}-x86_64 \
aztecprotocol/aztec:${{ env.GIT_COMMIT }}-arm64
docker manifest push aztecprotocol/aztec:$VERSION
docker manifest push aztecprotocol/aztec:latest
docker manifest create aztecprotocol/aztec-nargo:$VERSION \
aztecprotocol/aztec-nargo:${{ env.GIT_COMMIT }}-x86_64 \
aztecprotocol/aztec-nargo:${{ env.GIT_COMMIT }}-arm64
docker manifest create aztecprotocol/aztec-nargo:latest \
aztecprotocol/aztec-nargo:${{ env.GIT_COMMIT }}-x86_64 \
aztecprotocol/aztec-nargo:${{ env.GIT_COMMIT }}-arm64
docker manifest push aztecprotocol/aztec-nargo:$VERSION
docker manifest push aztecprotocol/aztec-nargo:latest
docker manifest create aztecprotocol/cli-wallet:$VERSION \
aztecprotocol/cli-wallet:${{ env.GIT_COMMIT }}-x86_64 \
aztecprotocol/cli-wallet:${{ env.GIT_COMMIT }}-arm64
docker manifest create aztecprotocol/cli-wallet:latest \
aztecprotocol/cli-wallet:${{ env.GIT_COMMIT }}-x86_64 \
aztecprotocol/cli-wallet:${{ env.GIT_COMMIT }}-arm64
docker manifest push aztecprotocol/cli-wallet:$VERSION
docker manifest push aztecprotocol/cli-wallet:latest
publish-npm:
needs: publish-manifests
runs-on: ubuntu-latest
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
ref: ${{ env.GIT_COMMIT }}

- name: Publish NPM packages
run: |
VERSION=${${{ env.DEPLOY_TAG }}#aztec-packages-v}
earthly-ci \
--no-output \
--secret NPM_TOKEN=${{ env.NPM_TOKEN }} \
./yarn-project+publish-npm \
--DIST_TAG=latest \
--VERSION=$VERSION
9 changes: 9 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,15 @@ jobs:
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
command: manifest

- name: Dispatch to publish Aztec packages workflow
uses: benc-uk/workflow-dispatch@v1
if: ${{ steps.release.outputs.tag_name }}
with:
workflow: publish-aztec-packages.yml
ref: master
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
inputs: '{ "tag": "${{ steps.release.outputs.tag_name }}", "publish": true }'

- name: Dispatch to publish BB workflow
uses: benc-uk/workflow-dispatch@v1
if: ${{ steps.release.outputs.tag_name }}
Expand Down
6 changes: 6 additions & 0 deletions yarn-project/Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -282,3 +282,9 @@ prover-client-test:
ARG test
ARG debug=""
RUN cd prover-client && DEBUG=$debug yarn test $test

publish-npm:
FROM +build
ARG DIST_TAG="latest"
ARG VERSION
RUN --secret NPM_TOKEN ./.github/scripts/publish_npm.sh $DIST_TAG $VERSION
22 changes: 12 additions & 10 deletions yarn-project/deploy_npm.sh → yarn-project/publish_npm.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,28 @@
[ -n "${BUILD_SYSTEM_DEBUG:-}" ] && set -x # conditionally trace
set -eu

if [ -z "$COMMIT_TAG" ]; then
echo "No commit tag, not deploying to npm."
exit 0
fi

retry ecr_login
extract_repo yarn-project /usr/src project
cd project/src/yarn-project

echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >.npmrc

echo "Current directory: $(pwd)"
echo "Contents of .npmrc:"
cat .npmrc

# This is to be used with the 'canary' tag for testing, and then 'latest' for making it public
DIST_TAG=${1:-"latest"}
VERSION=$2

DRY_DEPLOY=${DRY_DEPLOY:-0}

if [ -z "$VERSION" ]; then
echo "No version provided, exiting."
exit 1
fi

function deploy_package() {
REPOSITORY=$1
cd $REPOSITORY

PACKAGE_NAME=$(jq -r '.name' package.json)
VERSION=$(extract_tag_version $REPOSITORY false)
echo "Deploying $REPOSITORY $VERSION $DIST_TAG"

# If the commit tag itself has a dist-tag (e.g. v2.1.0-testnet.123), extract the dist-tag.
Expand Down

0 comments on commit 0354706

Please sign in to comment.