feat: implement scorecard-classic command #4149
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: Smoke tests | |
| permissions: | |
| contents: read | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| env: | |
| CI: true | |
| REDOCLY_TELEMETRY: off | |
| jobs: | |
| prepare-smoke: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Prepare Smoke | |
| run: bash ./tests/smoke/basic/prepare-smoke.sh | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| run-smoke--npm--node-24: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 24 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run" | |
| run-smoke--npm--node-24--redoc: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 24 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redoc redocly-cli.tgz" "npm run" | |
| run-smoke--yarn--node-24: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 24 | |
| - name: Clear Yarn Cache | |
| run: yarn cache clean | |
| - run: | | |
| for i in {1..2}; do # workaround for yarn cache issue | |
| sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn add ./redocly-cli.tgz" "yarn" && break | |
| done | |
| run-smoke--yarn--node-24--redoc: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 24 | |
| - name: Clear Yarn Cache | |
| run: yarn cache clean | |
| - run: | | |
| for i in {1..2}; do # workaround for yarn cache issue | |
| sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn add redoc ./redocly-cli.tgz" "yarn" && break | |
| done | |
| run-smoke--pnpm--node-24: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 24 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "pnpm add ./redocly-cli.tgz" "pnpm run" | |
| # Skipped due to a known Windows + NodeJS v24 issue: https://github.com/nodejs/node/issues/56645 | |
| # run-smoke--npm--node-24--windows: | |
| # needs: prepare-smoke | |
| # runs-on: windows-latest | |
| # steps: | |
| # - uses: actions/cache@v3 | |
| # with: | |
| # path: tests/smoke/basic/ | |
| # key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| # enableCrossOsArchive: true | |
| # - uses: actions/setup-node@v3 | |
| # with: | |
| # node-version: 24 | |
| # - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run" | |
| # run-smoke--yarn--node-24--windows: | |
| # needs: prepare-smoke | |
| # runs-on: windows-latest | |
| # steps: | |
| # - uses: actions/cache@v3 | |
| # with: | |
| # path: tests/smoke/basic/ | |
| # key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| # enableCrossOsArchive: true | |
| # - uses: actions/setup-node@v3 | |
| # with: | |
| # node-version: 24 | |
| # - name: Run Smoke Tests | |
| # run: | | |
| # Start-Sleep -Seconds 20 # workaround for yarn cache issue | |
| # for ($i = 1; $i -le 3; $i++) { | |
| # try { | |
| # bash ./tests/smoke/basic/run-smoke.sh "yarn add ./redocly-cli.tgz --no-lockfile --network-timeout 100000" "yarn" | |
| # if ($LASTEXITCODE -eq 0) { break } | |
| # } catch { | |
| # if ($i -eq 3) { throw } | |
| # Start-Sleep -Seconds 5 | |
| # } | |
| # } | |
| run-smoke--npm--node-22: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run" | |
| run-smoke--npm--node-22--redoc: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redoc redocly-cli.tgz" "npm run" | |
| run-smoke--yarn--node-22: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - name: Clear Yarn Cache | |
| run: yarn cache clean | |
| - run: | | |
| for i in {1..2}; do # workaround for yarn cache issue | |
| sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn add ./redocly-cli.tgz" "yarn" && break | |
| done | |
| run-smoke--yarn--node-22--redoc: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - name: Clear Yarn Cache | |
| run: yarn cache clean | |
| - run: | | |
| for i in {1..2}; do # workaround for yarn cache issue | |
| sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn add redoc ./redocly-cli.tgz" "yarn" && break | |
| done | |
| run-smoke--pnpm--node-22: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "pnpm add ./redocly-cli.tgz" "pnpm run" | |
| run-smoke--npm--node-22--windows: | |
| needs: prepare-smoke | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| enableCrossOsArchive: true | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run" | |
| run-smoke--yarn--node-22--windows: | |
| needs: prepare-smoke | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| enableCrossOsArchive: true | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - name: Run Smoke Tests | |
| run: | | |
| Start-Sleep -Seconds 20 # workaround for yarn cache issue | |
| for ($i = 1; $i -le 3; $i++) { | |
| try { | |
| bash ./tests/smoke/basic/run-smoke.sh "yarn add ./redocly-cli.tgz --no-lockfile --network-timeout 100000" "yarn" | |
| if ($LASTEXITCODE -eq 0) { break } | |
| } catch { | |
| if ($i -eq 3) { throw } | |
| Start-Sleep -Seconds 5 | |
| } | |
| } | |
| run-smoke--npm--node-20: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run" | |
| run-smoke--npm--node-20--redoc: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redoc redocly-cli.tgz" "npm run" | |
| run-smoke--yarn--node-20: | |
| needs: prepare-smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| - name: Clear Yarn Cache | |
| run: yarn cache clean | |
| - run: | | |
| for i in {1..2}; do # workaround for yarn cache issue | |
| sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn add ./redocly-cli.tgz" "yarn" && break | |
| done | |
| run-smoke--npm--node-20--windows: | |
| needs: prepare-smoke | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| enableCrossOsArchive: true | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| - run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run" | |
| run-smoke--yarn--node-20--windows: | |
| needs: prepare-smoke | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/cache@v3 | |
| with: | |
| path: tests/smoke/basic/ | |
| key: cache-${{ github.run_id }}-${{ github.run_attempt }} | |
| enableCrossOsArchive: true | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20 | |
| - name: Run Smoke Tests | |
| run: | | |
| Start-Sleep -Seconds 20 # workaround for yarn cache issue | |
| for ($i = 1; $i -le 3; $i++) { | |
| try { | |
| bash ./tests/smoke/basic/run-smoke.sh "yarn add ./redocly-cli.tgz --no-lockfile --network-timeout 100000" "yarn" | |
| if ($LASTEXITCODE -eq 0) { break } | |
| } catch { | |
| if ($i -eq 3) { throw } | |
| Start-Sleep -Seconds 5 | |
| } | |
| } | |
| run-smoke--docker-image: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build docker image | |
| run: docker build -t redocly/cli:latest . | |
| - name: Run docker image | |
| run: | | |
| # Prepare | |
| cp resources/pets.yaml resources/museum.yaml resources/museum-tickets.arazzo.yaml tests/smoke/basic/ | |
| cd tests/smoke/basic/ | |
| # Run commands | |
| docker run --rm redocly/cli:latest --version | |
| docker run --rm -v $PWD:/spec redocly/cli:latest lint openapi.yaml | |
| docker run --rm -v $PWD:/spec redocly/cli:latest bundle openapi.yaml --ext json | |
| docker run --rm -v $PWD:/spec redocly/cli:latest build-docs openapi.yaml | |
| docker run --rm -v $PWD:/spec redocly/cli:latest split pets.yaml --outDir output/split/petstore && docker run --rm -v $PWD:/spec redocly/cli:latest split museum.yaml --outDir output/split/museum | |
| docker run --rm -v $PWD:/spec redocly/cli:latest respect museum-tickets.arazzo.yaml | |
| # Check for broken styles when building docs (related issue: https://github.com/Redocly/redocly-cli/issues/1073) | |
| echo "Checking docs for issues..." | |
| diff pre-built/redoc.html redoc-static.html -u | |
| echo "✅ Docs built correctly." | |
| # Check for broken $refs (or other issues) in the split files, especially on Windows (it will fail on a difference) | |
| echo "Checking split files for issues..." | |
| diff -r pre-split output/split -u | |
| echo "✅ Files split correctly." |