Compare commits

...
4 Commits
19 changed files with 6937 additions and 4406 deletions
+6 -3
View File
@@ -18,7 +18,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
with:
version: 10
@@ -35,7 +35,10 @@ jobs:
run: pnpm build
- name: Lint
run: pnpm lint
run: pnpm lint:check
- name: Format
run: pnpm fmt:check
reference-latest-version-in-readme:
name: Reference latest version in README
@@ -99,7 +102,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
with:
version: 10
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
TAG_NAME: v${{ steps.version-metadata.outputs.newVersion }}
- name: Create release
if: steps.version-metadata.outputs.changed == 'true'
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3
with:
generate_release_notes: true
tag_name: v${{ steps.version-metadata.outputs.newVersion }}
+14 -14
View File
@@ -490,18 +490,18 @@ jobs:
- 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.76.0/pixi-x86_64-unknown-linux-musl
curl -L --output "$HOME/custom existing pixi/pixi" https://github.com/prefix-dev/pixi/releases/download/v0.79.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.76.0/pixi-x86_64-apple-darwin
curl -L --output "$HOME/custom existing pixi/pixi" https://github.com/prefix-dev/pixi/releases/download/v0.79.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.76.0/pixi-x86_64-pc-windows-msvc.exe
curl -L --output "$HOME/custom existing pixi/pixi.exe" https://github.com/prefix-dev/pixi/releases/download/v0.79.0/pixi-x86_64-pc-windows-msvc.exe
if: matrix.os == 'windows-latest'
- run: |
echo "Path: $PATH"
@@ -509,7 +509,7 @@ jobs:
- name: Verify pixi version (before setup-pixi)
run: |
pixi --version
pixi --version | grep -q "pixi 0.76.0"
pixi --version | grep -q "pixi 0.79.0"
shell: bash
- name: Verify pixi path (before setup-pixi)
run: |
@@ -530,7 +530,7 @@ jobs:
uses: ./
with:
cache: false
pixi-version: v0.77.0
pixi-version: v0.80.0
if: matrix.ignore-reason == 'version'
- name: Run Action (url should overwrite preinstalled pixi)
uses: ./
@@ -539,10 +539,10 @@ jobs:
pixi-url: |
${{
matrix.os == 'ubuntu-latest' &&
'https://github.com/prefix-dev/pixi/releases/download/v0.77.0/pixi-x86_64-unknown-linux-musl'
'https://github.com/prefix-dev/pixi/releases/download/v0.80.0/pixi-x86_64-unknown-linux-musl'
|| matrix.os == 'macos-latest' &&
'https://github.com/prefix-dev/pixi/releases/download/v0.77.0/pixi-x86_64-apple-darwin'
|| 'https://github.com/prefix-dev/pixi/releases/download/v0.77.0/pixi-x86_64-pc-windows-msvc.exe'
'https://github.com/prefix-dev/pixi/releases/download/v0.80.0/pixi-x86_64-apple-darwin'
|| 'https://github.com/prefix-dev/pixi/releases/download/v0.80.0/pixi-x86_64-pc-windows-msvc.exe'
}}
if: matrix.ignore-reason == 'url'
- name: Create custom bin directory
@@ -556,23 +556,23 @@ jobs:
# 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.76.0
- name: Verify pixi version (after setup-pixi) - still at 0.79.0
run: |
pixi --version
pixi --version | grep -q 0.76.0
pixi --version | grep -q 0.79.0
shell: bash
if: matrix.ignore-reason == 'none'
- name: Verify pixi version (after setup-pixi) - should be 0.77.0
- name: Verify pixi version (after setup-pixi) - should be 0.80.0
run: |
pixi --version
pixi --version | grep -q 0.77.0
pixi --version | grep -q 0.80.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.76.0
pixi --version | grep -vq 0.77.0
pixi --version | grep -vq 0.79.0
pixi --version | grep -vq 0.80.0
shell: bash
if: matrix.ignore-reason == 'bin-path' || matrix.ignore-reason == 'version-latest'
- name: Verify pixi path (after setup-pixi, no ignore reason)
+10
View File
@@ -0,0 +1,10 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"tabWidth": 2,
"printWidth": 120,
"singleQuote": true,
"trailingComma": "none",
"semi": false,
"sortPackageJson": false,
"ignorePatterns": ["dist", "pnpm-lock.yaml", "pixi.lock", "**/*.toml"]
}
+23
View File
@@ -0,0 +1,23 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["eslint", "typescript", "unicorn", "oxc", "node"],
"categories": {
"correctness": "error"
},
"options": {
"typeAware": true,
"typeCheck": true,
"denyWarnings": true
},
"ignorePatterns": ["dist"],
"rules": {
"no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"typescript/no-explicit-any": "error",
"typescript/no-unsafe-argument": "error",
"typescript/no-unsafe-assignment": "error",
"typescript/no-unsafe-call": "error",
"typescript/no-unsafe-member-access": "error",
"typescript/no-unsafe-return": "error",
"typescript/prefer-nullish-coalescing": ["error", { "ignoreConditionalTests": true }]
}
}
-3
View File
@@ -1,3 +0,0 @@
dist
pnpm-lock.yaml
pixi.lock
+1 -1
View File
@@ -1,3 +1,3 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "oxc.oxc-vscode"
}
Generated Vendored
+3194 -1910
View File
File diff suppressed because it is too large Load Diff
Generated Vendored
+2933 -1649
View File
File diff suppressed because it is too large Load Diff
-42
View File
@@ -1,42 +0,0 @@
// @ts-check
import eslint from '@eslint/js'
import tseslint from 'typescript-eslint'
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.strictTypeChecked,
...tseslint.configs.stylisticTypeChecked,
{
ignores: ['dist/*']
},
{
languageOptions: {
parserOptions: {
project: true,
tsconfigRootDir: import.meta.dirname
}
}
},
{
rules: {
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_'
}
],
'@typescript-eslint/prefer-nullish-coalescing': [
'error',
{
ignoreConditionalTests: true
}
]
}
},
// disable type checking for config files as they aren't in the TS root
{
files: ['eslint.config.mjs', 'prettier.config.mjs', 'tsup.config.js'],
...tseslint.configs.disableTypeChecked
}
)
+11 -11
View File
@@ -6,9 +6,10 @@
"scripts": {
"build": "tsup",
"dev": "tsup --watch",
"eslint": "eslint .",
"lint": "pnpm eslint && prettier -c .",
"lint:fix": "eslint . --fix && prettier -w ."
"lint": "oxlint --fix",
"lint:check": "oxlint",
"fmt": "oxfmt",
"fmt:check": "oxfmt --check"
},
"repository": {
"type": "git",
@@ -28,19 +29,18 @@
"@actions/io": "^3.0.2",
"@actions/tool-cache": "^4.0.0",
"handlebars": "^4.7.9",
"smol-toml": "^1.7.1",
"smol-toml": "^1.9.0",
"untildify": "^6.0.0",
"which": "^7.0.0",
"zod": "^4.4.3"
"zod": "^4.6.5"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@types/node": "^26.1.2",
"@types/node": "^26.6.2",
"@types/which": "^3.0.4",
"eslint": "^10.8.0",
"prettier": "^3.9.6",
"oxfmt": "^0.71.0",
"oxlint": "^1.86.0",
"oxlint-tsgolint": "^7.0.2003",
"tsup": "^8.5.1",
"typescript": "^6.0.3",
"typescript-eslint": "^8.66.0"
"typescript": "^7.0.2"
}
}
+709 -723
View File
File diff suppressed because it is too large Load Diff
-9
View File
@@ -1,9 +0,0 @@
const config = {
tabWidth: 2,
printWidth: 120,
singleQuote: true,
trailingComma: 'none',
semi: false
}
export default config
-1
View File
@@ -14,7 +14,6 @@ const splitEnvironment = (shellHook: ShellHook): [Record<string, string>, string
if (pathEnvs.length > 0) {
const caseSensitivePathName = pathEnvs[0]
const path = shellHook.environment_variables[caseSensitivePathName]
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete shellHook.environment_variables[caseSensitivePathName]
return [shellHook.environment_variables, path]
}
+1 -1
View File
@@ -116,7 +116,7 @@ async function _saveCache(
const cacheId = await cache.saveCache([cachePath], cacheKey, undefined, false)
core.info(`Saved cache with ID "${cacheId.toString()}"`)
} catch (err: unknown) {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
// oxlint-disable-next-line typescript/restrict-template-expressions
core.error(`Error saving ${type} cache: ${err}`)
}
})
-1
View File
@@ -52,7 +52,6 @@ const cleanupEnv = () => {
const determineCacheDir = (): string => {
// rattler uses dirs::cache_dir https://docs.rs/dirs/latest/dirs/fn.cache_dir.html
if (os.platform() === 'win32') {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return process.env.LOCALAPPDATA!
}
if (os.platform() === 'linux') {
+2 -3
View File
@@ -1,4 +1,3 @@
import type { BinaryLike } from 'crypto'
import { createHash } from 'crypto'
import os from 'os'
import * as core from '@actions/core'
@@ -79,11 +78,11 @@ export const renderPixiUrl = (urlTemplate: string, version: string) => {
})
}
export const sha256 = (s: BinaryLike) => {
export const sha256 = (s: string | NodeJS.ArrayBufferView) => {
return createHash('sha256').update(s).digest('hex')
}
export const sha256Short = (s: BinaryLike) => {
export const sha256Short = (s: string | NodeJS.ArrayBufferView) => {
return sha256(s).slice(0, 7)
}
+31 -32
View File
@@ -18,6 +18,12 @@ platforms:
- __linux=4.18
- __glibc=2.28
- __archspec=0=ppc64le
- name: linux-riscv64
virtual-packages:
- __glibc=2.39
- __unix=0=0
- __linux=4.18
- __archspec=0=riscv64
- name: osx-64
virtual-packages:
- __unix=0=0
@@ -28,13 +34,6 @@ platforms:
- __unix=0=0
- __osx=13.0
- __archspec=0=m1
- name: p1
subdir: linux-riscv64
virtual-packages:
- __glibc=2.39
- __unix=0=0
- __linux=4.18
- __archspec=0=riscv64
- name: win-64
virtual-packages:
- __win=10.0
@@ -124,6 +123,31 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda
linux-riscv64:
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/_openmp_mutex-4.5-20_gnu.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/bzip2-1.0.8-hbc5796b_10.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/icu-78.3-py313h7c124d4_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/ld_impl_linux-riscv64-2.46.1-bootstrap_h57d0a32_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libexpat-2.8.1-hb8e5cec_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libffi-3.7.0-hfb7640d_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libgcc-16.2.0-h3c03dd2_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libgomp-16.2.0-h860b102_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/liblzma-5.8.3-h248ff67_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libmpdec-4.0.0-h248ff67_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libpython-3.14.7-h47214dc_101_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libsqlite-3.53.4-h9d85c8a_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libstdcxx-16.2.0-hcd2ab9c_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libuuid-2.42.2-h7461722_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libzlib-1.3.2-h6ceb64a_3.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/ncurses-6.6-h9a9dadd_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/openssl-3.6.4-h736bc4d_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/python-3.14.7-h55f8c17_101_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/readline-8.3-h95a8404_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/tk-8.6.13-noxft_h59351fb_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/zstd-1.5.7-h9405850_7.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda
osx-64:
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda
@@ -163,31 +187,6 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h8b90a29_1.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hf451053_7.conda
p1:
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/_openmp_mutex-4.5-20_gnu.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/bzip2-1.0.8-hbc5796b_10.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/icu-78.3-py313h7c124d4_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/ld_impl_linux-riscv64-2.46.1-bootstrap_h57d0a32_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libexpat-2.8.1-hb8e5cec_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libffi-3.7.0-hfb7640d_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libgcc-16.2.0-h3c03dd2_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libgomp-16.2.0-h860b102_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/liblzma-5.8.3-h248ff67_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libmpdec-4.0.0-h248ff67_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libpython-3.14.7-h47214dc_101_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libsqlite-3.53.4-h9d85c8a_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libstdcxx-16.2.0-hcd2ab9c_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libuuid-2.42.2-h7461722_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/libzlib-1.3.2-h6ceb64a_3.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/ncurses-6.6-h9a9dadd_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/openssl-3.6.4-h736bc4d_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/python-3.14.7-h55f8c17_101_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/readline-8.3-h95a8404_1.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/tk-8.6.13-noxft_h59351fb_4.conda
- conda: https://conda.anaconda.org/conda-forge/linux-riscv64/zstd-1.5.7-h9405850_7.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda
win-64:
- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023c-h71feb2d_0.conda
+1 -2
View File
@@ -4,8 +4,7 @@ channels = ["conda-forge"]
platforms = [
"linux-64",
"linux-aarch64",
# remove override when https://github.com/prefix-dev/pixi/pull/6914 is released
{ platform = "linux-riscv64", glibc = "2.39" },
"linux-riscv64",
"linux-ppc64le",
"osx-64",
"osx-arm64",