Skip to content

Add opt-in uv-build Python prebuilt installs #76

Add opt-in uv-build Python prebuilt installs

Add opt-in uv-build Python prebuilt installs #76

Workflow file for this run

name: vfox-test
on:
workflow_call:
workflow_dispatch:
pull_request:
types: ["opened", "reopened", "synchronize"]
push:
tags: ["v*"]
permissions:
contents: write
jobs:
test-on-linux:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.12.2]
mirror: ["", "https://mirrors.huaweicloud.com/python/"]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Compress build files
uses: thedoctor0/[email protected]
with:
type: "zip"
directory: "./"
filename: "release.zip"
exclusions: "*.git* manifest.json"
- name: Install vfox
shell: bash
run: |
for i in {1..10}; do
curl -sSL https://raw.githubusercontent.com/version-fox/vfox/main/install.sh | bash && break || sleep 5;
done
vfox --version
- name: Install plugin
run: |
vfox add --source ./release.zip
- name: Install Python ${{ matrix.python-version }}
env:
VFOX_PYTHON_MIRROR: ${{ matrix.mirror }}
run: |
eval "$(vfox activate bash)"
vfox install python@${{ matrix.python-version }}
vfox use -g python@${{ matrix.python-version }}
vfox current
- name: Check python ${{ matrix.python-version }}
run: |
eval "$(vfox activate bash)"
python_version=$(python -c 'import sys;print(sys.version, sys.path)')
echo $python_version
if [[ ! $python_version == ${{ matrix.python-version }}* ]]; then
exit 1
fi
- name: Install Python 3.10.20 with uv-build
if: matrix.mirror == ''
env:
VFOX_PYTHON_USE_UV_BUILD: "1"
run: |
eval "$(vfox activate bash)"
vfox install [email protected]
vfox use -g [email protected]
vfox current
- name: Check uv-build python 3.10.20
if: matrix.mirror == ''
run: |
eval "$(vfox activate bash)"
python_version=$(python -c 'import sys;print(sys.version)')
echo $python_version
if [[ ! $python_version == 3.10.20* ]]; then
exit 1
fi
python -m pip --version
pip --version
test-on-windows:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest]
python-version: [3.12.2]
mirror: ["", "https://mirrors.huaweicloud.com/python/"]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Compress build files
uses: thedoctor0/[email protected]
with:
type: "zip"
directory: "./"
filename: "release.zip"
exclusions: "*.git* manifest.json"
- name: Install vfox
if: runner.os == 'Windows'
shell: powershell
run: |
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
Join-Path (Resolve-Path ~).Path "scoop\shims" >> $Env:GITHUB_PATH
scoop install vfox
vfox --version
- name: Install plugin
if: runner.os == 'Windows'
run: |
Invoke-Expression "$(vfox activate pwsh)"
vfox add --source ./release.zip
- name: Install Python ${{ matrix.python-version }}
if: runner.os == 'Windows'
env:
VFOX_PYTHON_MIRROR: ${{ matrix.mirror }}
run: |
Invoke-Expression "$(vfox activate pwsh)"
vfox install python@${{ matrix.python-version }}
vfox use -g python@${{ matrix.python-version }}
vfox current
- name: Check python ${{ matrix.python-version }}
if: runner.os == 'Windows'
run: |
Invoke-Expression "$(vfox activate pwsh)"
$python_version = $(python -c 'import sys;print(sys.version, sys.path)')
Write-Output $python_version
if ($python_version -notlike "${{ matrix.python-version }}*") {
exit 1
}
- name: Install Python 3.10.20 with uv-build
if: runner.os == 'Windows' && matrix.mirror == ''
env:
VFOX_PYTHON_USE_UV_BUILD: "1"
run: |
Invoke-Expression "$(vfox activate pwsh)"
vfox install [email protected]
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
$python_exe = Join-Path $HOME ".vfox\cache\python\v-3.10.20\python-3.10.20\python.exe"
if (-not (Test-Path $python_exe)) {
Write-Error "[email protected] uv-build install did not create $python_exe"
exit 1
}
vfox use -g [email protected]
vfox current
- name: Check uv-build python 3.10.20
if: runner.os == 'Windows' && matrix.mirror == ''
run: |
Invoke-Expression "$(vfox activate pwsh)"
$python_version = $(python -c 'import sys;print(sys.version)')
Write-Output $python_version
if ($python_version -notlike "3.10.20*") {
exit 1
}
python -m pip --version
pip --version