Change Zero version *down* to 0.25.13 #1638
This file contains hidden or 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: Build and Deploy Sandbox Zero-Cache AWS SST | |
| on: | |
| push: | |
| branches: [sandbox] | |
| env: | |
| # Setting an environment variable with the value of a configuration variable | |
| ECR_IMAGE_ZERO_CACHE: zero-zbugs-sandbox | |
| AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }} | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22.x | |
| cache: 'npm' | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@v2 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: ${{ vars.AWS_DEFAULT_REGION }} | |
| - name: Set up QEMU for amd64 | |
| run: | | |
| docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
| if: runner.os == 'Linux' | |
| - name: Set up Docker for amd64 | |
| uses: docker/setup-qemu-action@v2 | |
| with: | |
| platforms: linux/amd64 | |
| - name: Set up Docker | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to Amazon ECR | |
| run: | | |
| aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com | |
| - name: Install dependencies | |
| run: | | |
| npm run build-ci | |
| - name: Resolve Zero protocol versions | |
| run: | | |
| node --experimental-strip-types -e " | |
| import {PROTOCOL_VERSION, MIN_SERVER_SUPPORTED_SYNC_PROTOCOL} from './packages/zero-protocol/src/protocol-version.ts'; | |
| console.log('ZERO_SYNC_PROTOCOL_VERSION=' + PROTOCOL_VERSION); | |
| console.log('ZERO_MIN_SUPPORTED_SYNC_PROTOCOL_VERSION=' + MIN_SERVER_SUPPORTED_SYNC_PROTOCOL); | |
| " >> "$GITHUB_ENV" | |
| - name: Get Git SHA | |
| id: git-sha | |
| run: echo "SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV | |
| - name: Create package tarball | |
| run: | | |
| cd packages/zero | |
| npm pack | |
| ZERO_TARBALL="$(ls rocicorp-zero-*.tgz | xargs -- basename -s .tgz)+${{ env.SHA }}.tgz" | |
| mv rocicorp-zero-*.tgz ./pkgs/$ZERO_TARBALL | |
| echo "ZERO_VERSION=$ZERO_TARBALL" >> $GITHUB_ENV | |
| - name: Build and push Docker image | |
| run: | | |
| cd packages/zero | |
| docker buildx create --use | |
| docker buildx inspect --bootstrap | |
| docker buildx build --platform linux/amd64 --build-arg ZERO_VERSION=${{ env.ZERO_VERSION }} --build-arg ZERO_SYNC_PROTOCOL_VERSION=${{ env.ZERO_SYNC_PROTOCOL_VERSION }} --build-arg ZERO_MIN_SUPPORTED_SYNC_PROTOCOL_VERSION=${{ env.ZERO_MIN_SUPPORTED_SYNC_PROTOCOL_VERSION }} -t ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$ECR_IMAGE_ZERO_CACHE:${{ env.SHA }} -f ./Dockerfile --push . | |
| - name: Deploy SST app | |
| env: | |
| ZERO_UPSTREAM_DB: ${{ secrets.SANDBOX_ZERO_UPSTREAM_DB }} | |
| ZERO_ENABLE_QUERY_PLANNER: 'true' | |
| ZERO_MUTATE_URL: ${{ vars.SANDBOX_ZERO_PUSH_URL }} | |
| ZERO_QUERY_URL: ${{ vars.SANDBOX_ZERO_PULL_URL }} | |
| ZERO_CVR_DB: ${{ secrets.SANDBOX_ZERO_CVR_DB }} | |
| ZERO_CHANGE_DB: ${{ secrets.SANDBOX_ZERO_CHANGE_DB }} | |
| ZERO_AUTH_JWK: ${{ secrets.SANDBOX_ZERO_AUTH_JWK }} | |
| ZERO_APP_PUBLICATIONS: ${{ vars.SANDBOX_ZERO_APP_PUBLICATIONS }} | |
| AWS_REGION: ${{ vars.AWS_DEFAULT_REGION }} | |
| ZERO_IMAGE_URL: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ vars.AWS_DEFAULT_REGION }}.amazonaws.com/${{ env.ECR_IMAGE_ZERO_CACHE }}:${{ env.SHA }} | |
| DOMAIN_NAME: 'zbugs-sync-sandbox.rocicorp.dev' | |
| DOMAIN_CERT: ${{ vars.SANDBOX_CERTIFICATE_ARN }} | |
| DATADOG_API_KEY: ${{ secrets.SANDBOX_DATADOG_API_KEY }} | |
| ZERO_ADMIN_PASSWORD: ${{ secrets.ZERO_ADMIN_PASSWORD }} | |
| run: | | |
| cd prod/sst | |
| # The permissions.deployer function's package.json is configured to install | |
| # "@rocicorp/zero" from "file:rocicorp-zero.tgz". This allows us to deploy | |
| # permissions with the same code that the view-syncer is running. | |
| cp ../../packages/zero/pkgs/${{ env.ZERO_VERSION }} ./rocicorp-zero.tgz | |
| npm install | |
| npx sst deploy --stage sandbox |