Commit graph

40 commits

Author SHA1 Message Date
Matthieu Darbois
2652534ead
feature: fallback to pre-release when no stable version is found (#414)
This allows to specify version like `3.11` or `pypy3.10` in workflows before those versions are released.
This lessen the burden for users of `setup-python` by not having to modify their workflow twice: once when a pre-release is available (e.g. `3.11-dev`) and once when the first stable release is published (e.g. `3.11`)
2023-01-27 16:19:31 -05:00
Oran Avraham
8b89ef08a0
Use correct Poetry config when collecting Poetry projects (#447)
* Use correct Poetry config when collecting Poetry projects

When collecting Poetry projects for caching, a '**/poetry.lock' glob is
used.  However, in order to process the Poetry configuration, the
"poetry" command is run from the repo's root directory; this causes
Poetry to return an invalid configuration when there is a Poetry project
inside an inner directory.

Instead of running a single Poetry command, glob for the same pattern,
and run a Poetry command for every discovered project.

* Fix typo: saveSatetSpy -> saveStateSpy

* poetry: Support same virtualenv appearing in multiple projects

* Add nested Poetry projects test

* poetry: Set up environment for each project individually

* tests/cache-restore: Do not look for dependency files outside `data`

When the default dependency path is used for cache distributors, they
are looking for the dependency file in the project's root (including the
source code), which leads to tests taking a significant amount of time,
especially on Windows runners.  We thus hit sporadic test failures.

Change the test cases such that dependency files are always searched for
inside of `__tests__/data`, ignoring the rest of the project.

* poetry: Simplify `virtualenvs.in-project` boolean check

* README: Explain that poetry might create multiple caches

* poetry: Run `poetry env use` only after cache is loaded

The virtualenv cache might contain invalid entries, such as virtualenvs
built in previous, buggy versions of this action.  The `poetry env use`
command will recreate virtualenvs in case they are invalid, but it has
to be run only *after* the cache is loaded.

Refactor `CacheDistributor` a bit such that the validation (and possible
recreation) of virtualenvs happens only after the cache is loaded.

* poetry: Bump cache primary key
2023-01-03 11:13:00 -05:00
Jongwoo Han
206e984b94
refactor: Use early return pattern to avoid nested conditions (#566)
* refactor: Use early return pattern

Signed-off-by: jongwooo <jongwooo.han@gmail.com>

* fix: Replace throw with warn

Signed-off-by: jongwooo <jongwooo.han@gmail.com>

Signed-off-by: jongwooo <jongwooo.han@gmail.com>
2022-12-19 14:00:46 +01:00
MaksimZhukov
2c3dd9e7e2
Add OS info to the error message (#559) 2022-12-07 18:12:42 +01:00
Dmitry Shibanov
2f06e9da25
Add check-latest functionality (#406) 2022-07-25 16:54:04 +02:00
Dmitry Shibanov
49a521fa06
Fix poetry version (#445) 2022-07-25 15:02:06 +02:00
Milos Pantic
592a7a7a45
Add linux os release info to primary key (#467) 2022-07-19 14:20:19 +02:00
mayeut
412091c1e0
Fix tests for update-environment==false 2022-07-02 11:50:48 +02:00
IvanZosimov
161c3a68f0 Merge branch 'main' into CacheLibVersionUpdate 2022-06-30 14:18:06 +02:00
Dmitry Shibanov
766e8c6088
Fixing pipenv CI (#444)
* work on fixing pipenv

* change installation of pipenv to curl

* add different logs

* regenerate pipefile.lock

* change pipenv ci
2022-06-29 13:09:14 -04:00
Matthieu Darbois
00a5248c77
feature: add update-environment input (#411)
This option allows to specify if the action shall update environment variables (default) or not.
This allows to use the setup-python action in a composite action without side effect (except downloading/installing python if version is missing).
2022-06-29 11:00:51 -04:00
IvanZosimov
01408cef88 Update cache-save.ts to support @actions/cache v3.0.0 lib
Made package.json and package-lock.json to use @actions/cache v3.0.0,
updated logic of the cache-save operation and added unit-tests
2022-06-28 15:17:50 +02:00
mayeut
ff706563d7
feature: add a python-path output
Expose a `python-path` output containing the chosen Python executable path.
2022-05-24 21:02:03 +02:00
Matthieu Darbois
fff15a21cc
Use pypyX.Y for PyPy python-version input (#349)
This versioning scheme is consistent with other
tools in the python ecosystem so it feels more natural
and allows better interaction with other tools.

fixes #346
2022-05-18 15:20:53 +02:00
Alexey
21c0493ecf
Cache hit output (#373)
* Remove useless await in getCacheDistributor calls

* Added cache-hit output

* Build action with cache-hit output

* Remove PromiseReturnType, add matchedKey == primaryKey check

* Update cache-distributor.ts

* Fix tests and rebuild
2022-04-05 09:57:13 -04:00
Vladimir Safonkin
7885ec3539 Rework pipenv caching test (#375)
* Rework python-pipenv-dependencies-caching test

* Update Pipfile.lock hash in the tests

* Rework python-pipenv-dependencies-caching-path test

* Set location for pipenv test

* Remove requests package from tests

* Test pipenv without caching

* Enable pipenv cache
2022-04-04 09:12:24 -04:00
Shubham Tiwari
05fb98de9a
Cache on ghes (#363)
* initial changes

* updated version

* format check

* refactored code

* updated test cases

* Update src/utils.ts

Co-authored-by: Brian Cristante <33549821+brcrista@users.noreply.github.com>

* Update utils.ts

* Update utils.test.ts

* review comments

* dist update

* Review comment

* update version

* updated version

Co-authored-by: Brian Cristante <33549821+brcrista@users.noreply.github.com>
2022-03-31 15:11:27 -04:00
Patrick Arminio
aac0ef93ba
Build and format 2022-03-25 22:54:10 -05:00
Patrick Arminio
0ebf7997c4
Remove unused file 2022-03-25 22:53:31 -05:00
Patrick Arminio
7c950ebdca
Add more tests 2022-03-25 22:53:30 -05:00
Patrick Arminio
1259541ec8
Add tests 2022-03-25 22:53:30 -05:00
Dmitry Shibanov
0ebf233433
Remove legacy PyPy input (#342) 2022-02-28 10:19:48 +03:00
Dmitry Shibanov
7f80679172
Add fix for Windows caching of pip (#332) 2022-02-04 14:00:41 +03:00
Hugo van Kemenade
ba33a692f1
Include Python version in pip cache key (#303) 2022-01-31 13:42:08 +03:00
Dmitry Shibanov
280924fbef
Implementation of python's caching (#266) 2021-11-17 13:31:22 +03:00
Alena Sviridenko
dc73133d4d
Fix PyPy installation on Windows to adopt new parameters format (#201)
* test for pypy new version notation

* formatting

* uncommented condition

* test

* added pypy to test matrix

* test

* test

* restored all tests

* removed logs, added multiarch support for toolcache

* reduced test matrix

* removed extra condition about arch
2021-04-12 13:59:38 -04:00
Dmitry Shibanov
8c5ea631b2
Adding support for more PyPy versions and installing them on-flight (#168)
* add support to install pypy

* resolved comments, update readme, add e2e tests.

* resolve throw error

* Add pypy unit tests to cover code

* add tests

* Update test-pypy.yml

* Update test-python.yml

* Update test-python.yml

* Update README.md

* fixing tests

* change order

Co-authored-by: Maxim Lobanov <v-malob@microsoft.com>

* add pypy tests and fix issue with pypy-3-nightly

Co-authored-by: Maxim Lobanov <v-malob@microsoft.com>
2020-12-17 16:03:54 +01:00
MaksimZhukov
306c473438
Add support of pre-release Python versions (#112)
* Add support of unstable Python versions

* Update README

* Get rid of stable boolean input

* Fix typo in the test.yml

* Update README

Co-authored-by: MaksimZhukov <v-mazhuk@microsoft.com>
2020-07-17 11:58:03 +02:00
Konrad Pabjan
6cbb9cfdfd
Improve workflows (#88)
* Improve workflows

* Update workflows

* Small fix
2020-05-01 18:52:58 +02:00
MaksimZhukov
e5af64b2df
Use GitHub releases to download python versions (#85)
This pull-request improves `setup-python` action to add ability to download specific version of Python on flight if it is not available by default.

**Details:**
`setup-python` action will download and install specific Python version from GitHub releases ([actions/python-versions](https://github.com/actions/python-versions/releases)) in case the version is not found in the local cache. All versions of Python available for installation are published in [actions/python-versions](https://github.com/actions/python-versions) repository.
All available versions are listed in the [version-manifest.json](https://github.com/actions/python-versions/blob/master/versions-manifest.json) file.

**Installation time:**

- Ubuntu / macOS: 10-20 seconds
- Windows: ~ 1 minute (mostly related to fact that we use MSI installer for Python on Windows)

Co-authored-by: MaksimZhukov <v-mazhuk@microsoft.com>
Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
Co-authored-by: Brian Cristante <33549821+brcrista@users.noreply.github.com>
2020-04-29 20:57:02 +03:00
Konrad Pabjan
4ff1108c39
Update NPM packages (#75)
* Update NPM packages

* Format using prettier

* Update node version in workflow

* Add .gitattributes
2020-03-26 16:39:48 +01:00
Danny McCormick
24b4fa76d2
Consume toolkit from npmjs (#12) 2019-08-20 10:27:52 -04:00
Stephen Franceschelli
7dc6a07f36 Fix build. (#8)
* Fix.

* Husky commit correct node modules
2019-07-30 13:19:56 -04:00
Danny McCormick
26fa782187 Clean up tests 2019-07-11 17:12:03 -04:00
Danny McCormick
7deb8583be case sensitive? 2019-07-11 17:04:02 -04:00
Danny McCormick
d9226ca4fd Set fallback location in tests 2019-07-11 17:00:39 -04:00
Danny McCormick
ee2b5c67ae Set fallback location in tests 2019-07-11 16:58:38 -04:00
Danny McCormick
b8b34d2b50 Dont assume python isnt installed 2019-07-11 16:37:07 -04:00
Danny McCormick
c7ad7b432d Add tests 2019-06-27 11:40:43 -04:00
Danny McCormick
39c08a0eaa Initial pass 2019-06-26 21:12:00 -04:00