Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
1ab2f6b
chore: add resolutions to smoke tests
AlbinaBlazhko17 Apr 22, 2026
a4fe0f6
chore: add overrides
AlbinaBlazhko17 Apr 22, 2026
7396cdd
chore: add pnpm overrides
AlbinaBlazhko17 Apr 22, 2026
cb57a7c
feat: add scipt to pull current installed version of config
AlbinaBlazhko17 Apr 22, 2026
a120ae3
chore: move script into separate file
AlbinaBlazhko17 Apr 22, 2026
3e06e62
chore: remove pnpm overrides
AlbinaBlazhko17 Apr 22, 2026
e7827c6
feat: add different fix to pack config from node_modules
AlbinaBlazhko17 Apr 22, 2026
da20af1
feat: migrate from yarn add to yarn install
AlbinaBlazhko17 Apr 22, 2026
1dcd7fb
chore: fix config version script
AlbinaBlazhko17 Apr 22, 2026
9fff599
fix: failing smoke tests
AlbinaBlazhko17 Apr 22, 2026
2771801
chore: remove packing config
AlbinaBlazhko17 Apr 22, 2026
3c5609b
chore: remove --no-lockfile arg
AlbinaBlazhko17 Apr 23, 2026
daa1c70
Merge branch 'main' into chore/fix-flaky-smoke-tests
AlbinaBlazhko17 Apr 23, 2026
64da1cd
chore: remove letter
AlbinaBlazhko17 Apr 23, 2026
0e709bc
feat: add to npm tests the same retry pattern as for yarn
AlbinaBlazhko17 Apr 23, 2026
66f5c91
chore: replace with the main
AlbinaBlazhko17 Apr 23, 2026
8ff38ce
feat: add pining versions for config and ajv and use only for failed …
AlbinaBlazhko17 Apr 23, 2026
54aa739
chore: remove letter
AlbinaBlazhko17 Apr 23, 2026
df6eff9
feat: add per job invocation
AlbinaBlazhko17 Apr 23, 2026
af87090
feat: add missing pin
AlbinaBlazhko17 Apr 23, 2026
b523925
feat: add pining to failed smoke
AlbinaBlazhko17 Apr 23, 2026
41e177e
feat: add to failed smoke test pinning
AlbinaBlazhko17 Apr 23, 2026
f7c6af9
Merge branch 'main' into chore/fix-flaky-smoke-tests
AlbinaBlazhko17 Apr 23, 2026
388d798
feat: add pining to the failed smoke test
AlbinaBlazhko17 Apr 23, 2026
bde52ed
feat: remove workaround to test if it works
AlbinaBlazhko17 Apr 23, 2026
801cb4a
feat: add to missing smoke test retry pattern
AlbinaBlazhko17 Apr 23, 2026
82104c8
chore: remove unused overrides
AlbinaBlazhko17 Apr 23, 2026
9fa6b3c
feat: add script to add redoc in packages and use for specific steps
AlbinaBlazhko17 Apr 24, 2026
d39f863
chore: remove eval
AlbinaBlazhko17 Apr 24, 2026
92985f2
Merge branch 'main' into chore/fix-flaky-smoke-tests
AlbinaBlazhko17 Apr 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 72 additions & 31 deletions .github/workflows/smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 24
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run"
- run: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

run-smoke--npm--node-24--redoc:
needs: prepare-smoke
Expand All @@ -53,12 +53,15 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 24
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redoc redocly-cli.tgz" "npm run"
- name: Add redoc to deps
run: bash ./tests/smoke/basic/add-redoc.sh
- run: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

run-smoke--yarn--node-24:
needs: prepare-smoke
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: tests/smoke/basic/
Expand All @@ -68,15 +71,18 @@ jobs:
node-version: 24
- name: Clear Yarn Cache
run: yarn cache clean
- name: Pin intersecting deps
run: bash ./tests/smoke/basic/pin-intersecting-deps.sh
- 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
sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn" && break
Comment thread
cursor[bot] marked this conversation as resolved.
done

run-smoke--yarn--node-24--redoc:
needs: prepare-smoke
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: tests/smoke/basic/
Expand All @@ -86,9 +92,13 @@ jobs:
node-version: 24
- name: Clear Yarn Cache
run: yarn cache clean
- name: Pin intersecting deps
run: bash ./tests/smoke/basic/pin-intersecting-deps.sh
- name: Add redoc to deps
run: bash ./tests/smoke/basic/add-redoc.sh
- 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
sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn" && break
done
run-smoke--pnpm--node-24:
needs: prepare-smoke
Expand All @@ -105,7 +115,7 @@ jobs:
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
with:
version: 10
- run: bash ./tests/smoke/basic/run-smoke.sh "pnpm add ./redocly-cli.tgz" "pnpm run"
- run: bash ./tests/smoke/basic/run-smoke.sh "pnpm install" "pnpm run"

# Skipped due to a known Windows + NodeJS v24 issue: https://github.com/nodejs/node/issues/56645
# run-smoke--npm--node-24--windows:
Expand Down Expand Up @@ -158,7 +168,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 22
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run"
- run: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

run-smoke--npm--node-22--redoc:
needs: prepare-smoke
Expand All @@ -171,12 +181,15 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 22
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redoc redocly-cli.tgz" "npm run"
- name: Add redoc to deps
run: bash ./tests/smoke/basic/add-redoc.sh
- run: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

run-smoke--yarn--node-22:
needs: prepare-smoke
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: tests/smoke/basic/
Expand All @@ -186,15 +199,18 @@ jobs:
node-version: 22
- name: Clear Yarn Cache
run: yarn cache clean
- name: Pin intersecting deps
run: bash ./tests/smoke/basic/pin-intersecting-deps.sh
- 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
sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn" && break
done

run-smoke--yarn--node-22--redoc:
needs: prepare-smoke
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: tests/smoke/basic/
Expand All @@ -204,9 +220,13 @@ jobs:
node-version: 22
- name: Clear Yarn Cache
run: yarn cache clean
- name: Pin intersecting deps
run: bash ./tests/smoke/basic/pin-intersecting-deps.sh
- name: Add redoc to deps
run: bash ./tests/smoke/basic/add-redoc.sh
- 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
sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn" && break
done
run-smoke--pnpm--node-22:
needs: prepare-smoke
Expand All @@ -223,7 +243,7 @@ jobs:
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
with:
version: 10
- run: bash ./tests/smoke/basic/run-smoke.sh "pnpm add ./redocly-cli.tgz" "pnpm run"
- run: bash ./tests/smoke/basic/run-smoke.sh "pnpm install" "pnpm run"

run-smoke--npm--node-22--windows:
needs: prepare-smoke
Expand All @@ -237,12 +257,22 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 22
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run"
- name: Clear npm cache
run: npm cache clean --force
- name: Run Smoke Tests
run: |
for ($i = 1; $i -le 3; $i++) {
bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"
if ($LASTEXITCODE -eq 0) { break }
if ($i -eq 3) { exit $LASTEXITCODE }
Start-Sleep -Seconds 5
}

run-smoke--yarn--node-22--windows:
needs: prepare-smoke
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: tests/smoke/basic/
Expand All @@ -255,17 +285,15 @@ jobs:
run: |
yarn cache clean
npm cache clean --force
- name: Pin intersecting deps
run: bash ./tests/smoke/basic/pin-intersecting-deps.sh
Comment thread
AlbinaBlazhko17 marked this conversation as resolved.
- 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
}
bash ./tests/smoke/basic/run-smoke.sh "yarn install --network-timeout 100000" "yarn"
if ($LASTEXITCODE -eq 0) { break }
if ($i -eq 3) { exit $LASTEXITCODE }
Start-Sleep -Seconds 5
}

run-smoke--npm--node-20:
Expand All @@ -279,7 +307,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 20
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run"
- run: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

run-smoke--npm--node-20--redoc:
needs: prepare-smoke
Expand All @@ -292,12 +320,15 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 20
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redoc redocly-cli.tgz" "npm run"
- name: Add redoc to deps
run: bash ./tests/smoke/basic/add-redoc.sh
- run: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

run-smoke--yarn--node-20:
needs: prepare-smoke
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: tests/smoke/basic/
Expand All @@ -307,9 +338,11 @@ jobs:
node-version: 20
- name: Clear Yarn Cache
run: yarn cache clean
- name: Pin intersecting deps
run: bash ./tests/smoke/basic/pin-intersecting-deps.sh
- 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
sleep 5 && bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn" && break
done

run-smoke--npm--node-20--windows:
Expand All @@ -324,12 +357,22 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 20
- run: bash ./tests/smoke/basic/run-smoke.sh "npm i redocly-cli.tgz" "npm run"
- name: Clear npm cache
run: npm cache clean --force
- name: Run Smoke Tests
run: |
for ($i = 1; $i -le 3; $i++) {
bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"
if ($LASTEXITCODE -eq 0) { break }
if ($i -eq 3) { exit $LASTEXITCODE }
Start-Sleep -Seconds 5
}

run-smoke--yarn--node-20--windows:
needs: prepare-smoke
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: tests/smoke/basic/
Expand All @@ -342,17 +385,15 @@ jobs:
run: |
yarn cache clean
npm cache clean --force
- name: Pin intersecting deps
run: bash ./tests/smoke/basic/pin-intersecting-deps.sh
- 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
}
bash ./tests/smoke/basic/run-smoke.sh "yarn install --network-timeout 100000" "yarn"
if ($LASTEXITCODE -eq 0) { break }
if ($i -eq 3) { exit $LASTEXITCODE }
Start-Sleep -Seconds 5
}

run-smoke--docker-image:
Expand Down
10 changes: 10 additions & 0 deletions tests/smoke/basic/add-redoc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

node -e "
const fs = require('fs');
const pkgPath = './tests/smoke/basic/package.json';
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
(pkg.dependencies ??= {}).redoc = 'latest';
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
console.log('Added redoc@latest to smoke test dependencies');
"
5 changes: 4 additions & 1 deletion tests/smoke/basic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,8 @@
"redocly-respect": "redocly respect museum-tickets.arazzo.yaml"
},
"author": "redocly",
"license": "ISC"
"license": "ISC",
"dependencies": {
"@redocly/cli": "file:./redocly-cli.tgz"
}
}
18 changes: 18 additions & 0 deletions tests/smoke/basic/pin-intersecting-deps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash

node -e "
const fs = require('fs');
const core = JSON.parse(fs.readFileSync('./packages/core/package.json', 'utf8'));
const pkgPath = './tests/smoke/basic/package.json';
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));

const PINNED = ['@redocly/config', '@redocly/ajv'];

for (const name of PINNED) {
const version = core.dependencies[name].replace(/^[\^~]/, '');
console.log('Pinning ' + name + ' to ' + version + ' in smoke test resolutions');
(pkg.resolutions ??= {})[name] = version;
}

fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
"
Comment thread
cursor[bot] marked this conversation as resolved.
Loading