|
1 | 1 | name: CI
|
2 | 2 | on: [ push, pull_request ]
|
3 | 3 |
|
| 4 | +env: |
| 5 | + TRAC_VERSION: 1.6 |
| 6 | + TRAC_XMLRPC_BRANCH: https://trac-hacks.org/svn/xmlrpcplugin/trunk/ |
| 7 | + |
4 | 8 | jobs:
|
5 | 9 | lint-and-test:
|
6 |
| - if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
7 | 10 | runs-on: ubuntu-latest
|
8 | 11 | timeout-minutes: 5
|
| 12 | + |
| 13 | + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| 14 | + |
9 | 15 | strategy:
|
10 | 16 | fail-fast: false
|
11 | 17 | matrix:
|
|
26 | 32 |
|
27 | 33 | - run: uv run ruff format --diff
|
28 | 34 |
|
29 |
| - - run: uv run pytest -m 'not integration' --cov |
| 35 | + - run: sudo apt-get install -y subversion |
| 36 | + |
| 37 | + - name: Set up local Trac test server |
| 38 | + env: |
| 39 | + TRAC_ENV: trac-test |
| 40 | + run: | |
| 41 | + uv tool install --with passlib trac==${{ env.TRAC_VERSION }} |
| 42 | +
|
| 43 | + uvx --from trac trac-admin ${{ env.TRAC_ENV }} initenv 'Test Project' sqlite:db/trac.db |
| 44 | +
|
| 45 | + echo "admin:{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=" > ${{ env.TRAC_ENV }}/htpasswd |
| 46 | + uvx --from trac trac-admin ${{ env.TRAC_ENV }} permission add admin TRAC_ADMIN |
| 47 | +
|
| 48 | + svn checkout ${{ env.TRAC_XMLRPC_BRANCH }} xmlrpcplugin |
| 49 | +
|
| 50 | + pushd xmlrpcplugin |
| 51 | + uvx --with setuptools python setup.py bdist_egg |
| 52 | + cp dist/*.egg ../${{ env.TRAC_ENV }}/plugins |
| 53 | + popd |
| 54 | +
|
| 55 | + uvx --from trac trac-admin ${{ env.TRAC_ENV }} config set components tracrpc.* enabled |
| 56 | + uvx --from trac trac-admin ${{ env.TRAC_ENV }} permission add authenticated XML_RPC |
| 57 | +
|
| 58 | + uvx --from trac tracd \ |
| 59 | + --single-env \ |
| 60 | + --port 8000 \ |
| 61 | + --daemonize \ |
| 62 | + --pidfile $(pwd)/tracd.pid \ |
| 63 | + --basic-auth="${{ env.TRAC_ENV }},$(pwd)/${{ env.TRAC_ENV }}/htpasswd," \ |
| 64 | + $(pwd)/${{ env.TRAC_ENV }} |
| 65 | +
|
| 66 | + - run: uv run pytest --cov --cov-fail-under=95 |
| 67 | + |
| 68 | + - run: kill $(cat tracd.pid) |
| 69 | + if: always() |
0 commit comments