Skip to content

Add Google Search Console verification TXT [skip release] (#14) #52

Add Google Search Console verification TXT [skip release] (#14)

Add Google Search Console verification TXT [skip release] (#14) #52

Workflow file for this run

name: ci
on:
pull_request:
push:
branches: [main]
# Every job only reads the repo (checkout, install, build, lint, test, cdk synth);
# none write, release, or assume AWS. Pin the default GITHUB_TOKEN to read-only.
permissions:
contents: read
jobs:
web:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
with:
version: 10
- uses: actions/setup-node@v6
with:
node-version: lts/*
cache: pnpm
cache-dependency-path: web/pnpm-lock.yaml
- run: pnpm install --frozen-lockfile
working-directory: web
- run: pnpm exec biome check src
working-directory: web
- run: pnpm run build
working-directory: web
rust:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: crates
- run: cargo fmt --manifest-path crates/Cargo.toml --all -- --check
- run: cargo clippy --manifest-path crates/Cargo.toml --all-features -- -D warnings
# web/src/generated/{weather,geojson}.ts are generated (from
# contract.rs and the typed-geojson crate) and biome-formatted
# ('just build types'); rerun the pipeline and fail on drift
- uses: pnpm/action-setup@v6
with:
version: 10
- uses: actions/setup-node@v6
with:
node-version: lts/*
cache: pnpm
cache-dependency-path: web/pnpm-lock.yaml
- run: pnpm install --frozen-lockfile
working-directory: web
- run: cargo test --manifest-path crates/Cargo.toml -p weather-ingest --features ts
- run: pnpm exec biome format --write src/generated/
working-directory: web
- run: git diff --exit-code web/src/generated
cdk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
# synth compiles weather-ingest via cargo-lambda-cdk and stages the
# prebuilt martin zip, so this needs the Rust toolchain, cargo-lambda,
# and the martin binary — but no AWS creds: the stack is env-agnostic
# (no fromLookup; ARNs and the hosted-zone id are pinned).
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: crates
- name: Install cargo-lambda
run: pip install cargo-lambda
- name: Build martin lambda zip
run: scripts/build-martin-lambda.sh build/martin-lambda.zip
- uses: pnpm/action-setup@v6
with:
version: 10
- uses: actions/setup-node@v6
with:
node-version: lts/*
cache: pnpm
cache-dependency-path: cdk/pnpm-lock.yaml
# tsx synth transpiles without type-checking, so tsc --noEmit guards
# the types; synth then exercises the constructs + RustFunction build.
- name: typecheck + synth
working-directory: cdk
run: |
pnpm install --frozen-lockfile
pnpm run typecheck
pnpm exec cdk synth --quiet