Change Zero version *down* to 0.25.13 #1895
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 Production Zero-Cache AWS SST | |
| on: | |
| push: | |
| branches: [main] | |
| env: | |
| # Setting an environment variable with the value of a configuration variable | |
| ECR_IMAGE_ZERO_CACHE: zero-zbugs | |
| 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.PROD_ZERO_UPSTREAM_DB }} | |
| ZERO_ENABLE_QUERY_PLANNER: 'true' | |
| ZERO_ADMIN_PASSWORD: ${{ secrets.ZERO_ADMIN_PASSWORD }} | |
| ZERO_MUTATE_URL: ${{ vars.PROD_ZERO_PUSH_URL }} | |
| ZERO_QUERY_URL: ${{ vars.PROD_ZERO_PULL_URL }} | |
| ZERO_CVR_DB: ${{ secrets.PROD_ZERO_CVR_DB }} | |
| ZERO_CHANGE_DB: ${{ secrets.PROD_ZERO_CHANGE_DB }} | |
| ZERO_AUTH_JWK: ${{ secrets.PROD_ZERO_AUTH_JWK }} | |
| ZERO_APP_PUBLICATIONS: ${{ vars.PROD_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.rocicorp.dev' | |
| DOMAIN_CERT: ${{ vars.PROD_CERTIFICATE_ARN }} | |
| DATADOG_API_KEY: ${{ secrets.PROD_DATADOG_API_KEY }} | |
| OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.PROD_OTEL_EXPORTER_OTLP_ENDPOINT }} | |
| OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.PROD_OTEL_EXPORTER_OTLP_HEADERS }} | |
| OTEL_RESOURCE_ATTRIBUTES: ${{ vars.PROD_OTEL_RESOURCE_ATTRIBUTES }} | |
| run: | | |
| cd prod/sst | |
| npm install | |
| npx sst deploy --stage production |