Repository navigation
feat!: rebuild the client as 2.0.0 against API 2.26.0 #4
Workflow file for this run
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: 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 . |