name: Check OpenAPI on: workflow_dispatch: pull_request: paths: - 'open-api/**' - 'mobile/lib/utils/openapi_patching.dart' - '.github/workflows/check-openapi.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: {} jobs: check-openapi: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - name: Check for breaking API changes uses: oasdiff/oasdiff-action/breaking@024f6c399f9a21ada1addb0f9a36ce1bfac995f1 # v0.1.6 with: base: https://raw.githubusercontent.com/${{ github.repository }}/main/open-api/immich-openapi-specs.json revision: open-api/immich-openapi-specs.json fail-on: ERR review: false check-mobile-patches: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - name: Setup Mise uses: immich-app/devtools/actions/use-mise@3bca63ca3c15020293b36b51737a3ee2c773340b # use-mise-action-v3.1.0 with: github_token: ${{ github.token }} working_directory: ./mobile - name: Install dependencies run: mise //mobile:install:ci - name: Fetch base spec from main run: | curl -fsSL \ "https://raw.githubusercontent.com/${{ github.repository }}/main/open-api/immich-openapi-specs.json" \ -o /tmp/base-spec.json - name: Check newly-required fields have a backward-compat patch working-directory: ./mobile env: OPENAPI_BASE_SPEC: /tmp/base-spec.json OPENAPI_REVISION_SPEC: ../open-api/immich-openapi-specs.json run: flutter test test/openapi_patches_coverage.dart