Skip to content

UI refactor: add FAQ, fix responsive layouts and map zooming #521

UI refactor: add FAQ, fix responsive layouts and map zooming

UI refactor: add FAQ, fix responsive layouts and map zooming #521

Workflow file for this run

name: CI
on:
pull_request:
branches: [main]
jobs:
check-branch:
runs-on: ubuntu-latest
timeout-minutes: 2
concurrency:
group: ci-check-branch-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check if the PR's branch is updated
uses: osl-incubator/gh-check-pr-is-updated@1.0.0
with:
remote_branch: origin/main
pr_sha: ${{ github.event.pull_request.head.sha }}
pre-commit:
runs-on: ubuntu-latest
timeout-minutes: 10
defaults:
run:
shell: bash -el {0}
concurrency:
group: ci-pre-commit-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Setup Conda environment
uses: mamba-org/setup-micromamba@v2
with:
environment-file: conda.yaml
cache-environment: true
- name: Install Node dependencies
run: npm ci
- name: Run pre-commit
run: pre-commit run --all-files --verbose
lint-and-test:
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
pull-requests: write
contents: read
concurrency:
group: ci-lint-test-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Run tests with coverage
run: npm run test:coverage
- name: Report Coverage
uses: davelosert/vitest-coverage-report-action@v2
if: always()
- name: Build
run: npm run build
test-backend:
runs-on: ubuntu-latest
timeout-minutes: 10
concurrency:
group: ci-test-backend-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
- name: Install dependencies
run: |
pip install pyyaml requests pytest pytest-cov pytest-mock
- name: Run Python tests with coverage
run: python -m pytest tests/ --cov=scripts --cov-report=term-missing
validate-events:
runs-on: ubuntu-latest
timeout-minutes: 5
concurrency:
group: ci-validate-events-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install PyYAML
run: pip install pyyaml
- name: Backup committed events.json
run: cp src/data/events.json src/data/events.json.committed
- name: Validate and re-generate events.json
run: python scripts/generate_events_json.py
- name: Verify generated JSON matches committed JSON
run: |
if diff -q src/data/events.json src/data/events.json.committed > /dev/null; then
echo "✅ events.json is up to date"
else
echo "❌ events.json is out of sync with events.yaml!"
echo "Please run 'npm run generate' and commit the updated src/data/events.json"
diff src/data/events.json src/data/events.json.committed
exit 1
fi
semantic-pr-title:
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- name: Semantic Release PR Title Check
uses: osl-incubator/semantic-release-pr-title-check@v1.4.1
with:
convention-name: conventionalcommits