Skip to content

refactor(well-show): Simplify data fetching by consolidating queries … #139

refactor(well-show): Simplify data fetching by consolidating queries …

refactor(well-show): Simplify data fetching by consolidating queries … #139

Workflow file for this run

name: CD deploy staging to GAE
on:
push:
branches: [ staging ]
jobs:
deploy-dev:
runs-on: ubuntu-latest
environment: staging
steps:
# checkout the repo
- uses: actions/checkout@v4
#build ocotillo
- uses: actions/setup-node@v4
with:
node-version: 22.x
cache: npm
cache-dependency-path: package-lock.json
# authenticate to Google Cloud
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Load PostHog env vars from Secret Manager
env:
GCP_PROJECT_ID: waterdatainitiative-271000
run: |
set -euo pipefail
KEY_SECRET="VITE_PUBLIC_POSTHOG_KEY"
HOST_SECRET="VITE_PUBLIC_POSTHOG_HOST"
VITE_POSTHOG_KEY="$(gcloud secrets versions access latest --secret="$KEY_SECRET" --project="$GCP_PROJECT_ID")"
VITE_POSTHOG_HOST="$(gcloud secrets versions access latest --secret="$HOST_SECRET" --project="$GCP_PROJECT_ID")"
echo "VITE_POSTHOG_KEY=$VITE_POSTHOG_KEY" >> "$GITHUB_ENV"
echo "VITE_POSTHOG_HOST=$VITE_POSTHOG_HOST" >> "$GITHUB_ENV"
- name: Install deps & build
env:
VITE_APP_TITLE: "Ocotillo (Staging)"
VITE_MAPBOX_TOKEN: ${{ secrets.VITE_MAPBOX_TOKEN }}
VITE_BASE_URL: '/'
VITE_AUTHENTIK_CLIENT_ID: ${{ vars.VITE_AUTHENTIK_CLIENT_ID }}
VITE_AUTHENTIK_URL: ${{ vars.VITE_AUTHENTIK_URL }}
VITE_AUTHENTIK_REDIRECT_URI: ${{ vars.VITE_AUTHENTIK_REDIRECT_URI }}
VITE_OCOTILLO_API_URL: ${{ vars.VITE_OCOTILLO_API_URL }}
VITE_POSTHOG_KEY: ${{ env.VITE_POSTHOG_KEY }}
VITE_POSTHOG_HOST: ${{ env.VITE_POSTHOG_HOST }}
run: |
npm ci
npm run build:ci
# deploy to App Engine
- id: deploy
uses: google-github-actions/deploy-appengine@v2
with:
project_id: ${{ secrets.GCP_PROJECT_ID }}
deliverables: app-staging.yaml
promote: true
# Clean up old versions - delete only the oldest version, one created and one destroyed
- name: Clean up oldest version
run: |
OLDEST_VERSION=$(gcloud app versions list --service=ocotillo-staging --project=${{ secrets.GCP_PROJECT_ID }} --format="value(id)" --sort-by="version.createTime" | head -n 1)
if [ ! -z "$OLDEST_VERSION" ]; then
echo "Deleting oldest version: $OLDEST_VERSION"
gcloud app versions delete $OLDEST_VERSION --service=ocotillo-staging --project=${{ secrets.GCP_PROJECT_ID }} --quiet
echo "Deleted oldest version: $OLDEST_VERSION"
else
echo "No versions to delete"
fi
# Use PR author's username as git user name
- name: Set up git user
run: |
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Tag commit
run: |
git tag -a "ocotillodev-deploy-$(date -u +%Y-%m-%d)T$(date -u +%H-%M-%S%z)" -m "ocotillodev deployment: $
(date -u +%Y-%m-%d)T$(date -u +%H:%M:%S%z)"
git push origin --tags