name: OpenAPI on: push: branches: - 'master' paths: - 'openapi.yaml' - '.github/workflows/docs.yml' pull_request: branches: - '**' paths: - 'openapi.yaml' - '.github/workflows/docs.yml' # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write jobs: lint: name: Lint runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 18 - name: Lint OpenAPI run: npx @redocly/cli lint openapi.yaml deploy: name: Deploy runs-on: ubuntu-latest if: github.ref == 'refs/heads/master' steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 18 - name: Build OpenAPI run: npx @redocly/cli build-docs openapi.yaml --output openapi/index.html --title "Codex API" - name: Build Postman Collection run: npx -y openapi-to-postmanv2 -s openapi.yaml -o openapi/postman.json -p -O folderStrategy=Tags,includeAuthInfoInExample=false - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: openapi - name: Deploy to GitHub Pages uses: actions/deploy-pages@v4