Commit Graph

822 Commits

Author SHA1 Message Date
Amin Yahyaabadi d8a5d20641
fix: downgrade gcovr to 5.2 2024-01-22 02:28:55 -08:00
Amin Yahyaabadi e05c1f4361
fix: update llvm to 17.0.6 2024-01-22 02:27:21 -08:00
Amin Yahyaabadi 47e4597aa4
test: remove .js extension for typescript files for jest 2024-01-22 02:07:57 -08:00
Amin Yahyaabadi 8b2ab43823
fix: add fs/promises compat for node 12 2024-01-22 01:54:10 -08:00
Amin Yahyaabadi 4c125e89f7
fix: update dependencies 2024-01-22 01:41:20 -08:00
Kefu Chai 3d4cc40549 fix: use higher priority when installing llvm alternatives
before this change, gcc and g++ are installed using `updateAptAlternatives()`
with the same priority of 40 when they are installed along with
ld and libstdc++ as the dependencies of clang and llvm. but both
gcc and clang are installed using the same priority of 40 on ubuntu,
and the same applies to g++ and clang++. this renders it impossible
to use the default compilers of cc and cxx when clang/llvm is installed
using setup-cpp on an ubuntu host, as gcc is always prefered over
clang by the update-alternatives, as their priorities are identical.

in this change, the "priority" parameter is added to the setupGcc(),
so that we can specify a different priority when installing llvm.
strictly speaking, this is not necessary. as we can just use a higher
priority when calling updateAptAlternatives() in llvm/llvm.ts. but by
making it more explicit, we can ensure that we always prefer llvm over
gcc when installing llvm.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-01-22 14:25:47 +08:00
Amin Yahyaabadi 7987f9195b fix: use llvm 17.0.4 on Windows 2023-11-14 11:38:59 -08:00
Amin Yahyaabadi b532e97a17 fix: update llvm to 17.0.5 2023-11-14 11:15:00 -08:00
Amin Yahyaabadi 0f59570d63 fix: update Conan, Meson, Task 2023-11-14 11:10:02 -08:00
Iain Chesworth ec2fe0a7d5 Add Ubuntu 22.04 specific default for LLVM 17.0.2 2023-10-21 23:37:19 +11:00
Iain Chesworth f1914d3936 Update default on Windows to 17.0.3, Linux to 17.0.2, and the "default" to 17.0.3. 2023-10-21 23:31:38 +11:00
Iain Chesworth 0af408ae6a Add support for LLVM 17 on Windows, Linux. 2023-10-21 23:18:02 +11:00
Amin Yahyaabadi 6a37ff7253 fix: fix grantUserWriteAccess for cpprc 2023-09-11 11:47:10 -07:00
Amin Yahyaabadi 4f69ae3519 feat: use grantUserWriteAccess from admina and await it 2023-09-11 11:05:16 -07:00
Amin Yahyaabadi 17286fce04 fix: specify the major version for clang-format 2023-09-11 09:09:40 -07:00
Amin Yahyaabadi edd2c831ed fix: remove pip caching from actions_python 2023-09-11 01:21:43 -07:00
Amin Yahyaabadi d3a4b94794 fix: choose clang-format before other patches 2023-09-11 00:28:17 -07:00
Amin Yahyaabadi 734bc14554 feat: support only installing clang-format on Ubuntu 2023-09-10 23:58:16 -07:00
Amin Yahyaabadi 96396ce7c5 perf: add dynamically loaded cache-dependencies for actions python
This reduces the main bundle size by ⚠️  1.28 MB minified! This bundle is loaded only when caching is enabled.

`setup-python` is used in [`setup-cpp`](https://github.com/aminya/setup-cpp) as a library. This optimization reduces the bundle size for that package as well. The build system of `setup-python` uses `ncc`, which doesn't immediately benefit from this change, but setup-cpp uses `Parcel`, which shows this huge improvement.

The reason for this huge reduction is that caching the dependencies uses the `@actions/cache` package, which is an extremely large package with big dependencies. The bundle size before this separation shows this:
![Screenshot_20230907_230625](https://github.com/actions/setup-python/assets/16418197/ec1baf34-85c3-459d-b8cf-894899959b2c)
2023-09-07 23:21:19 -07:00
Amin Yahyaabadi 99191e7285 fix: async grantUserWriteAccess 2023-09-07 13:47:30 -07:00
Amin Yahyaabadi ff2b1155f8 fix: fix memoization for promises 2023-09-07 13:46:36 -07:00
Amin Yahyaabadi 47a297a43e fix: use pip index versions to check the existence of a package 2023-09-07 11:27:34 -07:00
Amin Yahyaabadi af4a6f813e fix: check for pip existence outside the try/catch loop 2023-09-07 11:04:26 -07:00
Amin Yahyaabadi 3fa4b5925a fix: use the system package manager instead of pip for standard modules 2023-09-06 21:38:08 -07:00
Amin Yahyaabadi 678aa3361f fix: use an info level message for reboot requirements for choco 2023-09-06 21:29:38 -07:00
Amin Yahyaabadi 6af571471a fix: log the pip fallback error 2023-09-06 21:29:20 -07:00
Amin Yahyaabadi ddbec096fd fix: fix venv installation warning 2023-09-06 21:18:43 -07:00
Amin Yahyaabadi 8d969d8dbd test: remove nala after testing it 2023-09-05 12:14:09 -07:00
Amin Yahyaabadi aa96482204 test: mark the skipped tests in jest 2023-09-04 19:27:23 -07:00
Amin Yahyaabadi b10559687a test: fix the gcovr version tests 2023-09-04 19:25:56 -07:00
Amin Yahyaabadi 9303e93d38 fix: update cmake, gcovr, kcov, meson, task, doxygen, gcc 2023-09-03 17:42:40 -07:00
Amin Yahyaabadi 62674fbcdd tests: skip some msvc installation tests based on the Windows version 2023-09-01 11:23:25 -07:00
Amin Yahyaabadi 86eecc382e fix: default to LLVM 16 on Windows and Linux 2023-09-01 10:02:59 -07:00
Amin Yahyaabadi 20531c3692 fix: install venv for using pipx 2023-09-01 03:46:12 -07:00
Amin Yahyaabadi 42d3ea447e fix: add system package manager fallback for pip packages 2023-09-01 03:44:04 -07:00
Amin Yahyaabadi 0916dc5cfb fix: fix library installation via pip + fix conan 2023-09-01 03:28:05 -07:00
Amin Yahyaabadi 65c4b0f5dc fix: fix checking for pipx existence 2023-09-01 03:10:24 -07:00
Amin Yahyaabadi 512202e7f4 fix: handle upgrade/user flags for pipx 2023-09-01 03:02:09 -07:00
Amin Yahyaabadi 4e60284097 feat: install python packages using pipx to avoid conflicts with system 2023-09-01 02:49:28 -07:00
Amin Yahyaabadi 1f59ba33f1 fix: use user flag when installing packages via pip 2023-09-01 02:36:39 -07:00
Amin Yahyaabadi 307b9178a3 fix: prevent adding /usr/bin if it is already on the PATH 2023-08-31 22:42:47 -07:00
Amin Yahyaabadi 511e70eef5 test: disable cppcheck test on Windows 2023-08-22 11:45:19 -07:00
Amin Yahyaabadi 95f86c5d8c tests: disable cppcheck on windows 2023-08-21 23:12:00 -07:00
Amin Yahyaabadi 54cbc0f1bf fix: fix the timeout conversion and add a custom message 2023-08-21 21:58:10 -07:00
Amin Yahyaabadi 4c53a2d376 fix: ensure constant initialization order 2023-08-21 21:41:17 -07:00
Amin Yahyaabadi 52047bd03a fix: add timeout for the LLVM installer call 2023-08-21 20:21:34 -07:00
Amin Yahyaabadi d7596dd449 feat: fail fast inside CI when an error happens 2023-08-21 20:16:33 -07:00
Amin Yahyaabadi d93dc2b536 feat: add timeout for installation of the tools 2023-08-21 20:11:21 -07:00
Amin Yahyaabadi 99a4fe7118 fix: make llvm installer less verbose for non-debug 2023-08-21 19:29:23 -07:00
Amin Yahyaabadi bc25e4e3b4 perf: memoize setupLLVMWithoutActivation 2023-07-24 15:48:38 -07:00
Amin Yahyaabadi 10c725c53f test: remove some long-running duplicate tests for kcov/llvm 2023-07-24 15:48:23 -07:00
Amin Yahyaabadi f0d23edbf1 fix: update dependencies 2023-07-24 13:20:13 -07:00
abeimler 9af05511cb Merge branch 'feature/cross-mingw' of https://github.com/abeimler/setup-cpp into feature/cross-mingw 2023-07-20 12:29:20 +02:00
abeimler f849ee113e fix: docker mingw build (test) 2023-07-20 12:26:09 +02:00
Amin Yahyaabadi 69ae3d5dd5 fix: report errors if yay is needed but it is not installed 2023-07-20 03:12:39 -07:00
Amin Yahyaabadi 7ccf39eac3 chore: fix linting errors 2023-07-20 02:44:13 -07:00
abeimler fb48106188 fix: mingw version 2023-07-20 00:26:55 +02:00
abeimler 5ea2c0f2ed Merge branch 'feature/cross-mingw' of https://github.com/abeimler/setup-cpp into feature/cross-mingw 2023-07-19 23:40:18 +02:00
abeimler a884ad83aa Merge branch 'master' of https://github.com/abeimler/setup-cpp into feature/cross-mingw 2023-07-19 23:31:19 +02:00
Amin Yahyaabadi 5f5040c0c8 fix: handle libc++ conflicting packages for LLVM 2023-07-17 22:51:54 -07:00
Amin Yahyaabadi 2e790802d0 fix: fix conflicts between clang apt packages 2023-07-17 14:21:12 -07:00
Amin Yahyaabadi dd2f1139ce fix: catch the errors of setupLLVMApt correctly 2023-07-17 13:55:49 -07:00
Amin Yahyaabadi 3206aaa7c3 fix: fix passing the version number to the llvm installer 2023-07-17 13:44:34 -07:00
Amin Yahyaabadi da1eb59304 fix: install clang-tidy and clang-format as well 2023-07-17 13:29:53 -07:00
Amin Yahyaabadi 60eecceb8a fix: add the bin directory to the path for llvm installer 2023-07-17 11:44:40 -07:00
Amin Yahyaabadi c3a7043921 fix: pass the llvm version to the installer 2023-07-17 11:21:11 -07:00
Amin Yahyaabadi e7304e1143 fix: install the packages needed for the llvm installer 2023-07-17 11:01:22 -07:00
Amin Yahyaabadi 71e227aa5f fix: fix the path for the ubuntu LLVM installer 2023-07-17 10:15:53 -07:00
Amin Yahyaabadi b195200069 feat: support llvm 16.0.6 2023-07-16 23:52:38 -07:00
Amin Yahyaabadi 9fa897444d fix: fix: dnf search 2023-07-16 23:42:25 -07:00
Amin Yahyaabadi 41b2cf629a feat: support installing multiple dnf packages 2023-07-16 03:12:24 -07:00
Amin Yahyaabadi dd9ff769c8 fix: refactor LLVM installation 2023-07-16 02:48:34 -07:00
Amin Yahyaabadi 70a091c663 feat: support installing llvm via apt on Ubuntu 2023-07-15 21:46:28 -07:00
Amin Yahyaabadi 3a3a6aeea9 fix: fix nala apt key addition 2023-07-15 18:53:44 -07:00
Amin Yahyaabadi 6326464ed5 fix: nala installation on ubuntu 2023-07-15 18:33:56 -07:00
Amin Yahyaabadi 0b443e82cc fix: relax and coerce the found pip version 2023-07-15 16:16:34 -07:00
Amin Yahyaabadi 471b55347a fix: add UTF-8 locale for Nala if it is not already defined 2023-07-06 12:35:54 -07:00
Amin Yahyaabadi 70bf67fc05 feat: install python/pip binaries for python3 2023-07-04 12:30:06 -07:00
Amin Yahyaabadi 4cbbb57e1f feat: upgrade setup-tools and refactor package installer 2023-07-04 12:29:30 -07:00
Amin Yahyaabadi b5439543fd fix: check all the python/pip binaries on the PATH 2023-06-29 13:58:48 -07:00
Amin Yahyaabadi d841abd854 fix: set the minimum python version 3.7.9 2023-06-29 13:49:06 -07:00
Amin Yahyaabadi 5ab4d6a34d fix: refactor checking for python binary 2023-06-29 13:21:36 -07:00
Amin Yahyaabadi 130062b173 fix: use min versions instead of default versions 2023-06-28 17:23:48 -07:00
Amin Yahyaabadi 67a5cc536b fix: do not pani on addAptKey server errors 2023-06-28 16:45:32 -07:00
Amin Yahyaabadi 201ecd0a36 feat: upgrade pip after system installation 2023-06-28 16:43:01 -07:00
Amin Yahyaabadi 43600ff17c fix: remove unused addPythonBaseExecPrefix 2023-06-28 16:20:43 -07:00
Amin Yahyaabadi 9aecf4658e fix: parallel findPython and findPip 2023-06-28 16:19:00 -07:00
Amin Yahyaabadi f708497511 fix: memoize ubuntuVersion and use it everywhere 2023-06-28 16:06:31 -07:00
Amin Yahyaabadi cfa0cc5326 feat: support ubuntu version on Ubuntu-based distros 2023-06-28 16:04:33 -07:00
Amin Yahyaabadi 76c4891c79 fix: fix setupPipSystem 2023-06-28 15:46:43 -07:00
Amin Yahyaabadi 09fad1b45b feat: use the setupDir in findPython 2023-06-28 15:44:25 -07:00
Amin Yahyaabadi f6ebfc1d77 fix: memoize addPythonBaseExecPrefix 2023-06-28 15:22:03 -07:00
Amin Yahyaabadi 08aaab1859 feat: add execPaths when installing python 2023-06-28 15:16:31 -07:00
Amin Yahyaabadi 6637fda894 feat: install pip and wheel in all cases 2023-06-28 15:10:33 -07:00
Amin Yahyaabadi 0f6b349a1e feat: more robust pip installation and upgrade 2023-06-28 14:45:15 -07:00
Amin Yahyaabadi 7039a1a602 feat: improve pip installation and detection 2023-06-27 17:10:13 -07:00
Amin Yahyaabadi 24a5993a98 fix: handle edge-cases for default versions 2023-06-14 00:47:34 -07:00
Amin Yahyaabadi 18a5143dce fix: make sure the tool has a default version before using it 2023-06-14 00:22:24 -07:00
Amin Yahyaabadi 775ff238d7 feat: improve default versions for non-LTS ubuntus 2023-06-14 00:15:13 -07:00
Amin Yahyaabadi aa57ff04be feat: use a table to print the available options in the cli [skip test] 2023-05-26 11:19:46 -07:00
Amin Yahyaabadi a9bb29b5d1 fix: refactor main file into separate files 2023-05-24 23:52:48 -07:00
Amin Yahyaabadi 1f515ade14 fix: remove json assertion 2023-05-24 23:47:45 -07:00
Amin Yahyaabadi 23ea3efed0 fix: pass a minimal version of package.json to updater 2023-05-24 22:24:31 -07:00
Amin Yahyaabadi 5c3b317006 fix: use simple-update-notifier instead of update-notifier 2023-05-24 22:07:48 -07:00
Amin Yahyaabadi f5342df15b feat: check if update-notifier is installed before using it 2023-05-24 22:06:37 -07:00
Amin Yahyaabadi e9ac0095ac fix: fix the updateNotifier export 2023-05-24 22:06:26 -07:00
Amin Yahyaabadi 3797303356 fix: do not use fs/promises 2023-05-24 22:06:24 -07:00
Amin Yahyaabadi 6c19b13d80 fix: downgrade update-notifier to 5.1.0 2023-05-24 22:05:54 -07:00
Amin Yahyaabadi 67e7d24a8b feat: check for the setup-cpp updates and notify 2023-05-24 22:05:44 -07:00
Amin Yahyaabadi 9c18ad87a1 fix: fix apt-cache show and use gcc 11 on Ubuntu 20 2023-05-24 18:45:01 -07:00
Amin Yahyaabadi fbb91d5a68 fix: patch kcov for gcc 13 2023-05-24 17:04:58 -07:00
Amin Yahyaabadi 2d48e7221f feat: support kcov 41 and default to it 2023-05-24 16:30:15 -07:00
Amin Yahyaabadi 5e5a8d08d2 fix: use apt-cache show instead of apt-get show 2023-05-24 16:23:17 -07:00
Amin Yahyaabadi 11b44434f5 fix: fix all the linting errors 2023-05-24 14:57:08 -07:00
Amin Yahyaabadi 36a5b861ce feat: fallback to version-less package on arch if not found 2023-05-24 14:12:42 -07:00
Amin Yahyaabadi a0488f7712 feat: fallback to version-less package on apt if not found 2023-05-24 13:18:24 -07:00
Amin Yahyaabadi 455be30e8f fix: use gcc 13 on ubuntu 2023-05-24 13:05:47 -07:00
Amin Yahyaabadi 4080e4c2bb fix: fix gcc 13 on Arch linux 2023-05-24 10:49:00 -07:00
Amin Yahyaabadi 543427b047 feat: update cmake, conan, meson. task, doxygen 2023-05-23 21:44:29 -07:00
Amin Yahyaabadi e52e9261d0 feat: default to gcc 13 2023-05-23 21:42:30 -07:00
Amin Yahyaabadi b4b0e08b92 feat: print the supported versions when throwing errors 2023-05-23 21:19:15 -07:00
Amin Yahyaabadi 5c2a3415c5 feat: support llvm 16.0.4 2023-05-23 21:12:52 -07:00
Amin Yahyaabadi b31d8056a6 feat: support Mingw 13 2023-05-23 21:10:03 -07:00
Amin Yahyaabadi 5959d53e9f fix: do not set CPATH when using LLVM 2023-05-23 21:00:02 -07:00
Amin Yahyaabadi 00c09d28e6 fix: update path-exists 2023-04-23 01:09:38 -07:00
Amin Yahyaabadi 7052a18b1c Merge branch 'master' into esm 2023-04-23 01:03:19 -07:00
Amin Yahyaabadi ea04bfe6af fix: replace npmcli/ci-detect with ci-info 2023-04-22 02:31:04 -07:00
Amin Yahyaabadi d713a6703d fix: update execa 2023-04-22 02:19:33 -07:00
Amin Yahyaabadi 8f35efa1fd feat: support LLVM 16 2023-04-21 14:19:59 -07:00
Amin Yahyaabadi 7b993ab70d fix: update setup-python and other deps 2023-04-21 11:38:35 -07:00
Amin Yahyaabadi 9976e18629 fix: use gcc 12 for arch linux 2023-04-21 11:20:18 -07:00
abeimler a2d7d8fb1b Merge branch 'master' into feature/cross-mingw 2023-04-02 01:32:43 +02:00
Amin Yahyaabadi e31abde3c6 chore: add types for numerous and time-delta 2023-01-22 14:50:08 -08:00
Amin Yahyaabadi 3b424a372f fix: add shabang for running setup-cpp.js 2023-01-19 14:06:43 -08:00
Amin Yahyaabadi 477360fbee fix: rename the executable to `setup-cpp.js`
BREAKING CHANGE the executable is now `setup-cpp.js`
2023-01-17 21:40:21 -08:00
Amin Yahyaabadi b0d65272c0 fix: clean up the syncVersions code 2023-01-17 21:06:23 -08:00
StevenvdSchoot e550b921dd Make syncVersions only sync versions of used tools
When syncVersions sync the versions of the provided tools, it should only change the version of a tool that has a defined version. Otherwise tools may get installed that were not meant to be installed.
In particular this solves an issue where, when an explicit version for clangtidy is specified and the compiler is gcc, we would install llvm on top of gcc.
2023-01-17 22:51:40 +01:00
Amin Yahyaabadi 4e183b6107 fix: fix bug in the Windows local PATH variable name 2023-01-15 01:48:12 -08:00
Amin Yahyaabadi 70e69b7219 fix: update conan, meson, task, doxygen, cmake 2023-01-15 01:36:10 -08:00
abeimler 43fd6604a1 feat: add mingw cross compiler
* add docker mingw tests
* add node16 test
2022-12-29 22:00:49 +01:00
Amin Yahyaabadi ecd2b40e2e chore: 0.24.1 [skip test] 2022-12-21 14:21:10 -08:00
Amin Yahyaabadi 3eac98035f fix: retry the installation of doxygen on Windows in case of errors 2022-12-21 13:49:50 -08:00
Amin Yahyaabadi 84ecfb4b29 fix: retry tool download process in case of errors 2022-12-21 13:46:00 -08:00
Amin Yahyaabadi a2e86325bf fix: fix llvm 15 on Fedora/Arch 2022-12-06 22:29:32 -08:00
Amin Yahyaabadi bd369094f9 fix: fix llvm 15 on ubuntu - add logging for extraction 2022-12-06 21:56:16 -08:00
Amin Yahyaabadi 0e9ce85be9 fix: add the missing macos/windows versions 2022-12-06 21:05:40 -08:00
Amin Yahyaabadi 79523d501b feat: default to llvm 15 2022-12-06 20:53:02 -08:00
Amin Yahyaabadi cd3be8a4d2 feat: support up to LLVM 15.0.6 2022-12-06 20:46:52 -08:00
Amin Yahyaabadi 757782e485 fix: parallelize initApt 2022-11-22 22:17:42 -08:00
Amin Yahyaabadi 5528c08f49 fix: parallelize apt update alternatives 2022-11-22 22:11:47 -08:00