Skip to content

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

Add opt-in uv-build Python prebuilt installs

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

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/zip-release@0.7.6
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 python@3.10.20
vfox use -g python@3.10.20
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/zip-release@0.7.6
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 python@3.10.20
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
vfox use -g python@3.10.20
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
vfox current
$python_version = $(python -c 'import sys;print(sys.version)')
if ($LASTEXITCODE -ne 0) {
Write-Error "failed to run python after uv-build install"
exit $LASTEXITCODE
}
Write-Output $python_version
if ($python_version -notlike "3.10.20*") {
Write-Error "expected uv-build python 3.10.20, got $python_version"
exit 1
}
- 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