Skip to content

chore(main): release 3.8.0 #90

chore(main): release 3.8.0

chore(main): release 3.8.0 #90

Workflow file for this run

name: Deploy Production Environments
# Amends the open release-please PR: copy `sha-*` image tags from staging (`*-s`) into
# production yamls on whatever is currently on that branch, then disable staging indexers
# when prod matches (always true after a verbatim promote).
#
# GitHub deployment environments are recorded in record-deployment-environments.yaml
# when this lands on main — not when committing to the release-please branch.
on:
push:
branches:
- "release-please--**"
concurrency:
group: deploy-prod-release-please-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write
jobs:
promote-api-v3-main:
runs-on: ubuntu-latest
steps:
- name: Create GitHub App token
id: app-token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf
with:
app-id: ${{ secrets.DEPLOYMENT_APP_ID }}
private-key: ${{ secrets.DEPLOYMENT_APP_PRIVATE_KEY }}
- name: Checkout release-please branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
token: ${{ steps.app-token.outputs.token }}
ref: ${{ github.ref }}
- name: Promote mainnet (main-s → main)
run: |
set -euo pipefail
staging="environments/main-s.yaml"
prod="environments/main.yaml"
idx="$(yq '.indexer.image.tag' "$staging")"
qry="$(yq '.query.image.tag' "$staging")"
export IDX_TAG="$idx" QRY_TAG="$qry"
yq -i '.indexer.image.tag = strenv(IDX_TAG)' "$prod"
yq -i '.query.image.tag = strenv(QRY_TAG)' "$prod"
prod_idx="$(yq '.indexer.image.tag' "$prod")"
if [ "$idx" = "$prod_idx" ]; then
yq -i '.indexer.enabled = false' "$staging"
fi
- name: Commit and push (mainnet)
env:
GIT_AUTHOR_NAME: api-gitops[bot]
GIT_AUTHOR_EMAIL: ${{ secrets.DEPLOYMENT_APP_ID }}+api-gitops[bot]@users.noreply.github.com
GIT_COMMITTER_NAME: api-gitops[bot]
GIT_COMMITTER_EMAIL: ${{ secrets.DEPLOYMENT_APP_ID }}+api-gitops[bot]@users.noreply.github.com
run: |
set -euo pipefail
git add environments/main.yaml environments/main-s.yaml
if git diff --staged --quiet; then
echo "No mainnet env changes to commit."
exit 0
fi
git commit -m "chore(cd): promote api-v3-main from staging yamls"
git push origin "HEAD:${{ github.ref_name }}"
promote-api-v3-test:
needs: promote-api-v3-main
runs-on: ubuntu-latest
steps:
- name: Create GitHub App token
id: app-token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf
with:
app-id: ${{ secrets.DEPLOYMENT_APP_ID }}
private-key: ${{ secrets.DEPLOYMENT_APP_PRIVATE_KEY }}
- name: Checkout release-please branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
token: ${{ steps.app-token.outputs.token }}
ref: ${{ github.ref }}
- name: Pull latest (includes mainnet promotion commit)
run: git pull origin "${{ github.ref_name }}"
- name: Promote testnet (test-s → test)
run: |
set -euo pipefail
staging="environments/test-s.yaml"
prod="environments/test.yaml"
idx="$(yq '.indexer.image.tag' "$staging")"
qry="$(yq '.query.image.tag' "$staging")"
export IDX_TAG="$idx" QRY_TAG="$qry"
yq -i '.indexer.image.tag = strenv(IDX_TAG)' "$prod"
yq -i '.query.image.tag = strenv(QRY_TAG)' "$prod"
prod_idx="$(yq '.indexer.image.tag' "$prod")"
if [ "$idx" = "$prod_idx" ]; then
yq -i '.indexer.enabled = false' "$staging"
fi
- name: Commit and push (testnet)
env:
GIT_AUTHOR_NAME: api-gitops[bot]
GIT_AUTHOR_EMAIL: ${{ secrets.DEPLOYMENT_APP_ID }}+api-gitops[bot]@users.noreply.github.com
GIT_COMMITTER_NAME: api-gitops[bot]
GIT_COMMITTER_EMAIL: ${{ secrets.DEPLOYMENT_APP_ID }}+api-gitops[bot]@users.noreply.github.com
run: |
set -euo pipefail
git add environments/test.yaml environments/test-s.yaml
if git diff --staged --quiet; then
echo "No testnet env changes to commit."
exit 0
fi
git commit -m "chore(cd): promote api-v3-test from staging yamls"
git push origin "HEAD:${{ github.ref_name }}"