Commit Graph

807 Commits

Author SHA1 Message Date
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
Amin Yahyaabadi 5505d67258 fix: escape regex of the name-version apt package 2022-11-22 21:51:51 -08:00
Amin Yahyaabadi dac72316df feat: parallelize the apt package installation chunks 2022-11-22 21:33:06 -08:00
Amin Yahyaabadi eea16aa8c7 fix: down-grade path-exists to v4.0.0 due to node:fs usage 2022-11-22 20:59:40 -08:00
Amin Yahyaabadi b625cd0632 perf: make updateAlternatives async 2022-11-22 20:52:02 -08:00
Amin Yahyaabadi ebd90dd38d perf: parallelized checking of the file existence 2022-11-22 20:51:18 -08:00
Amin Yahyaabadi 9be6087e95 fix: install libtinfo5 for llvm 10 and older 2022-11-20 23:41:41 -08:00
Amin Yahyaabadi 7f6189b28f fix: fix eslint errors [skip ci] 2022-11-20 23:34:33 -08:00
Amin Yahyaabadi d20e347c91 feat: de-duplicate cpprc 2022-11-20 23:14:33 -08:00
Amin Yahyaabadi 70c228ecc9 fix: quote the environment variables before adding 2022-11-20 22:45:45 -08:00
Amin Yahyaabadi 66a38eb0fb fix: fix getting the brew path on linux 2022-11-20 21:26:31 -08:00
Amin Yahyaabadi ded42d5c2f fix: make cpprc editable by the user 2022-11-20 21:19:18 -08:00
Amin Yahyaabadi f9582b64f0 fix: add the brew the path on Linux 2022-11-20 20:54:17 -08:00
Amin Yahyaabadi 3ba3a1b365 fix: fix the brew installation on Linux 2022-11-20 19:58:50 -08:00
Amin Yahyaabadi 45d9ac5ca2 feat: add sccache support 2022-11-20 19:14:20 -08:00
Amin Yahyaabadi 488d899a8f test: skip powershell installation in GitHub Actions 2022-11-20 18:44:41 -08:00