refactor(well-show): Simplify data fetching by consolidating queries … #139
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: 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 |