Skip to content

chore(deps): Bump peter-evans/create-pull-request from 7 to 8 #88

chore(deps): Bump peter-evans/create-pull-request from 7 to 8

chore(deps): Bump peter-evans/create-pull-request from 7 to 8 #88

name: Cross-platform scaffold smoke
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
# Monday 06:00 UTC (CNA parity)
- cron: "0 6 * * 1"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: scaffold-cross-platform-${{ github.ref }}
cancel-in-progress: true
env:
# Full registry URLs: published PyPI 0.1.0 does not resolve catalog slugs.
# After create-awesome-python-app>=0.2.0 ships resolve_catalog_spec, slugs also work.
CPA_TEMPLATE_FASTAPI: https://github.com/Create-Python-App/cpa-templates?subdir=templates/fastapi-starter
CPA_ADDON_DOCKER: https://github.com/Create-Python-App/cpa-templates?subdir=extensions/fastapi-docker
CPA_ADDON_GITHUB: https://github.com/Create-Python-App/cpa-templates?subdir=extensions/all-github-setup
jobs:
scaffold:
name: ${{ matrix.os }} / fastapi-starter
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: astral-sh/setup-uv@v7
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Scaffold FastAPI starter from PyPI CLI
env:
TARGET: ${{ runner.temp }}/cpa-fastapi-starter
shell: bash
run: |
set -euo pipefail
# Options before project_directory — Typer treats a leading path as the
# positional arg; trailing options after a bare path can be misparsed.
uvx create-awesome-python-app@latest \
--template "$CPA_TEMPLATE_FASTAPI" \
--no-interactive \
--no-install \
--force \
"$TARGET"
- name: Verify scaffolded project
env:
TARGET: ${{ runner.temp }}/cpa-fastapi-starter
shell: bash
run: |
set -euo pipefail
python - <<'PY'
import os
from pathlib import Path
target = Path(os.environ["TARGET"])
required = [
target / "pyproject.toml",
target / "app" / "main.py",
target / "README.md",
]
missing = [str(path) for path in required if not path.exists()]
if missing:
raise SystemExit(f"Missing scaffolded files: {missing}")
print(f"Verified scaffold at {target}")
PY
addon-smoke:
name: ${{ matrix.os }} / fastapi-starter + docker + github-setup
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: astral-sh/setup-uv@v7
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Scaffold with compatible addon combination
env:
TARGET: ${{ runner.temp }}/cpa-fastapi-addons
shell: bash
run: |
set -euo pipefail
uvx create-awesome-python-app@latest \
--template "$CPA_TEMPLATE_FASTAPI" \
--addons "$CPA_ADDON_DOCKER" \
--addons "$CPA_ADDON_GITHUB" \
--no-interactive \
--no-install \
--force \
"$TARGET"
- name: Verify extension files
env:
TARGET: ${{ runner.temp }}/cpa-fastapi-addons
shell: bash
run: |
set -euo pipefail
test -f "$TARGET/Dockerfile"
test -f "$TARGET/.dockerignore"
test -d "$TARGET/.github"