Skip to content

WIP

WIP #6

Workflow file for this run

name: CI
on: [ push, pull_request ]
jobs:
lint-and-test:
runs-on: ubuntu-latest
timeout-minutes: 5
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
strategy:
fail-fast: false
matrix:
python-version:
- "3.12"
- "3.13"
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}
- run: uv sync --all-extras --dev
- run: uv run ruff check
- run: uv run ruff format --diff
- run: sudo apt-get install -y subversion
- name: Set up local Trac test server
run: |
uv tool install --with passlib trac==1.6
uvx --from trac trac-admin trac-test initenv 'Test Project' sqlite:db/trac.db
echo "admin:{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=" > trac-test/htpasswd
uvx --from trac trac-admin trac-test permission add admin TRAC_ADMIN
svn checkout https://trac-hacks.org/svn/xmlrpcplugin/trunk/ xmlrpcplugin
pushd xmlrpcplugin
uvx --with setuptools python setup.py bdist_egg
cp dist/*.egg ../trac-test/plugins
popd
uvx --from trac trac-admin trac-test config set components tracrpc.* enabled
uvx --from trac trac-admin trac-test permission add authenticated XML_RPC
uvx --from trac tracd \
--single-env \
--port 8000 \
--daemonize \
--pidfile $(pwd)/tracd.pid \
--basic-auth="trac-test,$(pwd)/trac-test/htpasswd," \
$(pwd)/trac-test
- run: uv run pytest --cov --cov-fail=95
- run: kill $(cat tracd.pid)
if: always()