diff --git a/.github/workflows/client-dart.yml b/.github/workflows/client-dart.yml index bb020d1..a9d8e86 100644 --- a/.github/workflows/client-dart.yml +++ b/.github/workflows/client-dart.yml @@ -31,6 +31,7 @@ on: jobs: detect-changes: runs-on: ubuntu-latest + timeout-minutes: 3 outputs: should_regenerate: ${{ steps.check.outputs.should_regenerate }} should_version_bump: ${{ steps.check.outputs.should_version_bump }} @@ -108,6 +109,7 @@ jobs: regenerate: runs-on: ubuntu-latest + timeout-minutes: 10 needs: detect-changes if: needs.detect-changes.outputs.should_regenerate == 'true' steps: @@ -153,6 +155,7 @@ jobs: version-bump: runs-on: ubuntu-latest + timeout-minutes: 3 needs: [detect-changes, regenerate] if: always() && needs.detect-changes.outputs.should_version_bump == 'true' && needs.detect-changes.outputs.is_merged_pr == 'true' && (needs.regenerate.result == 'success' || needs.regenerate.result == 'skipped') steps: diff --git a/.github/workflows/client-kotlin.yml b/.github/workflows/client-kotlin.yml index eecff33..a81c794 100644 --- a/.github/workflows/client-kotlin.yml +++ b/.github/workflows/client-kotlin.yml @@ -27,6 +27,7 @@ on: jobs: detect-changes: runs-on: ubuntu-latest + timeout-minutes: 3 outputs: should_regenerate: ${{ steps.check.outputs.should_regenerate }} should_version_bump: ${{ steps.check.outputs.should_version_bump }} @@ -104,6 +105,7 @@ jobs: regenerate: runs-on: ubuntu-latest + timeout-minutes: 10 needs: detect-changes if: needs.detect-changes.outputs.should_regenerate == 'true' steps: @@ -147,6 +149,7 @@ jobs: version-bump: runs-on: ubuntu-latest + timeout-minutes: 3 needs: [detect-changes, regenerate] if: always() && needs.detect-changes.outputs.should_version_bump == 'true' && needs.detect-changes.outputs.is_merged_pr == 'true' && (needs.regenerate.result == 'success' || needs.regenerate.result == 'skipped') steps: diff --git a/.github/workflows/client-python.yml b/.github/workflows/client-python.yml index c9eecee..2ef4cad 100644 --- a/.github/workflows/client-python.yml +++ b/.github/workflows/client-python.yml @@ -31,6 +31,7 @@ on: jobs: detect-changes: runs-on: ubuntu-latest + timeout-minutes: 3 outputs: should_regenerate: ${{ steps.check.outputs.should_regenerate }} should_version_bump: ${{ steps.check.outputs.should_version_bump }} @@ -108,6 +109,7 @@ jobs: regenerate: runs-on: ubuntu-latest + timeout-minutes: 10 needs: detect-changes if: needs.detect-changes.outputs.should_regenerate == 'true' steps: @@ -153,6 +155,7 @@ jobs: version-bump: runs-on: ubuntu-latest + timeout-minutes: 3 needs: [detect-changes, regenerate] if: always() && needs.detect-changes.outputs.should_version_bump == 'true' && needs.detect-changes.outputs.is_merged_pr == 'true' && (needs.regenerate.result == 'success' || needs.regenerate.result == 'skipped') steps: diff --git a/.github/workflows/client-swift.yml b/.github/workflows/client-swift.yml index b9d73cc..709895d 100644 --- a/.github/workflows/client-swift.yml +++ b/.github/workflows/client-swift.yml @@ -29,6 +29,7 @@ on: jobs: detect-changes: runs-on: ubuntu-latest + timeout-minutes: 3 outputs: should_regenerate: ${{ steps.check.outputs.should_regenerate }} should_version_bump: ${{ steps.check.outputs.should_version_bump }} @@ -106,6 +107,7 @@ jobs: regenerate: runs-on: ubuntu-latest + timeout-minutes: 10 needs: detect-changes if: needs.detect-changes.outputs.should_regenerate == 'true' steps: @@ -150,6 +152,7 @@ jobs: version-bump: runs-on: ubuntu-latest + timeout-minutes: 3 needs: [detect-changes, regenerate] if: always() && needs.detect-changes.outputs.should_version_bump == 'true' && needs.detect-changes.outputs.is_merged_pr == 'true' && (needs.regenerate.result == 'success' || needs.regenerate.result == 'skipped') steps: diff --git a/.github/workflows/client-typescript.yml b/.github/workflows/client-typescript.yml index c0b256c..9fd8b99 100644 --- a/.github/workflows/client-typescript.yml +++ b/.github/workflows/client-typescript.yml @@ -31,6 +31,7 @@ on: jobs: detect-changes: runs-on: ubuntu-latest + timeout-minutes: 3 outputs: should_regenerate: ${{ steps.check.outputs.should_regenerate }} should_version_bump: ${{ steps.check.outputs.should_version_bump }} @@ -108,6 +109,7 @@ jobs: regenerate: runs-on: ubuntu-latest + timeout-minutes: 10 needs: detect-changes if: needs.detect-changes.outputs.should_regenerate == 'true' steps: @@ -153,6 +155,7 @@ jobs: version-bump: runs-on: ubuntu-latest + timeout-minutes: 3 needs: [detect-changes, regenerate] if: always() && needs.detect-changes.outputs.should_version_bump == 'true' && needs.detect-changes.outputs.is_merged_pr == 'true' && (needs.regenerate.result == 'success' || needs.regenerate.result == 'skipped') steps: diff --git a/.github/workflows/publish-dart-ci.yml b/.github/workflows/publish-dart-ci.yml index 7011050..773e29f 100644 --- a/.github/workflows/publish-dart-ci.yml +++ b/.github/workflows/publish-dart-ci.yml @@ -8,6 +8,7 @@ on: jobs: publish-dart-package: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - name: "Checkout" uses: actions/checkout@v4 diff --git a/.github/workflows/publish-npm-ci.yml b/.github/workflows/publish-npm-ci.yml index ad194a1..e45cdb0 100644 --- a/.github/workflows/publish-npm-ci.yml +++ b/.github/workflows/publish-npm-ci.yml @@ -8,6 +8,7 @@ on: jobs: publish-npm-package: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 diff --git a/.github/workflows/publish-python-ci.yml b/.github/workflows/publish-python-ci.yml index c170a92..8bef79d 100644 --- a/.github/workflows/publish-python-ci.yml +++ b/.github/workflows/publish-python-ci.yml @@ -8,8 +8,12 @@ on: jobs: publish-python-package: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v4 + - name: Clean dist directory + working-directory: clients/cardscan-python + run: rm -rf dist/ - name: Build and publish to pypi uses: JRubics/poetry-publish@v2.0 with: diff --git a/.github/workflows/test-api-clients.yml b/.github/workflows/test-api-clients.yml index 120affd..d747740 100644 --- a/.github/workflows/test-api-clients.yml +++ b/.github/workflows/test-api-clients.yml @@ -13,6 +13,7 @@ jobs: test-python-client: name: Test Python Client runs-on: ubuntu-latest + timeout-minutes: 10 outputs: PYTHON_PASSED: ${{ steps.test_results.outputs.PYTHON_PASSED }} PYTHON_FAILED: ${{ steps.test_results.outputs.PYTHON_FAILED }} @@ -58,6 +59,7 @@ jobs: test-python-sandbox: name: Test Python Client (Sandbox Integration) runs-on: ubuntu-latest + timeout-minutes: 15 if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'schedule' steps: @@ -89,6 +91,7 @@ jobs: test-typescript-client: name: Test TypeScript Client runs-on: ubuntu-latest + timeout-minutes: 8 outputs: TS_PASSED: ${{ steps.test_results.outputs.TS_PASSED }} TS_FAILED: ${{ steps.test_results.outputs.TS_FAILED }} @@ -130,6 +133,7 @@ jobs: test-typescript-sandbox: name: Test TypeScript Client (Sandbox Integration) runs-on: ubuntu-latest + timeout-minutes: 15 if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'schedule' steps: @@ -158,6 +162,7 @@ jobs: test-kotlin-client: name: Test Kotlin Client runs-on: ubuntu-latest + timeout-minutes: 10 outputs: KOTLIN_PASSED: ${{ steps.test_results.outputs.KOTLIN_PASSED }} KOTLIN_FAILED: ${{ steps.test_results.outputs.KOTLIN_FAILED }} @@ -194,6 +199,7 @@ jobs: test-dart-client: name: Test Dart Client runs-on: ubuntu-latest + timeout-minutes: 10 outputs: DART_PASSED: ${{ steps.test_results.outputs.DART_PASSED }} DART_FAILED: ${{ steps.test_results.outputs.DART_FAILED }} @@ -249,6 +255,7 @@ jobs: test-swift-client: name: Test Swift Client runs-on: macos-latest + timeout-minutes: 12 outputs: SWIFT_PASSED: ${{ steps.test_results.outputs.SWIFT_PASSED }} SWIFT_FAILED: ${{ steps.test_results.outputs.SWIFT_FAILED }} @@ -277,6 +284,7 @@ jobs: test-kotlin-sandbox: name: Test Kotlin Client (Sandbox Integration) runs-on: ubuntu-latest + timeout-minutes: 15 if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'schedule' steps: @@ -305,6 +313,7 @@ jobs: test-dart-sandbox: name: Test Dart Client (Sandbox Integration) runs-on: ubuntu-latest + timeout-minutes: 15 if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'schedule' steps: @@ -333,6 +342,7 @@ jobs: test-swift-sandbox: name: Test Swift Client (Sandbox Integration) runs-on: macos-latest + timeout-minutes: 18 if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'schedule' steps: @@ -351,6 +361,7 @@ jobs: test-fixtures-consistency: name: Validate Test Fixtures runs-on: ubuntu-latest + timeout-minutes: 5 steps: - name: Checkout code @@ -405,6 +416,7 @@ jobs: summary: name: Test Summary runs-on: ubuntu-latest + timeout-minutes: 3 needs: [test-python-client, test-typescript-client, test-kotlin-client, test-dart-client, test-swift-client, test-fixtures-consistency] if: always() diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index a0f2633..603c03f 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -7,6 +7,7 @@ on: jobs: check_changes: runs-on: ubuntu-latest + timeout-minutes: 3 outputs: oas_changed: ${{ steps.filter.outputs.oas }} ts_changed: ${{ steps.filter.outputs.ts }} @@ -29,6 +30,7 @@ jobs: - 'openapi.yaml' build-test-ts: runs-on: ubuntu-latest + timeout-minutes: 8 needs: check_changes if: ${{ needs.check_changes.outputs.ts_changed == 'true' || needs.check_changes.outputs.oas_changed == 'true' }} steps: @@ -46,6 +48,7 @@ jobs: build-test-python: runs-on: ubuntu-latest + timeout-minutes: 10 needs: check_changes if: ${{ needs.check_changes.outputs.py_changed == 'true' || needs.check_changes.outputs.oas_changed == 'true' }} steps: @@ -66,6 +69,7 @@ jobs: run: poetry build set-check-run: runs-on: ubuntu-latest + timeout-minutes: 3 if: ${{ needs.check_changes.outputs.py_changed == 'true' }} steps: - name: Create a check run for build-test-python diff --git a/clients/cardscan-python/.github/workflows/python.yml b/clients/cardscan-python/.github/workflows/python.yml index b39546d..f7c78e6 100644 --- a/clients/cardscan-python/.github/workflows/python.yml +++ b/clients/cardscan-python/.github/workflows/python.yml @@ -9,8 +9,8 @@ on: [push, pull_request] jobs: build: - runs-on: ubuntu-latest + timeout-minutes: 8 strategy: matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]