pantry/projects/astral.sh/uv/package.yml

63 lines
1.5 KiB
YAML

distributable:
url: https://github.com/astral-sh/uv/releases/download/{{version}}/source.tar.gz
strip-components: 1
versions:
github: astral-sh/uv
provides:
- bin/uv
companions:
python.org: '*'
dependencies:
libgit2.org: ~1.7 # links to libgit2.so.1.7
build:
dependencies:
linux:
nixos.org/patchelf: ^0.18
cmake.org: ^3.28
rust-lang.org/cargo: ^0.77
maturin.rs: ^1.4.0
info-zip.org/unzip: ^6
script:
- maturin build --locked --release --out ./out
- run:
- unzip ./uv-{{version}}-*.whl
- install -D ./uv-{{version}}.data/scripts/uv {{prefix}}/bin/uv
working-directory: out
test:
dependencies:
curl.se: '*'
script:
- uv --version | grep {{version}}
- fixture:
contents: |
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
extname: .py
run:
- |
if which flask; then
false
fi
- |
uv venv
source .venv/bin/activate
uv pip install flask
- |
mv $FIXTURE app.py
set -m
flask run &
PID=$!
# otherwise the server may not be ready
- sleep 4
- test "$(curl 127.0.0.1:5000)" = "<p>Hello, World!</p>"
# TODO need to install a signal handler or our build servers could be left with a running flask process
- kill $PID