Reference latest Pixi version in README #522
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
name: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
merge_group: | |
jobs: | |
default: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest, macos-13] | |
cache: [true, false] | |
runs-on: ${{ matrix.os }} | |
name: default ${{ matrix.cache == true && 'with' || 'without' }} cache (${{ matrix.os }}) | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
# check the action logs to see if the cache was used or not | |
with: | |
cache: ${{ matrix.cache }} | |
- run: | | |
set -o pipefail | |
pixi info | |
test -f .pixi/envs/default/bin/python | |
./.pixi/envs/default/bin/python --version | grep -q 3.11 | |
shell: bash | |
if: matrix.os != 'windows-latest' | |
- run: | | |
set -o pipefail | |
pixi info | |
test -f .pixi/envs/default/python.exe | |
./.pixi/envs/default/python.exe --version | grep -q 3.11 | |
shell: bash | |
if: matrix.os == 'windows-latest' | |
- run: | | |
pixi run python --version | grep -q 3.11 | |
pixi run test | grep -q "Hello world" | |
no-run-install: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
run-install: false | |
cache: false | |
- run: | | |
! test -d .pixi | |
shell: bash | |
no-pixi-toml: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- uses: ./ | |
with: | |
run-install: false | |
- run: | | |
! test -d .pixi | |
shell: bash | |
- run: pixi info | |
custom-pixi-version: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest, macos-13] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/old-pixi-lockfiles/* . | |
- uses: ./ | |
with: | |
cache: false | |
pixi-version: v0.1.0 | |
# pixi 0.1.0 doesn't support --locked | |
locked: false | |
- run: pixi --version | grep -q "pixi 0.1.0" | |
old-lockfile: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
locked: [true, false] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/old-pixi-lockfiles/* . | |
- uses: ./ | |
with: | |
pixi-version: latest | |
cache: false | |
locked: ${{ matrix.locked }} | |
- if: matrix.os == 'windows-latest' | |
run: choco install yq | |
# assert that the lockfile wasn't updated | |
- run: test "$(yq '.version' pixi.lock)" = 1 | |
install-path: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest, macos-13] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- uses: ./ | |
with: | |
run-install: false | |
- run: test "$(which pixi)" = "$HOME/.pixi/bin/pixi" | |
shell: bash | |
global-install: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest, macos-13] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- uses: ./ | |
with: | |
run-install: false | |
- run: pixi global install cowpy | |
- run: | | |
pixi global list 2>&1 | grep cowpy | |
cowpy hello world | |
test "$(which cowpy)" = "$HOME/.pixi/bin/cowpy" | |
if: matrix.os != 'windows-latest' | |
- run: cowpy hello world | |
if: matrix.os == 'windows-latest' | |
frozen: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
frozen: true | |
- run: pixi run python --version | grep -q 3.11 | |
locked: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
locked: true | |
- run: pixi run python --version | grep -q 3.11 | |
custom-pixi-url: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/old-pixi-lockfiles/* . | |
- uses: ./ | |
with: | |
cache: false | |
pixi-url: https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-unknown-linux-musl | |
- run: pixi --version | grep -q "pixi 0.14.0" | |
custom-manifest-path: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- uses: ./ | |
with: | |
cache: false | |
manifest-path: test/default/pixi.toml | |
different-log-level: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
log-level: v | |
custom-bin-path: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
pixi-bin-path: custom-bin/pixi${{ matrix.os == 'windows-latest' && '.exe' || '' }} | |
- run: | | |
test -f custom-bin/pixi${{ matrix.os == 'windows-latest' && '.exe' || '' }} | |
pixi --help | |
which pixi | grep -q custom-bin/pixi | |
# which pixi should be absolute | |
which pixi | grep -q "^/" | |
existing-pixi-bin: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
ignore-reason: [none, version, version-latest, url, bin-path] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- name: Create pixi directory and add to PATH | |
run: | | |
mkdir -p $HOME/custom-existing-pixi | |
echo $HOME/custom-existing-pixi >> $GITHUB_PATH | |
if: matrix.os != 'windows-latest' | |
- name: Create pixi directory and add to PATH (Windows) | |
run: | | |
mkdir $env:USERPROFILE\custom-existing-pixi | |
echo $env:USERPROFILE\custom-existing-pixi >> $env:GITHUB_PATH | |
shell: pwsh | |
if: matrix.os == 'windows-latest' | |
- name: Download pixi binary (Ubuntu) | |
run: | | |
set -o pipefail | |
curl -L --output $HOME/custom-existing-pixi/pixi https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-unknown-linux-musl | |
chmod +x $HOME/custom-existing-pixi/pixi | |
if: matrix.os == 'ubuntu-latest' | |
- name: Download pixi binary (macOS) | |
run: | | |
set -o pipefail | |
curl -L --output $HOME/custom-existing-pixi/pixi https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-apple-darwin | |
chmod +x $HOME/custom-existing-pixi/pixi | |
if: matrix.os == 'macos-latest' | |
- name: Download pixi binary (Windows) | |
run: | | |
curl -L --output $HOME/custom-existing-pixi/pixi.exe https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-pc-windows-msvc.exe | |
if: matrix.os == 'windows-latest' | |
- run: | | |
echo "Path: $PATH" | |
shell: bash | |
- name: Verify pixi version (before setup-pixi) | |
run: | | |
pixi --version | |
pixi --version | grep -q "pixi 0.14.0" | |
shell: bash | |
- name: Verify pixi path (before setup-pixi) | |
run: | | |
which pixi | grep -q $HOME/custom-existing-pixi/pixi | |
shell: bash | |
- name: Run Action (should use preinstalled pixi) | |
uses: ./ | |
with: | |
cache: false | |
if: matrix.ignore-reason == 'none' | |
- name: Run Action (version-latest should overwrite preinstalled pixi) | |
uses: ./ | |
with: | |
cache: false | |
pixi-version: latest | |
if: matrix.ignore-reason == 'version-latest' | |
- name: Run Action (version should overwrite preinstalled pixi) | |
uses: ./ | |
with: | |
cache: false | |
pixi-version: v0.16.0 | |
if: matrix.ignore-reason == 'version' | |
- name: Run Action (url should overwrite preinstalled pixi) | |
uses: ./ | |
with: | |
cache: false | |
pixi-url: | | |
${{ | |
matrix.os == 'ubuntu-latest' && | |
'https://github.com/prefix-dev/pixi/releases/download/v0.16.0/pixi-x86_64-unknown-linux-musl' | |
|| matrix.os == 'macos-latest' && | |
'https://github.com/prefix-dev/pixi/releases/download/v0.16.0/pixi-x86_64-apple-darwin' | |
|| 'https://github.com/prefix-dev/pixi/releases/download/v0.16.0/pixi-x86_64-pc-windows-msvc.exe' | |
}} | |
if: matrix.ignore-reason == 'url' | |
- name: Create custom bin directory | |
run: mkdir custom-bin | |
shell: bash | |
if: matrix.ignore-reason == 'bin-path' | |
- name: Run Action (pixi-bin-path should overwrite preinstalled pixi) | |
uses: ./ | |
with: | |
cache: false | |
# this will implicitly set pixi-version to latest | |
pixi-bin-path: custom-bin/pixi${{ matrix.os == 'windows-latest' && '.exe' || '' }} | |
if: matrix.ignore-reason == 'bin-path' | |
- name: Verify pixi version (after setup-pixi) - still at 0.14.0 | |
run: | | |
pixi --version | |
pixi --version | grep -q 0.14.0 | |
shell: bash | |
if: matrix.ignore-reason == 'none' | |
- name: Verify pixi version (after setup-pixi) - should be 0.16.0 | |
run: | | |
pixi --version | |
pixi --version | grep -q 0.16.0 | |
shell: bash | |
if: matrix.ignore-reason != 'none' && matrix.ignore-reason != 'bin-path' && matrix.ignore-reason != 'version-latest' | |
- name: Verify pixi version (after setup-pixi) - should be latest | |
run: | | |
pixi --version | |
pixi --version | grep -vq 0.14.0 | |
pixi --version | grep -vq 0.16.0 | |
shell: bash | |
if: matrix.ignore-reason == 'bin-path' || matrix.ignore-reason == 'version-latest' | |
- name: Verify pixi path (after setup-pixi, no ignore reason) | |
run: | | |
which pixi | grep -q $HOME/custom-existing-pixi/pixi | |
shell: bash | |
if: matrix.ignore-reason == 'none' | |
- name: Verify pixi path (after setup-pixi, ignore reason) | |
run: | | |
which pixi | grep -vq $HOME/custom-existing-pixi/pixi | |
shell: bash | |
if: matrix.ignore-reason != 'none' | |
auth-token: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
auth-host: https://custom-conda-registry.com | |
auth-token: custom-token | |
- run: | | |
cat ~/.rattler/credentials.json | |
[ $(jq '."*.custom-conda-registry.com".BearerToken' -r ~/.rattler/credentials.json) = "custom-token" ] | |
# all other platforms have the credentials stored in the keychain | |
# https://github.com/prefix-dev/pixi/issues/330 | |
if: matrix.os == 'ubuntu-latest' | |
auth-username-password: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
auth-host: https://custom-conda-registry.com | |
auth-username: custom-username | |
auth-password: custom-password | |
- run: | | |
cat ~/.rattler/credentials.json | |
[ $(jq '."*.custom-conda-registry.com".BasicHTTP.username' -r ~/.rattler/credentials.json) = "custom-username" ] | |
[ $(jq '."*.custom-conda-registry.com".BasicHTTP.password' -r ~/.rattler/credentials.json) = "custom-password" ] | |
# all other platforms have the credentials stored in the keychain | |
# https://github.com/prefix-dev/pixi/issues/330 | |
if: matrix.os == 'ubuntu-latest' | |
auth-conda-token: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
auth-host: https://custom-conda-registry.com | |
auth-conda-token: custom-conda-token | |
- run: | | |
cat ~/.rattler/credentials.json | |
[ $(jq '."*.custom-conda-registry.com".CondaToken' -r ~/.rattler/credentials.json) = "custom-conda-token" ] | |
# all other platforms have the credentials stored in the keychain | |
# https://github.com/prefix-dev/pixi/issues/330 | |
if: matrix.os == 'ubuntu-latest' | |
auth-token-install: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/auth/* . | |
- uses: ./ | |
with: | |
cache: false | |
auth-host: https://repo.prefix.dev | |
auth-token: ${{ secrets.PREFIX_DEV_TOKEN }} | |
- name: Ensure private-package is installed | |
run: | | |
test -f .pixi/envs/default/conda-meta/private-package-0.0.1-0.json | |
pixi-shell: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: false | |
- run: | | |
python --version | grep -q "3.11" | |
shell: pixi run bash -e {0} | |
- run: | | |
import sys | |
print(sys.version) | |
print("Hello world") | |
shell: pixi run python {0} | |
- run: | | |
python --version | Select-String "3.11" | |
shell: pixi run pwsh -Command {0} | |
pixi-shell-exec: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- uses: ./ | |
with: | |
run-install: false | |
- run: | | |
python --version | grep -q "3.11" | |
shell: pixi exec --spec python=3.11.* -- bash -e {0} | |
- run: | | |
import ruamel.yaml | |
shell: pixi exec --spec python --spec ruamel.yaml -- python {0} | |
- run: | | |
python --version | Select-String "3.11" | |
shell: pixi exec --spec python=3.11.* -- pwsh -Command {0} | |
post-cleanup-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
post-cleanup: ['true', 'false'] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: lisanna-dettwyler/action-post-run@d053b9b43d788b87a409f6cdb3b6fc87c6c8a4fe # v3.1.0 | |
with: | |
run: | | |
set -euxo pipefail | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d .pixi | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d ~/.rattler | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d ~/.cache/rattler | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -f ~/.pixi/bin/pixi | |
- uses: ./ | |
with: | |
cache: false | |
post-cleanup: ${{ matrix.post-cleanup }} | |
# ~/.rattler is only created if the user has logged in | |
auth-host: https://custom-conda-registry.com | |
auth-token: custom-token | |
post-cleanup-linux-no-login: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
post-cleanup: ['true', 'false'] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: lisanna-dettwyler/action-post-run@d053b9b43d788b87a409f6cdb3b6fc87c6c8a4fe # v3.1.0 | |
with: | |
run: | | |
set -euxo pipefail | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d .pixi | |
! test -d ~/.rattler | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d ~/.cache/rattler | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -f ~/.pixi/bin/pixi | |
- uses: ./ | |
with: | |
cache: false | |
post-cleanup: ${{ matrix.post-cleanup }} | |
post-cleanup-macos: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
post-cleanup: ['true', 'false'] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: lisanna-dettwyler/action-post-run@d053b9b43d788b87a409f6cdb3b6fc87c6c8a4fe # v3.1.0 | |
with: | |
run: | | |
set -euxo pipefail | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d .pixi | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d ~/Library/Caches/rattler | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -f ~/.pixi/bin/pixi | |
- uses: ./ | |
with: | |
cache: false | |
post-cleanup: ${{ matrix.post-cleanup }} | |
post-cleanup-windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
post-cleanup: ['true', 'false'] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: lisanna-dettwyler/action-post-run@d053b9b43d788b87a409f6cdb3b6fc87c6c8a4fe # v3.1.0 | |
with: | |
run: | | |
set -euxo pipefail | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d .pixi | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -d "$LOCALAPPDATA/rattler" | |
${{ matrix.post-cleanup == 'true' && '! ' || '' }}test -f ~/.pixi/bin/pixi | |
- uses: ./ | |
with: | |
cache: false | |
post-cleanup: ${{ matrix.post-cleanup }} | |
no-lockfile: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/no-lockfile/* . | |
- uses: ./ | |
with: | |
cache: false | |
- run: | | |
set -o pipefail | |
pixi info | |
test -f .pixi/envs/default/bin/python | |
./.pixi/envs/default/bin/python --version | grep -q 3.11 | |
shell: bash | |
if: matrix.os != 'windows-latest' | |
- run: | | |
set -o pipefail | |
pixi info | |
test -f .pixi/envs/default/python.exe | |
./.pixi/envs/default/python.exe --version | grep -q 3.11 | |
shell: bash | |
if: matrix.os == 'windows-latest' | |
- run: | | |
pixi run python --version | grep -q 3.11 | |
pixi run test | grep -q "Hello world" | |
multiple-environments: | |
name: multiple-environments (${{ matrix.os }}, cache=${{ matrix.cache }}) | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest, macos-13] | |
cache: ['true', 'false'] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/multiple-environments/* . | |
- uses: ./ | |
with: | |
environments: py311 py312 | |
cache: ${{ matrix.cache }} | |
- run: | | |
set -o pipefail | |
pixi info | |
test -f .pixi/envs/py311/bin/python | |
test -f .pixi/envs/py312/bin/python | |
! test -d .pixi/envs/default | |
./.pixi/envs/py311/bin/python --version | grep -q 3.11 | |
./.pixi/envs/py312/bin/python --version | grep -q 3.12 | |
shell: bash | |
if: matrix.os != 'windows-latest' | |
- run: | | |
set -o pipefail | |
pixi info | |
test -f .pixi/envs/py311/python.exe | |
test -f .pixi/envs/py312/python.exe | |
! test -d .pixi/envs/default | |
./.pixi/envs/py311/python.exe --version | grep -q 3.11 | |
./.pixi/envs/py312/python.exe --version | grep -q 3.12 | |
shell: bash | |
if: matrix.os == 'windows-latest' | |
cache-write-true: | |
timeout-minutes: 10 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest, macos-13] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi files | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache-write: true | |
test-cache1: | |
name: Test cache 1/2 | |
timeout-minutes: 10 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest, macos-13] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi files | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: true | |
cache-key: test-cache-${{ github.sha }}-${{ github.run_attempt }}- | |
# check the action logs to see if the cache was written | |
- run: | | |
test -f .pixi/envs/default/bin/python | |
if: matrix.os != 'windows-latest' | |
- run: | | |
test -f .pixi/envs/default/python.exe | |
if: matrix.os == 'windows-latest' | |
test-cache2: | |
name: Test cache 2/2 | |
timeout-minutes: 10 | |
needs: test-cache1 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest, macos-13] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi files | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: true | |
cache-key: test-cache-${{ github.sha }}-${{ github.run_attempt }}- | |
# check the action logs to see if the cache was restored | |
- run: | | |
test -f .pixi/envs/default/bin/python | |
if: matrix.os != 'windows-latest' | |
- run: | | |
test -f .pixi/envs/default/python.exe | |
if: matrix.os == 'windows-latest' | |
test-cache-no-write: | |
name: Test cache no write | |
timeout-minutes: 10 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest, macos-13] | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi files | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
cache: true | |
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@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi files | |
run: mv test/pyproject-manifest/* . | |
- uses: ./ | |
- run: test -f .pixi/envs/default/bin/python | |
- run: pixi run test | |
custom-pyproject-manifest-path: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- uses: ./ | |
with: | |
cache: true | |
manifest-path: test/pyproject-manifest/pyproject.toml | |
environment-activation-unix: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
activate-environment: true | |
- run: which python | grep '.pixi/envs/default/bin/python' | |
- run: env | grep CONDA_PREFIX | |
- run: '[[ $PIXI_ENVIRONMENT_NAME = "default" ]]' | |
environment-activation-windows-bash: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
activate-environment: true | |
- run: which python | grep '.pixi/envs/default/python' | |
- run: env | grep CONDA_PREFIX | |
- run: '[[ $PIXI_ENVIRONMENT_NAME = "default" ]]' | |
environment-activation-windows-pwsh: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: pwsh | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
activate-environment: true | |
- run: if (-Not (Get-Command python).Path -like '*\.pixi\envs\default\python') { exit 1 } | |
- run: if (!$env:CONDA_PREFIX) { exit 1 } | |
- run: if ($env:PIXI_ENVIRONMENT_NAME -ne "default") { exit 1 } | |
environment-activation-windows-cmd: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: cmd | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
activate-environment: true | |
- run: where python | findstr "\.pixi\\envs\\default\\python.exe" | |
- run: set | findstr CONDA_PREFIX | |
- run: | | |
if defined PIXI_ENVIRONMENT_NAME ( | |
if "%PIXI_ENVIRONMENT_NAME%" NEQ "default" ( | |
exit 1 | |
) | |
) | |
environment-activation-false: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/default/* . | |
- uses: ./ | |
with: | |
activate-environment: false | |
- run: '[[ $PIXI_ENVIRONMENT_NAME = "" ]]' | |
environment-activation-explicit-env: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/multiple-environments/* . | |
- uses: ./ | |
with: | |
environments: py311 | |
activate-environment: true | |
- run: which python | grep '.pixi/envs/py311/bin/python' | |
- run: '[[ $PIXI_ENVIRONMENT_NAME = "py311" ]]' | |
environment-activation-multiple-env: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
- name: Move pixi.toml | |
run: mv test/multiple-environments/* . | |
- uses: ./ | |
with: | |
environments: >- | |
py311 py312 | |
activate-environment: py311 | |
- run: which python | grep '.pixi/envs/py311/bin/python' | |
- run: '[[ $PIXI_ENVIRONMENT_NAME = "py311" ]]' | |
# not properly testable | |
# https://github.com/actions/runner/issues/2347 | |
# https://github.com/orgs/community/discussions/15452 | |
# test-cache-fail-no-lockfile: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
# steps: | |
# - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
# - name: Move pixi files | |
# run: mv test/no-lockfile/* . | |
# - uses: ./ | |
# with: | |
# cache: true | |
# cache-key: test-cache-no-lockfile-${{ github.sha }}-${{ github.run_attempt }}- | |
# - run: exit 1 | |
# if: success() | |
# test-incorrect-version: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
# steps: | |
# - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
# - name: Move pixi files | |
# run: mv test/default/* . | |
# - uses: ./ | |
# with: | |
# pixi-version: 0.1.0 | |
# - run: exit 1 | |
# if: success() | |
# test-frozen-and-locked: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
# steps: | |
# - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
# - name: Move pixi files | |
# run: mv test/default/* . | |
# - uses: ./ | |
# with: | |
# pixi-version: v0.5.0 | |
# frozen: true | |
# locked: true | |
# - run: exit 1 | |
# if: success() | |
# test-frozen-no-lockfile: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
# steps: | |
# - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
# - name: Move pixi files | |
# run: mv test/no-lockfile/* . | |
# - uses: ./ | |
# with: | |
# frozen: true | |
# - run: exit 1 | |
# if: success() | |
# test-locked-no-lockfile: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
# steps: | |
# - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
# - name: Move pixi files | |
# run: mv test/no-lockfile/* . | |
# - uses: ./ | |
# with: | |
# locked: true | |
# - run: exit 1 | |
# if: success() | |
# test-lockfile-not-up-to-date: | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
# steps: | |
# - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
# - name: Move pixi files | |
# run: mv test/lockfile-not-up-to-date/* . | |
# - uses: ./ | |
# # locked: true is implicit | |
# - run: exit 1 | |
# if: success() | |
# cache-write-true-no-lockfile: | |
# timeout-minutes: 10 | |
# runs-on: ${{ matrix.os }} | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
# steps: | |
# - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | |
# - name: Move pixi files | |
# run: mv test/no-lockfile/* . | |
# - uses: ./ | |
# with: | |
# cache-write: true |