Skip to content

feat!: rebuild the client as 2.0.0 against API 2.26.0 #4

feat!: rebuild the client as 2.0.0 against API 2.26.0

feat!: rebuild the client as 2.0.0 against API 2.26.0 #4

Workflow file for this run

name: CI
# Uncredentialed checks only. The production smoke test holds @tests.flat.io credentials and runs
# in GitLab, reporting back as a required commit status, so those secrets never reach a public log
# (FR-007g, FR-007h).
on:
pull_request:
push:
branches: [master, main]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: build (python ${{ matrix.python }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python: ['3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
- name: Import the installed package
# `--with .` installs this package into a throwaway environment, so this exercises the
# path a user takes and proves the dependency list in pyproject.toml is complete. Run
# from RUNNER_TEMP, or the import would resolve to the source directory instead of what
# was installed.
run: cd "$RUNNER_TEMP" && uv run --no-project --python ${{ matrix.python }} --with "$GITHUB_WORKSPACE" python -c "import flat_api; print(flat_api.__version__)"
- name: Compile every module
run: uv run --no-project --python ${{ matrix.python }} python -m compileall -q flat_api
checks:
name: coverage, leak, docs, determinism, idempotency
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: FlatIO/api-reference
ref: ${{ vars.SPEC_REF || 'v2.26.0' }}
path: .api-reference
- uses: astral-sh/setup-uv@v5
- name: Fetch the pipeline checker
run: |
git clone --depth 1 https://${{ secrets.GITLAB_READ_TOKEN }}@git.flat.io/flat/api-client-gen.git .pipeline
- name: Validate the manifest
run: cd .pipeline && uv run sdk-validate-manifest ../.sdkgen.yaml
- name: The specification must not contain a shape generators mishandle
run: cd .pipeline && uv run sdk-lint-spec --spec ../.api-reference/spec/openapi.yaml
- name: Coverage and internal-leak (FR-001, FR-002)
run: cd .pipeline && uv run sdk-check --spec ../.api-reference/spec/openapi.yaml --inventory ../OPERATIONS.json
- name: Documentation coverage (FR-004)
run: cd .pipeline && uv run sdk-check-docs --spec ../.api-reference/spec/openapi.yaml --inventory ../OPERATIONS.json
- name: Determinism (FR-024)
run: .pipeline/checker/check_determinism.sh . .api-reference/spec/openapi.yaml
- name: Idempotency (FR-025)
run: .pipeline/checker/check_idempotency.sh .