Skip to content
Open
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
24a6fdb
chore: use esbuild to bundle cli
AlbinaBlazhko17 Jun 11, 2026
23c1b35
refactor: comments, naming and script
AlbinaBlazhko17 Jun 11, 2026
64c8287
chore: change comments
AlbinaBlazhko17 Jun 11, 2026
13097cb
fix: failed smoke tests
AlbinaBlazhko17 Jun 11, 2026
e284f86
fix: add missing binTargetPath
AlbinaBlazhko17 Jun 11, 2026
79ae229
chore: remove unused enableCrossOsArchive
AlbinaBlazhko17 Jun 11, 2026
5d77530
Merge branch 'main' into feat/esbuild-bundle-cli
AlbinaBlazhko17 Jun 11, 2026
f130d53
chore: try to remove compile from the smoke test
AlbinaBlazhko17 Jun 11, 2026
3c0b344
Merge branch 'main' into feat/esbuild-bundle-cli
AlbinaBlazhko17 Jun 11, 2026
dd3993a
chore: retrigger CI
AlbinaBlazhko17 Jun 11, 2026
2d61a33
chore: trigger workflow
AlbinaBlazhko17 Jun 11, 2026
8334e58
fix: failing smoke tests
AlbinaBlazhko17 Jun 11, 2026
f7f2194
Revert "fix: failing smoke tests"
AlbinaBlazhko17 Jun 12, 2026
9bf261a
chore: trigger CI
AlbinaBlazhko17 Jun 12, 2026
b91c75e
chore: add dot
AlbinaBlazhko17 Jun 12, 2026
e14b327
feat: add code splitting into chuncs by dynamic imports and add dynam…
AlbinaBlazhko17 Jun 12, 2026
b37d33f
chore: remove unused deps due to bundle
AlbinaBlazhko17 Jun 12, 2026
400e935
feat: move all deps to the devDep
AlbinaBlazhko17 Jun 12, 2026
53b1f55
fix: resolving path to plugin
AlbinaBlazhko17 Jun 12, 2026
79e4768
fix: failed test
AlbinaBlazhko17 Jun 12, 2026
dd57cea
chore: clean lib folder before build
AlbinaBlazhko17 Jun 12, 2026
dc2437d
fix: bumping versions
AlbinaBlazhko17 Jun 12, 2026
fdb23b6
fix: pipeline, scripts, plugin-evaluator and add THIRD_PARTY_NOTICES
AlbinaBlazhko17 Jun 15, 2026
9ad62f7
chore: deslope
AlbinaBlazhko17 Jun 15, 2026
6e280d0
chore: run format
AlbinaBlazhko17 Jun 15, 2026
f70d6e8
fix: e2e script, build third party license, remove template, test and…
AlbinaBlazhko17 Jun 16, 2026
7a6e98b
chore: run formatter
AlbinaBlazhko17 Jun 16, 2026
51376ca
chore: update e2e script
AlbinaBlazhko17 Jun 16, 2026
4cde987
chore: change target in esbuild
AlbinaBlazhko17 Jun 16, 2026
dae6bf5
fix: change target and refactor import of redoc version
AlbinaBlazhko17 Jun 16, 2026
bb5965a
Merge branch 'main' into feat/esbuild-bundle-cli
AlbinaBlazhko17 Jun 16, 2026
bfad5ac
chore: uncomment smokes
AlbinaBlazhko17 Jun 16, 2026
4b7d5bd
chore: comment smoke due to failing
AlbinaBlazhko17 Jun 16, 2026
c525d5e
chore: remove comments
AlbinaBlazhko17 Jun 16, 2026
23deb7d
fix: issue with abs path in windows
AlbinaBlazhko17 Jun 16, 2026
ba2c5eb
Merge branch 'main' into feat/esbuild-bundle-cli
AlbinaBlazhko17 Jun 16, 2026
7092545
chore: update lock file
AlbinaBlazhko17 Jun 16, 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
5 changes: 5 additions & 0 deletions .changeset/all-meals-battle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@redocly/cli': patch
---

Improved CLI install speed by bundling the CLI into a dependency-free package.
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,7 @@
!tsconfig.build.json
!tsconfig.json
!package-lock.json
!README.md
!LICENSE.md

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have root LICENSE.md file with this extension.

!packages/*
!scripts/local-pack.sh
4 changes: 3 additions & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -251,4 +251,6 @@ jobs:
sleep 10
cd ../cli
npm publish --tag snapshot
npm run prepare:publish-dir
Comment thread
cursor[bot] marked this conversation as resolved.
npm publish ./.publish --tag snapshot
npm run clean:publish-dir
119 changes: 12 additions & 107 deletions .github/workflows/smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,45 +61,30 @@ jobs:
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/
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
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 install" "yarn" && break
done
- run: bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn"

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/
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
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 install" "yarn" && break
done
- run: bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn"

run-smoke--pnpm--node-24:
needs: prepare-smoke
runs-on: ubuntu-latest
Expand Down Expand Up @@ -144,18 +129,7 @@ jobs:
# - 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: bash ./tests/smoke/basic/run-smoke.sh "yarn add ./redocly-cli.tgz --no-lockfile" "yarn"

run-smoke--npm--node-22:
needs: prepare-smoke
Expand Down Expand Up @@ -189,45 +163,30 @@ jobs:
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/
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
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 install" "yarn" && break
done
- run: bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn"

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/
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
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 install" "yarn" && break
done
- run: bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn"

run-smoke--pnpm--node-22:
needs: prepare-smoke
runs-on: ubuntu-latest
Expand Down Expand Up @@ -257,22 +216,12 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 22
- 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: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

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 @@ -281,20 +230,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 22
- name: Clear caches
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: |
for ($i = 1; $i -le 3; $i++) {
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: bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn"

run-smoke--npm--node-20:
needs: prepare-smoke
Expand Down Expand Up @@ -328,22 +264,14 @@ jobs:
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/
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
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 install" "yarn" && break
done
- run: bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn"

run-smoke--npm--node-20--windows:
needs: prepare-smoke
Expand All @@ -357,22 +285,12 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 20
- 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: bash ./tests/smoke/basic/run-smoke.sh "npm install" "npm run"

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 @@ -381,20 +299,7 @@ jobs:
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 20
- name: Clear caches
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: |
for ($i = 1; $i -le 3; $i++) {
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: bash ./tests/smoke/basic/run-smoke.sh "yarn install" "yarn"

run-smoke--docker-image:
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ output/
*.tsbuildinfo
*.tgz
redoc-static.html
packages/cli/README.md
packages/cli/.publish/
.env
packages/respect-core/src/modules/runtime-expressions/abnf-parser.js
4 changes: 1 addition & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@ FROM node:24-alpine
WORKDIR /build
COPY . .
RUN apk add --no-cache jq git && \
npm ci --no-optional --ignore-scripts && \

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need to skip deps under optionalDependencies, because we don't have deps at all.

npm ci --ignore-scripts && \
npm run prepare && \
npm run pack:prepare && \
npm install --global redocly-cli.tgz && \
cp packages/cli/src/commands/build-docs/template.hbs \
/usr/local/lib/node_modules/@redocly/cli/lib/commands/build-docs/ && \
# Clean up to reduce image size
npm cache clean --force && rm -rf /build

Expand Down
Loading
Loading