diff --git a/.github/workflows/api-lint.yml b/.github/workflows/api-lint.yml new file mode 100644 index 000000000..82c5c92a6 --- /dev/null +++ b/.github/workflows/api-lint.yml @@ -0,0 +1,45 @@ +name: Validate API Spec + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + typescript_api_spec_validation: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + with: + fetch-depth: 1 + + - name: Setup Node.js + uses: actions/setup-node@c2ac33f2c62f978d6c944d9648125a294e56dc0b # v4.0.2 + with: + node-version: 'v20.12.0' + + - name: Install tsp + run: npm install -g @typespec/compiler@0.55.0 + + - name: Install dependencies + run: npm ci + + - name: Install autorest + run: npm install -g autorest@3.7.1 + + - name: Compile tsp + run: tsp compile ./api/redhatopenshift/HcpCluster --warn-as-error + + - name: Generate OpenAPI + run: autorest api/autorest-config.yaml + + - name: Check for Uncommitted Changes + run: | + git diff --exit-code || (echo "::error::Uncommitted changes detected in OpenAPI spec. Please regenerate and commit them." && exit 1) + +