Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add better support for pyproject.toml pixi projects #87

Merged
merged 28 commits into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
311d39a
test: add test to test the pyproject.toml as manifest
ruben-arts Mar 27, 2024
3168f3a
bump amount of setup-pixi's in readme
ruben-arts Mar 27, 2024
48a3ef2
Merge branch 'main' into test/add_pyproject_test
ruben-arts Apr 11, 2024
8aa45c3
feat: automatically select the pyproject if it exists instead of the …
ruben-arts Apr 11, 2024
375fb6b
misc: add idea to gitignore
ruben-arts Apr 11, 2024
2efa215
fix: update readme and dist/
ruben-arts Apr 11, 2024
bc45914
feat: read tool.pixi from pyproject.toml to validate the existence of…
ruben-arts Apr 11, 2024
00eaffd
misc: Make it a pixi project, and lint and build
ruben-arts Apr 11, 2024
f1b652f
fix: pixi project and removed unused test
ruben-arts Apr 11, 2024
61244f5
Update README.md
ruben-arts Apr 12, 2024
c1c97a7
Update .github/workflows/test.yml
ruben-arts Apr 12, 2024
abd5917
Update .github/workflows/test.yml
ruben-arts Apr 12, 2024
be07eee
Update .gitattributes
ruben-arts Apr 12, 2024
499a790
fix: add toml to dist
ruben-arts Apr 12, 2024
24702be
fix: Don't throw error when missing manifest
ruben-arts Apr 12, 2024
6a376ab
Update README.md
ruben-arts Apr 12, 2024
e24a184
Update pixi.toml
ruben-arts Apr 12, 2024
f633ffc
Update .gitignore
ruben-arts Apr 12, 2024
7bf43e8
bump: action version
ruben-arts Apr 12, 2024
e82de97
misc: remove pixi project from repo
ruben-arts Apr 15, 2024
11ae440
bump: readme to latest version
ruben-arts Apr 15, 2024
1a1dd83
Merge branch 'main' into test/add_pyproject_test
ruben-arts Apr 15, 2024
14bcd3e
bump: to 0.6.0
ruben-arts Apr 15, 2024
ba9d90b
fix: pyproject test
ruben-arts Apr 15, 2024
e5bc825
Update test/pyproject-manifest/pyproject.toml
ruben-arts Apr 15, 2024
20cd34b
misc: make info debug
ruben-arts Apr 15, 2024
a8bbe87
test: add test to see if python is installed
ruben-arts Apr 16, 2024
d5c99bf
chore: build dist
ruben-arts Apr 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
run: |
set -euo pipefail
latest_version="$(jq -r '.version' package.json)"
count_expected=12
count_expected=13
count_actual="$(grep -c "setup-pixi@v$latest_version" README.md || true)"
if [ "$count_actual" -ne "$count_expected" ]; then
echo "::error file=README.md::Expected $count_expected mentions of \`setup-pixi@v$latest_version\` in README.md, but found $count_actual."
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -693,6 +693,17 @@ jobs:
cache-write: false
cache-key: test-cache-${{ github.sha }}-${{ github.run_attempt }}-
# check the action logs to see if the cache write was skipped

pyproject:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Move pixi files
run: mv test/pyproject-manifest/* .
- uses: ./
- run: test -f .pixi/envs/default/bin/python
- run: pixi run test
ruben-arts marked this conversation as resolved.
Show resolved Hide resolved

custom-pyproject-manifest-path:
strategy:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,6 @@ Thumbs.db
# Ignore built ts files
__tests__/runner/*
lib/**/*

# Ignore jetbrains files
.idea
41 changes: 26 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ GitHub Action to set up the [pixi](https://github.com/prefix-dev/pixi) package m
## Usage

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
pixi-version: v0.19.1
cache: true
Expand All @@ -34,7 +34,7 @@ GitHub Action to set up the [pixi](https://github.com/prefix-dev/pixi) package m

> [!WARNING]
> Since pixi is not yet stable, the API of this action may change between minor versions.
> Please pin the versions of this action to a specific version (i.e., `prefix-dev/setup-pixi@v0.5.2`) to avoid breaking changes.
> Please pin the versions of this action to a specific version (i.e., `prefix-dev/setup-pixi@v0.6.0`) to avoid breaking changes.
> You can automatically update the version of this action by using [Dependabot](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot).
>
> Put the following in your `.github/dependabot.yml` file to enable Dependabot for your GitHub Actions:
Expand Down Expand Up @@ -73,7 +73,7 @@ In order to not exceed the [10 GB cache size limit](https://docs.github.com/en/a
This can be done by setting the `cache-write` argument.

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
Expand Down Expand Up @@ -118,7 +118,7 @@ test:
environment: [py311, py312]
steps:
- uses: actions/checkout@v4
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
environments: ${{ matrix.environment }}
```
Expand All @@ -128,7 +128,7 @@ test:
The following example will install both the `py311` and the `py312` environment on the runner.

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
# separated by spaces
environments: >-
Expand Down Expand Up @@ -163,7 +163,7 @@ Specify the token using the `auth-token` input argument.
This form of authentication (bearer token in the request headers) is mainly used at [prefix.dev](https://prefix.dev).

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
auth-host: prefix.dev
auth-token: ${{ secrets.PREFIX_DEV_TOKEN }}
Expand All @@ -175,7 +175,7 @@ Specify the username and password using the `auth-username` and `auth-password`
This form of authentication (HTTP Basic Auth) is used in some enterprise environments with [artifactory](https://jfrog.com/artifactory) for example.

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
auth-host: custom-artifactory.com
auth-username: ${{ secrets.PIXI_USERNAME }}
Expand All @@ -188,7 +188,7 @@ Specify the conda-token using the `conda-token` input argument.
This form of authentication (token is encoded in URL: `https://my-quetz-instance.com/t/<token>/get/custom-channel`) is used at [anaconda.org](https://anaconda.org) or with [quetz instances](https://github.com/mamba-org/quetz).

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
auth-host: anaconda.org # or my-quetz-instance.com
conda-token: ${{ secrets.CONDA_TOKEN }}
Expand Down Expand Up @@ -234,7 +234,7 @@ You can specify whether `setup-pixi` should run `pixi install --frozen` or `pixi
See the [official documentation](https://prefix.dev/docs/pixi/cli#install) for more information about the `--frozen` and `--locked` flags.

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
locked: true
# or
Expand All @@ -253,7 +253,7 @@ The first one is the debug logging of the action itself.
This can be enabled by running the action with the `RUNNER_DEBUG` environment variable set to `true`.

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
env:
RUNNER_DEBUG: true
```
Expand All @@ -271,7 +271,7 @@ The second type is the debug logging of the pixi executable.
This can be specified by setting the `log-level` input.

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
# one of `q`, `default`, `v`, `vv`, or `vvv`.
log-level: vvv
Expand All @@ -297,7 +297,7 @@ If nothing is specified, `post-cleanup` will default to `true`.
On self-hosted runners, you also might want to alter the default pixi install location to a temporary location. You can use `pixi-bin-path: ${{ runner.temp }}/bin/pixi` to do this.

```yml
- uses: prefix-dev/setup-pixi@v0.5.2
- uses: prefix-dev/setup-pixi@v0.6.0
with:
post-cleanup: true
# ${{ runner.temp }}\Scripts\pixi.exe on Windows
Expand All @@ -307,13 +307,24 @@ On self-hosted runners, you also might want to alter the default pixi install lo
You can also use a preinstalled local version of pixi on the runner by not setting any of the `pixi-version`,
`pixi-url` or `pixi-bin-path` inputs. This action will then try to find a local version of pixi in the runner's PATH.

### Using the `pyproject.toml` as a manifest file for pixi.

`setup-pixi` will automatically pick up the `pyproject.toml` if it contains a `[tool.pixi.project]` section and no `pixi.toml`.
This can be overwritten by setting the `manifest-path` input argument.

```yml
- uses: prefix-dev/[email protected]
with:
manifest-path: pyproject.toml
```

## More examples

If you want to see more examples, you can take a look at the [GitHub Workflows of this repository](.github/workflows/test.yml).

## Local Development

1. Clone this repository.
1. Run `pnpm install` inside the repository (if you don't have [`pnpm`](https://github.com/pnpm/pnpm) installed, you can install it with `npm install -g pnpm` or `brew install pnpm`).
1. Run `pnpm dev` for live transpilation of the TypeScript source code.
1. To test the action, you can run [`act`](https://github.com/nektos/act) (inside docker) or use :sparkles: CI driven development :sparkles:.
2. Run `pnpm install` inside the repository (if you don't have [`pnpm`](https://github.com/pnpm/pnpm) installed, you can install it with `pixi global install pnpm`).
3. Run `pnpm dev` for live transpilation of the TypeScript source code.
4. To test the action, you can run [`act`](https://github.com/nektos/act) (inside docker) or use :sparkles: CI driven development :sparkles:.
Loading
Loading