-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add
activate-environment
option (#108)
- Loading branch information
Showing
11 changed files
with
642 additions
and
314 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
pixi-version: v0.21.1 | ||
cache: true | ||
|
@@ -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.6.0`) to avoid breaking changes. | ||
> Please pin the versions of this action to a specific version (i.e., `prefix-dev/setup-pixi@v0.7.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: | ||
|
@@ -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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
cache: true | ||
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }} | ||
|
@@ -118,7 +118,7 @@ test: | |
environment: [py311, py312] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: prefix-dev/setup-pixi@v0.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
environments: ${{ matrix.environment }} | ||
``` | ||
|
@@ -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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
# separated by spaces | ||
environments: >- | ||
|
@@ -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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
auth-host: prefix.dev | ||
auth-token: ${{ secrets.PREFIX_DEV_TOKEN }} | ||
|
@@ -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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
auth-host: custom-artifactory.com | ||
auth-username: ${{ secrets.PIXI_USERNAME }} | ||
|
@@ -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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
auth-host: anaconda.org # or my-quetz-instance.com | ||
conda-token: ${{ secrets.CONDA_TOKEN }} | ||
|
@@ -228,13 +228,39 @@ If you want to use PowerShell, you need to specify `-Command` as well. | |
> There are some custom shells provided by GitHub that have slightly different behavior, see [`jobs.<job_id>.steps[*].shell`](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell) in the documentation. | ||
> See the [official documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#custom-shell) and [ADR 0277](https://github.com/actions/runner/blob/main/docs/adrs/0277-run-action-shell-options.md) for more information about how the `shell:` input works in GitHub Actions. | ||
|
||
### Environment activation | ||
|
||
Instead of using a custom shell wrapper, you can also make all pixi-installed binaries available to subsequent steps by "activating" the installed environment in the currently running job. | ||
To this end, `setup-pixi` adds all environment variables set when executing `pixi run` to `$GITHUB_ENV` and, similarly, adds all path modifications to `$GITHUB_PATH`. | ||
As a result, all installed binaries can be accessed without having to call `pixi run`. | ||
|
||
```yml | ||
- uses: prefix-dev/[email protected] | ||
with: | ||
activate-environment: true | ||
``` | ||
|
||
If you are installing multiple environments, you will need to specify the name of the environment that you want to be activated. | ||
|
||
```yml | ||
- uses: prefix-dev/[email protected] | ||
with: | ||
environments: >- | ||
py311 | ||
py312 | ||
activate-environment: py311 | ||
``` | ||
|
||
Activating an environment may be more useful than using a custom shell wrapper as it allows non-shell based steps to access binaries on the path. | ||
However, be aware that this option augments the environment of your job. | ||
|
||
### `--frozen` and `--locked` | ||
|
||
You can specify whether `setup-pixi` should run `pixi install --frozen` or `pixi install --locked` depending on the `frozen` or the `locked` input argument. | ||
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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
locked: true | ||
# or | ||
|
@@ -253,7 +279,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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
env: | ||
RUNNER_DEBUG: true | ||
``` | ||
|
@@ -271,7 +297,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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
# one of `q`, `default`, `v`, `vv`, or `vvv`. | ||
log-level: vvv | ||
|
@@ -297,7 +323,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.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
post-cleanup: true | ||
# ${{ runner.temp }}\Scripts\pixi.exe on Windows | ||
|
@@ -313,7 +339,7 @@ You can also use a preinstalled local version of pixi on the runner by not setti | |
This can be overwritten by setting the `manifest-path` input argument. | ||
|
||
```yml | ||
- uses: prefix-dev/setup-pixi@v0.6.0 | ||
- uses: prefix-dev/setup-pixi@v0.7.0 | ||
with: | ||
manifest-path: pyproject.toml | ||
``` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.