Compare commits

...

145 Commits

Author SHA1 Message Date
Amin Ya 04f0267e50
Merge pull request #449 from aminya/renovate/major-dependencies
fix(deps): update dependencies (major)
2026-01-19 17:55:10 -08:00
renovate[bot] 1155f23302
fix(deps): update dependencies 2026-01-20 01:22:19 +00:00
Amin Ya 867d72f10a
Merge pull request #437 from aminya/renovate/dependencies
fix(deps): update dependencies
2026-01-19 17:20:24 -08:00
renovate[bot] daf5d4b9da
fix(deps): update dependencies 2026-01-20 01:20:16 +00:00
Amin Ya 31141736b3
Merge pull request #444 from aminya/renovate/major-github-artifact-actions
chore(deps): update github artifact actions (major)
2026-01-19 17:20:01 -08:00
Amin Ya 9792a2bbe0
Merge pull request #459 from aminya/renovate/fedora-44.x
chore(deps): update fedora docker tag to v44
2026-01-19 17:19:36 -08:00
renovate[bot] 27061795a8
chore(deps): update github artifact actions 2026-01-19 08:08:16 +00:00
Amin Ya 1f17f92d6a chore(release): v1.8.0 [skip test] 2026-01-18 23:58:27 -08:00
Amin Ya bd777f32ba
fix: default to LLVM 20.1.8 (#460) 2026-01-18 23:52:00 -08:00
Amin Ya f3c42a2724 chore(deps): update fedora docker tag to v44 2026-01-18 23:40:57 -08:00
renovate[bot] 38bbe83367
chore(deps): update fedora docker tag to v44 2026-01-19 07:40:03 +00:00
renovate[bot] 156935991e
chore(deps): update node.js to v22.22.0 (#456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-18 23:37:41 -08:00
renovate[bot] 51ca1f1f80
chore(deps): update dependency turbo to v2.7.5 (#458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-18 23:37:23 -08:00
renovate[bot] 5c16b2f2fd
chore(deps): update actions/cache action to v5 (#457)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-18 23:37:09 -08:00
Amin Ya 7c7690a1ac
feat: update default LLVM, Mingw, CMake, Ninja, Task, Meson (#455)
* feat: update LLVM to 21.1.8 + Mingw to 15.2

* feat: update ninja, cmake, task, meson

* fix: downgrade fedora to 43

* fix: upgrade doxygen
2026-01-15 15:20:14 -08:00
renovate[bot] aaf5bb78ea
chore(deps): update devdependencies (#430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 04:19:20 -08:00
renovate[bot] 4878b35f60
chore(deps): update fedora docker tag to v44 (#440) [skip ci]
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 04:17:24 -08:00
renovate[bot] 957a3565d3
chore(deps): update peter-evans/dockerhub-description action to v5 (#442) [skip ci]
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 04:16:44 -08:00
renovate[bot] aa2e7dbda1
chore(deps): update actions/setup-node action to v6 (#443) [skip ci]
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 04:15:08 -08:00
Amin Ya c9b0b918df
feat: use bun as the package manager (#454) [skip ci]
* feat: use bun as the package manager

* fix: update vite to the latest version

* ci: setup node as well as bun

* fix: use node to run minijson

* ci: use MacOS 14 large instead of MacOS 13

* ci: use macos-15-intel instead

* fix: apply patches manually
2026-01-15 04:14:40 -08:00
renovate[bot] 9306008c10
chore(deps): update actions/checkout action to v6 (#451) [skip ci]
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 04:14:08 -08:00
Amin Yahyaabadi 9bc9b8cd8a chore(release): v1.7.2 [skip test] 2025-11-10 00:13:02 -08:00
Amin Ya 3481e9e840
feat: support LLVM 21 + GCC 15.2 (#447) 2025-11-10 00:10:16 -08:00
renovate[bot] cc0e9fb8ec
chore(deps): update actions/download-artifact action to v5 (#434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 00:04:40 -07:00
renovate[bot] 131fbe52b0
chore(deps): update actions/checkout action to v5 (#435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 00:04:08 -07:00
renovate[bot] d93d404f38
fix(deps): update dependency @types/node to v22.17.2 (#431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 00:03:50 -07:00
renovate[bot] a55b1da658
chore(deps): update pnpm to v10.15.0 (#432)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 00:03:37 -07:00
Amin Ya 24822b26f9
Merge pull request #429 from aminya/build-improve
feat: add a unified setup-options for all setup functions
2025-07-10 09:46:29 -07:00
Amin Yahyaabadi 747e9cfe05 fix: fix partial options for tar 2025-07-10 07:11:16 -07:00
Amin Yahyaabadi 26bd7cda45 fix: allow partial options for setup tools 2025-07-10 06:59:25 -07:00
Amin Yahyaabadi 6f1d3cd81e fix: add setup-options for all setup functions 2025-07-10 06:59:25 -07:00
Amin Yahyaabadi bb0daa4e32 build: use esbuild for minification
Size is not much of a concern for setup-cpp and the difference is few KB.
2025-07-10 06:59:25 -07:00
Amin Yahyaabadi a276e6e3d1 chore(release): v1.7.1 [skip test] 2025-07-10 06:52:11 -07:00
Amin Yahyaabadi 1c89539b8f fix: handle no update failures for llvm 2025-07-07 22:42:22 -07:00
renovate[bot] b32feb04d5
chore(deps): update devdependencies (#426)
* chore(deps): update devdependencies

* fix: fix babel config

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Amin Yahyaabadi <aminyahyaabadi74@gmail.com>
2025-07-06 04:50:43 -07:00
Amin Ya d8571402cb
Merge pull request #425 from aminya/windows-llvm
fix: prefer complete Window LLVM package + add tar tool
2025-07-03 07:23:39 -07:00
Amin Ya aa0fcb9bee fix: use 7z for tar extraction on windows 2025-07-03 06:58:13 -07:00
Amin Yahyaabadi 988cdb3377 fix: extra tar by 7z on windows 2025-07-03 06:32:22 -07:00
Amin Ya d09e6b8dab
Merge pull request #418 from aminya/renovate/dependencies
fix(deps): update dependency @types/node to v22.16.0
2025-07-03 05:47:27 -07:00
renovate[bot] c43a237684
fix(deps): update dependency @types/node to v22.16.0 2025-07-03 12:47:18 +00:00
Amin Ya 6004eca28b
Merge pull request #423 from aminya/renovate/node-22.x
chore(deps): update node.js to v22.17.0
2025-07-03 05:46:53 -07:00
renovate[bot] d42bb0b88f
chore(deps): update node.js to v22.17.0 2025-07-03 12:46:46 +00:00
Amin Ya c9eb020813
Merge pull request #421 from aminya/renovate/pnpm-10.x
chore(deps): update pnpm to v10.12.4
2025-07-03 05:46:39 -07:00
renovate[bot] 3cb32ec74d
chore(deps): update pnpm to v10.12.4 2025-07-03 12:45:58 +00:00
Amin Ya fb3f6ad2f8
Merge pull request #424 from aminya/update
fix: add LLVM 20.1.7 + mingw 15.1-r2 + gcovr via apt on Ubuntu by default
2025-07-03 05:45:03 -07:00
Amin Yahyaabadi 559fcdd572 feat: add tar as an installable tool 2025-07-03 05:42:22 -07:00
Amin Yahyaabadi 8e6c0edd38 fix: strip components for windows LLVM tar.xz 2025-07-03 05:26:22 -07:00
Amin Yahyaabadi 8ffe76cee3 fix: prefer complete Window LLVM package 2025-07-03 04:57:50 -07:00
Amin Yahyaabadi 0fa8654824 fix: fix apt resolving on non-Linux 2025-07-03 04:56:17 -07:00
Amin Yahyaabadi 928af1ef3b ci: remove deprecated windows 2019 2025-07-03 04:45:30 -07:00
Amin Yahyaabadi 751b635450 fix: install gcovr via apt on Ubuntu by default 2025-07-03 04:44:58 -07:00
Amin Yahyaabadi 056bb3b1d9 fix: add LLVM 20.1.7 + mingw 15.1-r2 2025-07-02 04:32:00 -07:00
Amin Ya fe10751e1c
Merge pull request #417 from aminya/renovate/dependencies
fix(deps): update dependency @types/node to v22.15.30
2025-06-08 21:57:19 -07:00
Amin Ya c0171961c2
Merge pull request #416 from aminya/renovate/pnpm-10.x
chore(deps): update pnpm to v10.12.1
2025-06-08 21:57:11 -07:00
renovate[bot] ce9f94db97
chore(deps): update devdependencies (#415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 21:56:50 -07:00
renovate[bot] 9392dd1bd8
chore(deps): update pnpm to v10.12.1 2025-06-08 17:47:30 +00:00
renovate[bot] 2e6bb1caa0
fix(deps): update dependency @types/node to v22.15.30 2025-06-08 07:52:37 +00:00
Amin Yahyaabadi 004edc1952 chore(release): v1.7.0 [skip test] 2025-06-08 00:46:36 -07:00
Amin Ya 46cbfc276f
Merge pull request #414 from aminya/updates
fix: update cmake, task, powershell, meson, doxygen
2025-06-06 02:31:27 -07:00
Amin Yahyaabadi 396258ba63 fix: update doxygen to 1.14.0 2025-06-05 01:44:23 -07:00
Amin Yahyaabadi 70e614fd48 fix: update meson to 1.8.1 2025-06-05 01:41:07 -07:00
Amin Yahyaabadi 075261cd2b fix: update powershell to 7.5.1 2025-06-05 01:40:37 -07:00
Amin Yahyaabadi fcda129998 fix: update task to 3.43.3 2025-06-05 01:40:18 -07:00
Amin Yahyaabadi 42ccc76417 fix: update cmake to 3.31.7 2025-06-05 01:38:12 -07:00
Amin Ya af7dd8c367
Merge pull request #387 from aminya/bump-llvm
fix: update default LLVM to v20 + GCC 15
2025-06-03 02:58:32 -07:00
Amin Yahyaabadi b21cd99e0b fix: default to llvm 19 on alpine 2025-06-03 01:51:55 -07:00
Amin Yahyaabadi 085eecfbd1 fix: remove the vcpkg pin for alpine 2025-06-03 01:40:06 -07:00
Amin Yahyaabadi 197080ad94 test: default to gcc 15 on Mac and Windows 2025-06-03 01:27:40 -07:00
Amin Yahyaabadi 15c6190549 fix: add newer llvm 20 versions 2025-06-03 00:43:01 -07:00
Amin Yahyaabadi 38b4d16f6e fix: update default LLVM to v20 2025-06-03 00:39:28 -07:00
renovate[bot] 00a96b353f
chore(deps): update dependency turbo to v2.5.4 (#411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 00:39:00 -07:00
Amin Ya 8d6f65af17
Merge pull request #413 from aminya/renovate/dependencies
fix(deps): update dependency @types/node to v22.15.29
2025-06-03 00:21:13 -07:00
renovate[bot] 55470af31b
fix(deps): update dependency @types/node to v22.15.29 2025-05-31 02:22:01 +00:00
renovate[bot] 820b8f3163
chore(deps): update devdependencies (#412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-26 22:07:57 -07:00
Amin Yahyaabadi 3a19939866 fix: handle no version for cmake 2025-05-26 22:07:03 -07:00
renovate[bot] 3b773c4e87
chore(deps): update dependency npm-run-all2 to v8.0.4 (#410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 14:24:49 -07:00
renovate[bot] 0d11c74dbd
chore(deps): update dependency @aminya/minijson to v1.1.3 (#409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-24 23:57:23 -07:00
Amin Ya f0dab3c2eb
Merge pull request #404 from aminya/renovate/dependencies
fix(deps): update dependency @types/node to v22.15.21
2025-05-24 23:54:25 -07:00
renovate[bot] f015113d31
fix(deps): update dependency @types/node to v22.15.21 2025-05-24 11:11:49 +00:00
Amin Yahyaabadi 9dc9c217f4 chore: v1.6.2 2025-05-24 04:07:26 -07:00
Amin Yahyaabadi 5649ee9e2d chore: v1.6.1 2025-05-24 04:02:55 -07:00
Amin Yahyaabadi ecb2ccca2e chore: add npm ignore to reduce package size 2025-05-24 04:02:24 -07:00
Amin Ya 2a58e75f05
Merge pull request #407 from aminya/pin
fix: pin the apt-fast and nala installers
2025-05-24 03:41:16 -07:00
renovate[bot] f1825e19b6
chore(deps): update devdependencies (#403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-24 03:41:03 -07:00
Amin Ya e09ae7eb8e
Merge pull request #405 from aminya/renovate/node-22.x
chore(deps): update node.js to v22.16.0
2025-05-24 01:01:19 -07:00
renovate[bot] 45a956b27e
chore(deps): update devdependencies (#406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-24 01:00:58 -07:00
Amin Yahyaabadi 1cfde8e589 fix: pin the apt-fast and nala installers 2025-05-24 00:58:55 -07:00
renovate[bot] a4ca8de391
chore(deps): update node.js to v22.16.0 2025-05-24 06:55:24 +00:00
Amin Yahyaabadi 022729da27 Revert "chore(deps): update noelware/docker-manifest-action action to v1"
This reverts commit 80ffb63efd.
2025-05-22 04:24:55 -07:00
Amin Yahyaabadi 6b72a94712 chore(release): v1.6.0 2025-05-22 03:56:32 -07:00
Amin Ya 464f3a00d5
Merge pull request #402 from aminya/faster-fast-apt
fix: add apt-fast optimizations
2025-05-20 22:15:55 -07:00
Amin Yahyaabadi faff663ab1 fix: add apt-fast optimizations 2025-05-20 21:38:17 -07:00
Amin Ya da1971da81
Merge pull request #401 from aminya/apt-fast
feat: add apt-fast as an installable tool
2025-05-20 16:09:08 -07:00
Amin Ya dbf5b5e2bf
Merge pull request #398 from aminya/renovate/node-22.x
chore(deps): update node.js to v22.15.1
2025-05-20 13:00:12 -07:00
Amin Yahyaabadi 3fd1b0b32c test: do not print version of apt-fast 2025-05-20 12:56:59 -07:00
Amin Yahyaabadi 988b5fd210 fix: update the apt-fast config as root 2025-05-20 12:32:52 -07:00
Amin Yahyaabadi c9348d3629 test: do not remove apt-fast 2025-05-20 12:17:00 -07:00
Amin Yahyaabadi 9b5350fb6e test: run apt tests in series 2025-05-20 11:18:37 -07:00
Amin Yahyaabadi b7dcc5b7e6 fix: do not use apt due to race conditions 2025-05-20 03:32:09 -07:00
Amin Yahyaabadi 264de9ab1a test: add import tests for all packages 2025-05-20 03:26:08 -07:00
Amin Yahyaabadi fc5f36e99b test: add import tests for all packages 2025-05-20 03:23:35 -07:00
Amin Yahyaabadi 1134b80cc2 chore: use turbo for build 2025-05-20 02:52:27 -07:00
Amin Yahyaabadi 6540167f34 feat move setup-nala to setup-apt 2025-05-20 02:39:27 -07:00
Amin Yahyaabadi 62036a9dd7 feat: move the apt-fast installer to setup-apt package 2025-05-20 02:32:22 -07:00
Amin Yahyaabadi 350b16f518 fix: prefer apt-fast or apt over apt-get 2025-05-20 02:23:12 -07:00
Amin Yahyaabadi 4c0bf0acdb fix: make apt-fast non-interactive 2025-05-20 02:17:12 -07:00
Amin Yahyaabadi ecc6c767e0 feat: add apt-fast as an installable tool 2025-05-20 01:52:30 -07:00
Amin Yahyaabadi 00fe6df1cf fix: rename isUbuntu to hasAptget 2025-05-20 01:43:24 -07:00
renovate[bot] 46ac5adacc
chore(deps): update node.js to v22.15.1 2025-05-20 04:27:57 +00:00
Amin Ya e10853e3f5
Merge pull request #399 from aminya/renovate/pnpm-10.x
chore(deps): update pnpm to v10.11.0
2025-05-19 21:26:58 -07:00
Amin Ya 3fffbe9648
Merge pull request #400 from aminya/renovate/noelware-docker-manifest-action-1.x
chore(deps): update noelware/docker-manifest-action action to v1
2025-05-19 21:26:43 -07:00
Amin Ya c9145519e3
Merge pull request #395 from aminya/renovate/dependencies
fix(deps): update dependency @types/node to v22.15.19
2025-05-19 21:26:06 -07:00
renovate[bot] 5c5dffcda7
chore(deps): update devdependencies (#382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 20:44:28 -07:00
renovate[bot] 6c94aa9d63
fix(deps): update dependency @types/node to v22.15.19 2025-05-19 16:17:25 +00:00
renovate[bot] 80ffb63efd
chore(deps): update noelware/docker-manifest-action action to v1 2025-05-17 06:50:14 +00:00
renovate[bot] 5accdbc0a7
chore(deps): update pnpm to v10.11.0 2025-05-17 02:36:48 +00:00
renovate[bot] d8c2b30cb3
chore(deps): update dependency cspell to v9 (#396)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 17:09:01 -07:00
Amin Yahyaabadi 829f53844a ci: disable arch llvm and alpine mingw [skip test] 2025-05-09 21:52:41 -07:00
Amin Yahyaabadi 28288fd7bc chore(release): v1.5.4 [skip test] 2025-05-09 20:49:48 -07:00
Amin Ya 5ea110ae8d
Merge pull request #397 from aminya/bashrc-loop [skip ci]
fix: avoid rc sourcing loops + fix: always add guards for sourcing rc files
2025-05-09 20:46:40 -07:00
Amin Yahyaabadi 9bc8921c0a ci: disable deprecated ubuntu 20 2025-05-09 20:46:08 -07:00
Amin Yahyaabadi e8ac0e7160 fix: add rcOptions for vcpkg system binaries 2025-05-09 20:45:21 -07:00
Amin Yahyaabadi 9d12750bbe fix: always add guards for sourcing rc files 2025-05-09 20:43:23 -07:00
Amin Yahyaabadi c9007c8f5a fix: avoid rc sourcing loops 2025-05-09 20:41:22 -07:00
Amin Yahyaabadi 05bd2b5297 fix: fix llvm add-apt-repository for debian 2025-05-05 05:10:57 -07:00
renovate[bot] 3d8c387d48
chore(deps): update dependency npm-run-all2 to v8 (#394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-04 20:17:03 -07:00
Amin Yahyaabadi 55f022dea4 fix: fix add-apt-repository in Debian 2025-05-04 06:24:26 -07:00
Amin Yahyaabadi 75890615f7 fix: fix addition of git to PATH on Windows 2025-04-30 12:39:42 -07:00
Amin Ya a7162273d0
Merge pull request #393 from aminya/renovate/dependencies
fix(deps): update dependency @types/node to v22.15.3
2025-04-30 12:11:14 -07:00
Amin Ya f40cb3bc3f
Merge pull request #392 from aminya/renovate/node-22.x
chore(deps): update node.js to v22.15.0
2025-04-30 12:11:04 -07:00
Amin Yahyaabadi ac92a10732 fix: update pnpm + fix cspell 2025-04-30 12:09:38 -07:00
Amin Yahyaabadi d10f4b6db0 fix: ignore setup-cpp cli installation errors 2025-04-30 12:05:24 -07:00
renovate[bot] 8fb6bd1b28
fix(deps): update dependency @types/node to v22.15.3 2025-04-30 19:01:13 +00:00
renovate[bot] a993d3ff56
chore(deps): update node.js to v22.15.0 2025-04-30 19:00:30 +00:00
Amin Yahyaabadi d0235b0adb ci: add missing git option for actions 2025-04-30 11:57:57 -07:00
Amin Ya 79f7ff95eb
Merge pull request #383 from aminya/renovate/dependencies
fix(deps): update dependency @types/node to v22.14.1
2025-04-21 09:47:53 -07:00
Amin Ya 3bc026fd01
Merge pull request #384 from aminya/renovate/pnpm-10.x
chore(deps): update pnpm to v10.9.0
2025-04-21 09:47:38 -07:00
Amin Ya 6c5ed96033
Merge pull request #390 from aminya/renovate/rharkor-caching-for-turbo-1.x
chore(deps): update rharkor/caching-for-turbo action to v1.8
2025-04-21 09:47:18 -07:00
renovate[bot] 70850773b2
chore(deps): update devdependencies (#391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-21 11:46:58 -05:00
renovate[bot] 186f2dc52d
chore(deps): update pnpm to v10.9.0 2025-04-21 09:36:15 +00:00
renovate[bot] b683fdffce
chore(deps): update rharkor/caching-for-turbo action to v1.8 2025-04-12 02:23:30 +00:00
renovate[bot] bb5b6b1b44
fix(deps): update dependency @types/node to v22.14.1 2025-04-11 23:24:46 +00:00
Amin Yahyaabadi 6370aaa025 fix: remove exports map from package 2025-04-07 07:24:19 -07:00
Amin Yahyaabadi 95a7de4f2e fix: fix CLI shabang not working - independent lib 2025-04-07 07:21:37 -07:00
Amin Yahyaabadi d6447bbe91 fix: build cli independent of lib 2025-04-07 06:25:39 -07:00
348 changed files with 5566 additions and 15043 deletions

View File

@ -12,7 +12,7 @@ concurrency:
env:
NODE_OPTIONS: --enable-source-maps
version: "1.5.0"
version: "1.8.0"
jobs:
Build:
@ -24,30 +24,32 @@ jobs:
os:
- ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ github.head_ref || github.ref_name }}
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version-file: "./.nvmrc"
- name: Setup Pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version-file: "package.json"
- name: Install
run: |
pnpm install
bun install
- name: Build
run: |
pnpm build
pnpm build.docker-ci
bun run build
bun run build.docker-ci
- name: Lint
run: |
pnpm run test.lint
bun run test.lint
- name: Update Dist
run: |
@ -67,7 +69,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Dist
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
if: always()
with:
name: dist
@ -85,44 +87,45 @@ jobs:
fail-fast: false
matrix:
os:
- windows-2019
- ubuntu-20.04
- windows-2022
- ubuntu-22.04
- ubuntu-22.04-arm
- macos-13 # x64
- macos-15-intel # x64
- macos-14 # arm64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Download Artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: dist
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version-file: "./.nvmrc"
- name: Setup Pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version-file: "package.json"
- name: Cache node_modules
if: ${{ !contains(matrix.os, 'windows') }}
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.pnpm-store
D:\.pnpm-store
~/.bun
./node_modules
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './pnpm-*.yaml') }}"
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './bun.lock') }}"
restore-keys: |
"setupcpp-node_modules-cache-OS:${{ matrix.os }}-"
- name: Cache Turbo
uses: rharkor/caching-for-turbo@v1.6
uses: rharkor/caching-for-turbo@v1.8
- name: Cache .cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
./.cache/eslint
@ -134,15 +137,15 @@ jobs:
- name: Install
run: |
pnpm install
bun install
# Create self-contained executable that bundles Nodejs
- name: Create Executable
run: |
pnpm run pack.exe
bun run pack.exe
- name: Upload Executables
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: exe-${{ matrix.os }}
path: |
@ -158,51 +161,50 @@ jobs:
matrix:
os:
- windows-2022
- windows-2019
- ubuntu-24.04-arm
- ubuntu-24.04
- ubuntu-22.04-arm
- ubuntu-22.04
- ubuntu-20.04
# - ubuntu-20.04
- macos-15 # arm64
# - macos-15-large # x64
- macos-14 # arm64
# - macos-14-large # x64
- macos-15-intel # x64
# - macos-14-xlarge #arm64
- macos-13 # x64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: true
- name: Download Dist
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: dist
- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version-file: "./.nvmrc"
- name: Setup Pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version-file: "package.json"
- name: Cache node_modules
if: ${{ !contains(matrix.os, 'windows') }}
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.pnpm-store
D:\.pnpm-store
~/.bun
./node_modules
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './pnpm-*.yaml') }}"
key: "setupcpp-node_modules-cache-OS:${{ matrix.os }}-${{ hashFiles('./.npmrc', './package.json', './.nvmrc', './bun.lock') }}"
restore-keys: |
"setupcpp-node_modules-cache-OS:${{ matrix.os }}-"
- name: Install
run: |
pnpm install
bun install
# - name: Setup SSH debugging session
# uses: mxschmitt/action-tmate@v3
@ -210,12 +212,12 @@ jobs:
- name: Tests
if: ${{ !contains(github.event.head_commit.message, '[skip test]') }}
run: |
pnpm run test
bun run test
env:
RUNNER_OS_NAME: ${{ matrix.os }}
- name: Setup Node 20
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20
@ -234,7 +236,7 @@ jobs:
- name: Setup Node 12
if: ${{ !contains(matrix.os, 'macos-14') && !contains(matrix.os, 'macos-15') }}
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 12
- name: Smoke Test Legacy Bundle
@ -257,7 +259,7 @@ jobs:
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "24.04" }
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "22.04" }
- { distro: "ubuntu", image: "setup-cpp-ubuntu", tag: "20.04" }
- { distro: "fedora", image: "setup-cpp-fedora", tag: "40" }
- { distro: "fedora", image: "setup-cpp-fedora", tag: "44" }
- { distro: "arch", image: "setup-cpp-arch", tag: "base" }
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", base_version: "22-alpine3.21" }
include:
@ -274,12 +276,12 @@ jobs:
platform: linux/arm64
container: { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", base_version: "22-alpine3.21" }
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: true
- name: Download Dist
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: dist
@ -327,7 +329,7 @@ jobs:
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
uses: peter-evans/dockerhub-description@v4
uses: peter-evans/dockerhub-description@v5
with:
username: aminya
password: ${{ secrets.DOCKERHUB_TOKEN }}
@ -336,6 +338,7 @@ jobs:
- name: Build setup-cpp-${{matrix.container.distro }}-llvm
id: build_llvm
if: ${{ matrix.container.distro != 'arch' }}
uses: docker/build-push-action@v6
with:
context: .
@ -349,19 +352,20 @@ jobs:
cache-to: type=inline
- name: Tag latest locally
if: ${{ matrix.container.distro != 'arch' }}
run: |
docker tag aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-llvm:latest
docker tag aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}-${{ env.version }}-${{ steps.platform.outputs.suffix }} aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}
- name: Push latest to Docker Hub
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'alpine' }}
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'ubuntu' && matrix.container.distro != 'alpine' && matrix.container.distro != 'arch' }}
run: |
docker push aminya/${{ matrix.container.image }}-llvm:latest
docker push aminya/${{ matrix.container.image }}-llvm:${{ matrix.container.tag }}
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-llvm
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
uses: peter-evans/dockerhub-description@v4
if: ${{ (github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]')) && matrix.container.distro != 'arch' }}
uses: peter-evans/dockerhub-description@v5
with:
username: aminya
password: ${{ secrets.DOCKERHUB_TOKEN }}
@ -369,7 +373,7 @@ jobs:
readme-filepath: ./README_DOCKER.md
- name: Test LLVM
if: ${{ !contains(github.event.head_commit.message, '[skip test]') }}
if: ${{ !contains(github.event.head_commit.message, '[skip test]') && matrix.container.distro != 'arch' }}
uses: docker/build-push-action@v6
with:
context: .
@ -405,7 +409,7 @@ jobs:
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-gcc
if: ${{ github.event_name != 'pull_request' || contains(github.event.head_commit.message, '[push docker]') }}
uses: peter-evans/dockerhub-description@v4
uses: peter-evans/dockerhub-description@v5
with:
username: aminya
password: ${{ secrets.DOCKERHUB_TOKEN }}
@ -450,7 +454,7 @@ jobs:
- name: Docker Readme for setup-cpp-${{matrix.container.distro }}-mingw
if: ${{ github.event_name != 'pull_request' && matrix.container.distro != 'fedora' && !(matrix.container.distro == 'alpine' && matrix.platform == 'linux/arm64') }}
uses: peter-evans/dockerhub-description@v4
uses: peter-evans/dockerhub-description@v5
with:
username: aminya
password: ${{ secrets.DOCKERHUB_TOKEN }}
@ -493,7 +497,7 @@ jobs:
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "", latest: true }
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-llvm", latest: true }
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-gcc", latest: true }
- { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-mingw", latest: true }
# - { distro: "alpine", image: "setup-cpp-alpine", tag: "3.21", suffix: "-mingw", latest: true }
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
@ -532,7 +536,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Download Executables
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
pattern: exe-*
path: ./exe/
@ -544,7 +548,7 @@ jobs:
chmod +x -R ./exe/
- name: Download Dist
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
name: dist
path: dist/

2
.gitignore vendored
View File

@ -24,3 +24,5 @@ coverage
/src/llvm/assets/
/build
dist/library
*.tgz

24
.npmignore Normal file
View File

@ -0,0 +1,24 @@
.DS_Store
Thumbs.db
**/node_modules
**/temp-*
**/tsconfig.tsbuildinfo
.parcel-cache
**/exe/
**/log
**/exe
**/cache
**/.cache
**/coverage
**/.turbo
src/llvm/assets/
**/build
**/__tests__
**/dev/cpp_vcpkg_project
**/packages/*/dist/
**/*.tgz
**/.eslintrc.json
**/jest.config.mjs
.vscode/
.github/
biome.jsonc

2
.nvmrc
View File

@ -1 +1 @@
22.14.0
22.22.0

View File

@ -1,11 +0,0 @@
import { buildTerserOptions } from "terser-config-atomic/dist/builder.js"
const config = buildTerserOptions(process.env.NODE_ENV, undefined, true)
if (
typeof config.compress === "object"
&& "unsafe_math" in config.compress
) {
config.compress.unsafe_math = false
}
export default config

View File

@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21...3.28)
project(
setup_cpp_tests
VERSION 1.5.0
VERSION 1.8.0
DESCRIPTION "Tests for setup-cpp"
HOMEPAGE_URL "https://github.com/aminya/setup-cpp"
LANGUAGES CXX C)

View File

@ -1,9 +1,9 @@
# Contributing
You will need [`pnpm`](https://pnpm.io/installation) to build and test `setup-cpp`:
You will need [`bun`](https://bun.com/) to build and test `setup-cpp`:
```shell
pnpm install
bun install
```
To avoid permenant changes to your system, you can use the test docker images under `./dev/docker/__tests__`.

View File

@ -31,12 +31,12 @@ Setting up a **cross-platform** environment for building and testing C++/C proje
| --------------- | ----------------------------------------------------------------------------------------------------------- |
| compiler | llvm, gcc, msvc, apple-clang, vcvarsall |
| build system | cmake, ninja, meson, make, task, bazel |
| package manager | vcpkg, conan, choco, brew, nala, git, setup-cpp |
| package manager | vcpkg, conan, choco, brew, apt-fast, nala, git, setup-cpp |
| analyzer/linter | clang-tidy, clang-format, cppcheck, cpplint, flawfinder, lizard, infer, cmakelang, cmake-format, cmake-lint |
| cache | ccache, sccache |
| documentation | doxygen, graphviz |
| coverage | gcovr, opencppcoverage, kcov |
| other | python, powershell, sevenzip |
| other | python, powershell, sevenzip, tar |
`setup-cpp` automatically handles the dependencies of the selected tool (e.g., `python` is required for `conan`).
@ -70,19 +70,19 @@ NOTE: setup-cpp requires Nodejs 12 or higher. If Nodejs shipped with your distri
#### With executable
Download the executable for your platform from [here](https://github.com/aminya/setup-cpp/releases/tag/v1.5.0), and run it with the available options. You can also automate downloading using `curl`, or other similar tools.
Download the executable for your platform from [here](https://github.com/aminya/setup-cpp/releases/tag/v1.8.0), and run it with the available options. You can also automate downloading using `curl`, or other similar tools.
```shell
# windows x64
curl -o ./setup-cpp.exe -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-x64-windows.exe"
curl -o ./setup-cpp.exe -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-windows.exe"
# linux x64
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-x64-linux"
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-linux"
# linux arm64
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-arm64-linux"
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-arm64-linux"
# macos arm64
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-arm64-macos"
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-arm64-macos"
# macos x64
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.5.0/setup-cpp-x64-macos"
curl -o ./setup-cpp -LJ "https://github.com/aminya/setup-cpp/releases/download/v1.8.0/setup-cpp-x64-macos"
```
An example that installs llvm, cmake, ninja, ccache, and vcpkg:
@ -213,8 +213,8 @@ The tags are in the following template:
- Base image: `aminya/setup-cpp-ubuntu:24.04`
- Compiler image: `aminya/setup-cpp-ubuntu-llvm:24.04`
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.5.0`
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.5.0`
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.8.0`
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.8.0`
The supported platforms are `ubuntu`, `alpine`, `fedora`, and `arch`. The supported compilers are `llvm`, `gcc`, and `mingw`.
@ -366,7 +366,7 @@ RUN apt-get update -qq && \
# install nodejs
apt-get install -y --no-install-recommends nodejs npm && \
# install setup-cpp
npm install -g setup-cpp@v1.5.0 && \
npm install -g setup-cpp@v1.8.0 && \
# install the compiler and tools
NODE_OPTIONS="--enable-source-maps" \
setup-cpp \
@ -476,7 +476,7 @@ stages:
apt-get install -y --no-install-recommends nodejs npm
# install setup-cpp
npm install -g setup-cpp@v1.5.0
npm install -g setup-cpp@v1.8.0
# install the compiler and tools
./setup-cpp-x64-linux --compiler $compiler --cmake true --ninja true --ccache true --vcpkg true

View File

@ -20,8 +20,8 @@ The tags are in the following template:
- Base image: `aminya/setup-cpp-ubuntu:24.04`
- Compiler image: `aminya/setup-cpp-ubuntu-llvm:24.04`
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.5.0`
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.5.0`
- Base image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu:24.04-v1.8.0`
- Compiler image with pinned setup-cpp version: `aminya/setup-cpp-ubuntu-llvm:24.04-v1.8.0`
The supported platforms are `ubuntu`, `alpine`, `fedora`, and `arch`. The supported compilers are `llvm`, `gcc`, and `mingw`.

View File

@ -163,6 +163,12 @@ inputs:
node-package-manager:
description: "The node package manager to use (npm/yarn/pnpm) when installing setup-cpp globally"
required: false
git:
description: "Wether to install git (true/false) or the specific version to install."
required: false
tar:
description: "Wether to install tar (true/false) or the specific version to install."
required: false
runs:
using: "node20"

View File

@ -1,5 +1,5 @@
import type { TransformOptions } from "@babel/core"
// @ts-ignore
// @ts-expect-error no types
import RemoveNodePrefix from "@upleveled/babel-plugin-remove-node-prefix"
const babelConfig: TransformOptions = {

3724
bun.lock Normal file

File diff suppressed because it is too large Load Diff

2
bunfig.toml Normal file
View File

@ -0,0 +1,2 @@
[install]
linker = "hoisted"

View File

@ -31,6 +31,8 @@ words:
- clangd
- cmake
- cmakeformat
- cmakelang
- cmakelint
- cobertura
- copr
- CPATH
@ -48,6 +50,7 @@ words:
- dyld
- eabi
- envosman
- envosmanrc
- esac
- esbuild
- esmodule
@ -57,6 +60,7 @@ words:
- gcovr
- ghes
- Graphviz
- gtar
- hadolint
- iarna
- inja
@ -72,6 +76,7 @@ words:
- libstdc
- libtinfo
- liuli
- llvmorg
- mdimporterdir
- memoizee
- mkdirp

View File

@ -1,5 +1,5 @@
## base image
FROM --platform=$BUILDPLATFORM fedora:40 AS fedora-nodejs
FROM --platform=$BUILDPLATFORM fedora:44 AS fedora-nodejs
# install nodejs
RUN dnf -y install nodejs npm && \

View File

@ -23,6 +23,7 @@ COPY "./dist/modern" "/usr/lib/setup-cpp/"
# install the cpp tools
RUN node --enable-source-maps /usr/lib/setup-cpp/setup-cpp.mjs \
--apt-fast true \
--cmake true \
--ninja true \
--task true \

View File

@ -1,5 +1,5 @@
## base image
FROM fedora:40 AS setup-cpp-fedora
FROM fedora:44 AS setup-cpp-fedora
# install nodejs
RUN dnf -y install nodejs npm && \

View File

@ -1,5 +1,5 @@
## base image
FROM fedora:40 AS setup-cpp-fedora-mingw
FROM fedora:44 AS setup-cpp-fedora-mingw
# install nodejs
RUN dnf -y install nodejs npm && \

View File

@ -1 +0,0 @@
export {};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

7
dist/legacy/assets/index-DsNLw0ut.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
export declare function setupBazel(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupCcache(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1,2 +0,0 @@
import type { InstallationInfo } from "../utils/setup/setupBin.js";
export declare function setupChocolatey(_version: string, _setupDir: string, _arch: string): Promise<InstallationInfo | undefined>;

View File

@ -1,2 +0,0 @@
export { default as mri } from "mri";
export { default as updateNotifier } from "simple-update-notifier";

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,3 +0,0 @@
import { type InstallationInfo } from "../utils/setup/setupBin.js";
/** Setup cmake */
export declare function setupCmake(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupCmakelang(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1,16 +0,0 @@
export type CompilerInfo = {
compiler: string;
version: string | undefined;
};
/**
* Detecting the compiler version by looking for a version-like pattern.
* Supports compiler names that contain hyphens and various version formats.
*
* @param compilerAndVersion - The compiler and version string
* @returns The compiler and version
*
* @nothrow It doesn't throw any error, but it logs the error if it fails to parse the compiler info
*/
export declare function getCompilerInfo(compilerAndVersion: string): CompilerInfo;
/** Installing the specified compiler */
export declare function installCompiler(compiler: string, version: string | undefined, osVersion: number[] | null, setupCppDir: string, arch: string, successMessages: string[], errorMessages: string[]): Promise<void>;

View File

@ -1 +0,0 @@
export declare function setupConan(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupCppcheck(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupCpplint(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1,3 +0,0 @@
export declare function setupDoxygen(version: string, setupDir: string, arch: string): Promise<{
binDir: string;
}>;

View File

@ -1 +0,0 @@
export declare function setupFlawfinder(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1 +0,0 @@
export {};

View File

@ -1,3 +0,0 @@
import type { InstallationInfo } from "../utils/setup/setupBin.js";
export declare const dirname: string;
export declare function setupGcc(version: string, setupDir: string, arch: string, priority?: number): Promise<InstallationInfo | undefined>;

View File

@ -1 +0,0 @@
export declare function addGccLoggingMatcher(): Promise<void>;

View File

@ -1,3 +0,0 @@
import { type InstallationInfo, type PackageInfo } from "../utils/setup/setupBin.js";
export declare function setupMingw(version: string, setupDir: string, arch: string): Promise<InstallationInfo | undefined>;
export declare function getMinGWPackageInfo(version: string, platform: NodeJS.Platform, arch: string): Promise<PackageInfo>;

View File

@ -1,3 +0,0 @@
export declare function setupGcovr(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
export declare function activateGcovLLVM(): Promise<void>;
export declare function activateGcovGCC(gccVersion: string): Promise<void>;

View File

@ -1 +0,0 @@
export declare function setupGit(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo | undefined>;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +0,0 @@
import type { InstallationInfo } from "../utils/setup/setupBin.js";
export declare function setupGraphviz(version: string, _setupDir: string, _arch: string): Promise<InstallationInfo>;

View File

@ -1 +0,0 @@
export {};

View File

@ -1,3 +0,0 @@
import { type InstallationInfo } from "../utils/setup/setupBin.js";
/** Setup infer */
export declare function setupInfer(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;

View File

@ -1,3 +0,0 @@
import { type ToolName } from "./tool.js";
export declare const DEFAULT_TIMEOUT: number;
export declare function installTool(tool: ToolName, version: string, osVersion: number[] | null, arch: string, setupCppDir: string, successMessages: string[], errorMessages: string[], _timeout?: number): Promise<void>;

View File

@ -1,2 +0,0 @@
import { type InstallationInfo } from "../utils/setup/setupBin.js";
export declare function setupKcov(versionGiven: string, setupDir: string, arch: string): Promise<InstallationInfo | undefined>;

21
dist/legacy/lib.d.ts vendored
View File

@ -1,21 +0,0 @@
import packageJson from "../package-version.json";
import { type Opts } from "./options.js";
export { GITHUB_ACTIONS } from "ci-info";
export * from "ci-log";
export { packageJson };
export { maybeGetInput, type Opts } from "./options.js";
export { type Inputs, inputs } from "./tool.js";
/**
* The result of the setup, with the success and error messages. If the setup was successful, the error messages are empty.
*/
export type SetupCppResult = {
successMessages: string[];
errorMessages: string[];
};
/**
* Set up the C++ tools
*
* @param opts - The options
* @returns The result of the setup, with the success and error messages. If the setup was successful, the error messages are empty.
*/
export declare function setupCpp(opts?: Opts): Promise<SetupCppResult>;

2
dist/legacy/lib.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
export declare function setupLizard(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupAppleClang(): Promise<void>;

View File

@ -1 +0,0 @@
export {};

View File

@ -1,11 +0,0 @@
import type { InstallationInfo } from "../utils/setup/setupBin.js";
export declare function setupLLVM(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
export declare function activateLLVM(directory: string, version: string): Promise<void>;
/**
* Setup clang-format
*
* This uses the LLVM installer on Ubuntu, and the LLVM binaries on other platforms
*/
export declare function setupClangFormat(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;
/** Setup llvm tools (clang tidy, etc.) without activating llvm and using it as the compiler */
export declare function setupClangTools(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;

View File

@ -1,11 +0,0 @@
import { type InstallationInfo } from "setup-alpine";
/**
* Try to setup LLVM via the apk package manager
*
* @param {string} version - The version of LLVM to install
*
* @returns {InstallationInfo} The installation info if the installation was successful
* @returns {undefined} If the installation fails, it will try to remove the repository and will return undefined
*/
export declare function trySetupLLVMApk(version: string): Promise<InstallationInfo | undefined>;
export declare function setupLLVMApk(version: string): Promise<InstallationInfo>;

View File

@ -1,27 +0,0 @@
import type { InstallationInfo } from "../utils/setup/setupBin.js";
export declare enum LLVMPackages {
All = 0,
ClangFormat = 1,
Core = 2
}
/**
* Try to setup LLVM via the apt package manager
*
* @param {string} version - The version of LLVM to install
* @param {LLVMPackages} packages - The packages to install
*
* @returns {InstallationInfo} The installation info if the installation was successful
* @returns {undefined} If the installation fails, it will try to remove the repository and will return undefined
*/
export declare function trySetupLLVMApt(version: string, packages?: LLVMPackages): Promise<InstallationInfo | undefined>;
/**
* Setup LLVM via the apt package manager
*
* @note assumes this is running on an Ubuntu/Debian system
*
* @param {string} version - The version of LLVM to install
* @param {LLVMPackages} packages - The packages to install
*
* @returns {InstallationInfo} The installation info if the installation was successful
*/
export declare function setupLLVMApt(version: string, packages?: LLVMPackages): Promise<InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupLLVMBin(version: string, setupDir: string, arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1,2 +0,0 @@
export declare function trySetupLLVMBrew(version: string, _setupDir: string, _arch: string): Promise<import("setup-brew/dist/InstallationInfo").InstallationInfo | undefined>;
export declare function setupLLVMBrew(version: string, _setupDir: string, _arch: string): Promise<import("setup-brew/dist/InstallationInfo").InstallationInfo>;

View File

@ -1,3 +0,0 @@
import type { PackageInfo } from "../utils/setup/setupBin.js";
export declare function getLLVMPackageInfo(version: string, platform: NodeJS.Platform, arch: string): Promise<PackageInfo>;
export declare function getLLVMAssetURL(platform: string, arch: string, version: string): Promise<string>;

View File

@ -1,4 +0,0 @@
import memoize from "memoizee";
declare function majorLLVMVersion_(version: string): number;
export declare const majorLLVMVersion: typeof majorLLVMVersion_ & memoize.Memoized<typeof majorLLVMVersion_>;
export {};

View File

@ -143,5 +143,5 @@ if [[ "${VERSION_CODENAME}" == "bookworm" ]]; then
add-apt-repository -y "${REPO_NAME}"
fi
add-apt-repository -y --no-update --remove "${REPO_NAME}"
add-apt-repository -y --remove "${REPO_NAME}"
apt-get update

View File

@ -1 +0,0 @@
export declare function setupMacOSSDK(): Promise<void>;

View File

@ -1 +0,0 @@
export declare function setupMake(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupMeson(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1,3 +0,0 @@
type MSVCVersion = "2022" | "17.0" | "2019" | "16.0" | "2017" | "15.0" | "2015" | "14.0" | "2013" | "12.0" | string;
export declare function setupMSVC(versionGiven: MSVCVersion, _setupDir: string, arch: string, sdk?: string, uwp?: boolean, spectre?: boolean): Promise<void>;
export {};

View File

@ -1,4 +0,0 @@
export declare function setupNala(version: string, _setupDir: string, _arch: string): Promise<{
binDir: string;
} | undefined>;
export declare function bashWithNala(script: string): string;

View File

@ -1,2 +0,0 @@
import { type InstallationInfo } from "../utils/setup/setupBin.js";
export declare function setupNinja(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;

View File

@ -1,3 +0,0 @@
export declare function setupOpencppcoverage(version: string | undefined, _setupDir: string, _arch: string): Promise<{
binDir: string;
} | undefined>;

View File

@ -1,15 +0,0 @@
import type { AddPathOptions } from "envosman";
import type { Inputs } from "./tool.ts";
import type { InstallationInfo } from "./utils/setup/setupBin.ts";
/**
* The options for the setup-cpp function
*/
export type Opts = Partial<Record<Inputs, string | undefined>> & {
"setup-cpp"?: boolean;
timeout?: string;
"node-package-manager"?: string;
};
/** Get an object from github actions */
export declare function maybeGetInput(key: string): string | undefined;
export declare function getSuccessMessage(tool: string, installationInfo: InstallationInfo | undefined | void): string;
export declare const rcOptions: AddPathOptions;

View File

@ -1,2 +0,0 @@
export declare function setupPowershell(version: string, setupDir: string, arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;
export declare function setupPowershellSystem(version: string | undefined, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1 +0,0 @@
export declare function setupActionsPython(version: string, _setupDir: string, arch: string): Promise<undefined>;

View File

@ -1,4 +0,0 @@
import type { InstallationInfo } from "../utils/setup/setupBin.js";
export declare function setupPython(version: string, setupDir: string, arch: string): Promise<InstallationInfo & {
bin: string;
}>;

View File

@ -1 +0,0 @@
export declare function setupSccache(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1,6 +0,0 @@
/**
* Install the setup-cpp CLI globally
* @param version - The version of setup-cpp to install
* @param packageManager - The package manager to use
*/
export declare function installSetupCpp(version: string, packageManager?: string): Promise<string | Error>;

View File

@ -1,10 +0,0 @@
import { type Opts } from "./lib.ts";
/**
* The options for the setup-cpp function
*/
type CliOpts = Opts & {
help: boolean;
version: boolean;
};
export declare function parseArgs(args: string[]): CliOpts;
export {};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
export declare function setupSevenZip(version: string, _setupDir: string, _arch: string): Promise<import("../utils/setup/setupBin.js").InstallationInfo>;

View File

@ -1,2 +0,0 @@
import { type InstallationInfo } from "../utils/setup/setupBin.js";
export declare function setupTask(version: string, setupDir: string, arch: string): Promise<InstallationInfo>;

124
dist/legacy/tool.d.ts vendored
View File

@ -1,124 +0,0 @@
import { setupBrew } from "setup-brew";
import { setupBazel } from "./bazel/bazel.js";
import { setupCcache } from "./ccache/ccache.js";
import { setupChocolatey } from "./chocolatey/chocolatey.js";
import { setupCmake } from "./cmake/cmake.js";
import { setupCmakelang } from "./cmakelang/cmakelang.js";
import { setupConan } from "./conan/conan.js";
import { setupCppcheck } from "./cppcheck/cppcheck.js";
import { setupCpplint } from "./cpplint/cpplint.js";
import { setupDoxygen } from "./doxygen/doxygen.js";
import { setupFlawfinder } from "./flawfinder/flawfinder.js";
import { setupGcc } from "./gcc/gcc.js";
import { setupMingw } from "./gcc/mingw.js";
import { setupGcovr } from "./gcovr/gcovr.js";
import { setupGit } from "./git/git.js";
import { setupGraphviz } from "./graphviz/graphviz.js";
import { setupInfer } from "./infer/infer.js";
import { setupKcov } from "./kcov/kcov.js";
import { setupLizard } from "./lizard/lizard.js";
import { setupAppleClang } from "./llvm/apple-clang.js";
import { setupClangFormat, setupClangTools, setupLLVM } from "./llvm/llvm.js";
import { setupMake } from "./make/make.js";
import { setupMeson } from "./meson/meson.js";
import { setupMSVC } from "./msvc/msvc.js";
import { setupNala } from "./nala/nala.js";
import { setupNinja } from "./ninja/ninja.js";
import { setupOpencppcoverage } from "./opencppcoverage/opencppcoverage.js";
import { setupPowershell } from "./powershell/powershell.js";
import { setupPython } from "./python/python.js";
import { setupSccache } from "./sccache/sccache.js";
import { setupSevenZip } from "./sevenzip/sevenzip.js";
import { setupTask } from "./task/task.js";
import { setupVcpkg } from "./vcpkg/vcpkg.js";
import { setupVCVarsall } from "./vcvarsall/vcvarsall.js";
export declare const llvmSetups: {
readonly llvm: typeof setupLLVM;
readonly clang: typeof setupLLVM;
readonly "clang++": typeof setupLLVM;
};
export declare const gccSetups: {
readonly gcc: typeof setupGcc;
readonly "g++": typeof setupGcc;
};
export declare const mingwSetups: {
readonly mingw: typeof setupMingw;
};
export declare const msvcSetups: {
readonly msvc: typeof setupMSVC;
readonly cl: typeof setupMSVC;
readonly msbuild: typeof setupMSVC;
readonly visualstudio: typeof setupMSVC;
};
export declare const appleClangSetups: {
readonly appleclang: typeof setupAppleClang;
readonly applellvm: typeof setupAppleClang;
readonly "apple-clang": typeof setupAppleClang;
readonly "apple-llvm": typeof setupAppleClang;
};
export declare const llvmTools: string[];
/** The setup functions */
export declare const setups: {
readonly cmake: typeof setupCmake;
readonly ninja: typeof setupNinja;
readonly vcpkg: typeof setupVcpkg;
readonly bazel: typeof setupBazel;
readonly conan: typeof setupConan;
readonly meson: typeof setupMeson;
readonly gcovr: typeof setupGcovr;
readonly opencppcoverage: typeof setupOpencppcoverage;
readonly OpenCppCoverage: typeof setupOpencppcoverage;
readonly ccache: typeof setupCcache;
readonly sccache: typeof setupSccache;
readonly doxygen: typeof setupDoxygen;
readonly graphviz: typeof setupGraphviz;
readonly cppcheck: typeof setupCppcheck;
readonly cpplint: typeof setupCpplint;
readonly flawfinder: typeof setupFlawfinder;
readonly lizard: typeof setupLizard;
readonly infer: typeof setupInfer;
readonly "clang-tidy": typeof setupClangTools;
readonly clangtidy: typeof setupClangTools;
readonly "clang-format": typeof setupClangFormat;
readonly clangformat: typeof setupClangFormat;
readonly vcvarsall: typeof setupVCVarsall;
readonly kcov: typeof setupKcov;
readonly make: typeof setupMake;
readonly task: typeof setupTask;
readonly sevenzip: typeof setupSevenZip;
readonly "7zip": typeof setupSevenZip;
readonly "7z": typeof setupSevenZip;
readonly cmakelang: typeof setupCmakelang;
readonly "cmake-lint": typeof setupCmakelang;
readonly "cmake-format": typeof setupCmakelang;
readonly cmakelint: typeof setupCmakelang;
readonly cmakeformat: typeof setupCmakelang;
readonly appleclang: typeof setupAppleClang;
readonly applellvm: typeof setupAppleClang;
readonly "apple-clang": typeof setupAppleClang;
readonly "apple-llvm": typeof setupAppleClang;
readonly msvc: typeof setupMSVC;
readonly cl: typeof setupMSVC;
readonly msbuild: typeof setupMSVC;
readonly visualstudio: typeof setupMSVC;
readonly mingw: typeof setupMingw;
readonly gcc: typeof setupGcc;
readonly "g++": typeof setupGcc;
readonly llvm: typeof setupLLVM;
readonly clang: typeof setupLLVM;
readonly "clang++": typeof setupLLVM;
readonly git: typeof setupGit;
readonly nala: typeof setupNala;
readonly brew: typeof setupBrew;
readonly choco: typeof setupChocolatey;
readonly python: typeof setupPython;
readonly powershell: typeof setupPowershell;
readonly pwsh: typeof setupPowershell;
};
export type ToolName = keyof typeof setups;
/** The tools that can be installed */
export declare const tools: Array<ToolName>;
/** The possible inputs to the program */
export type Inputs = keyof typeof setups | "compiler" | "architecture" | "timeout";
/** An array of possible inputs */
export declare const inputs: Array<Inputs>;

View File

@ -1,4 +0,0 @@
/**
* Save the list of all releases of a GitHub repository to a json file
*/
export declare function saveGitHubAssetList(owner: string, repo: string, path: string, filterAssets?: (asset: string) => boolean): Promise<void>;

View File

@ -1,27 +0,0 @@
type Options = {
/**
* The directory to download the HTML files
*/
htmlDownloadDir: string;
/**
* The path to write the output json file
*/
path: string;
/**
* A generator that returns the version and the URL of the asset to download
*
* The generator should return a tuple of the version and the URL
*/
getAssetVersionAndURL: () => Generator<[string, string], void, unknown>;
/**
* Filter the assets
*/
filterAssets?: (asset: string) => boolean;
};
/**
* Save the assets of the HTML files to a json file
*
* The assets are extracted from the href of the html files
*/
export declare function saveHTMLAssets(opts: Options): Promise<void>;
export {};

View File

@ -1,69 +0,0 @@
/**
* The list of assets
* @key tag The tag of the release
* @value assets The names of the assets of the release
*/
export type Assets = Record<string, string[] | undefined>;
/**
* Load the list of assets from a json file
*/
export declare function loadAssetList(path: string): Promise<Assets>;
/**
* The options to match the asset
*/
export type MatchAssetOpts = {
/**
* The version to match
*/
version: string;
/**
* The keywords that must be in the asset name.
* If the element is a string, the keyword must be in the asset name.
* If the element is an array, one of the keywords must be in the asset name.
* @default []
*/
keywords?: (string | string[])[];
/**
* Optional keywords that are not required to be in the asset name
* but increase the score of the asset if they are present
*
* if the element is a string, the keyword must be in the asset name
* if the element is an array, one of the keywords must be in the asset name
* @default []
*/
optionalKeywords?: (string | string[])[];
/**
* Custom version compare function
* @param candidate The candidate version
* @param coeredVersion The coerced version to compare against
* @returns true if the candidate version satisfies the version
*
* @default semverSatisfies
*/
versionSatisfies?: (candidate: string, coeredVersion: string) => boolean;
/**
* Custom tag filter and map function
* @param tag The tag to filter and map
* @returns The mapped tag or undefined if the tag should be
* excluded from the search
* @default undefined
*/
filterMapTag?: (tag: string) => string | undefined;
/**
* Custom asset name filter function
* @param asset The asset name to filter
* @returns true if the asset should be included in the search
* @default undefined
*/
filterName?: (asset: string) => boolean;
};
/**
* Match the asset that matches the version and given keywords
* @param assets The list of assets
* @param opts The options to match the asset
* @returns The tag and name of the asset that matches the version and keywords
*/
export declare function matchAsset(assets: Assets, opts: MatchAssetOpts): {
tag: string;
name: string;
} | undefined;

View File

@ -1,4 +0,0 @@
export * from "crypto";
import * as crypto from "crypto";
export default crypto;
export { randomUUID } from "./randomuuid.mjs";

View File

@ -1 +0,0 @@
export const randomUUID: () => import("crypto").UUID;

View File

@ -1,4 +0,0 @@
declare const _default: any;
export default _default;
export declare const access: any, appendFile: any, chmod: any, chown: any, copyFile: any, lchmod: any, lchown: any, link: any, lstat: any, mkdir: any, mkdtemp: any, open: any, readdir: any, readFile: any, readlink: any, realpath: any, rename: any, rmdir: any, stat: any, symlink: any, truncate: any, unlink: any, utimes: any, writeFile: any;
export declare const rm: any;

View File

@ -1,2 +0,0 @@
export declare const pipeline: Function;
export declare const finished: Function;

View File

@ -1,8 +0,0 @@
export declare const x86_64: string[];
export declare const x86: string[];
export declare const arm64: string[];
export declare const armv7: string[];
export declare const powerpc64le: string[];
export declare const sparc64: string[];
export declare const sparcv9: string[];
export declare function getDebArch(arch: string): string;

View File

@ -1 +0,0 @@
export declare function hasDnf(): boolean;

Some files were not shown because too many files have changed in this diff Show More