Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 42 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
name: CI
on: [ push, pull_request ]

env:
TRAC_VERSION: 1.6
TRAC_XMLRPC_BRANCH: https://trac-hacks.org/svn/xmlrpcplugin/trunk/

jobs:
lint-and-test:
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
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:
Expand All @@ -26,4 +32,38 @@ jobs:

- run: uv run ruff format --diff

- run: uv run pytest -m 'not integration' --cov
- run: sudo apt-get install -y subversion

- name: Set up local Trac test server
env:
TRAC_ENV: trac-test
run: |
uv tool install --with passlib trac==${{ env.TRAC_VERSION }}

uvx --from trac trac-admin ${{ env.TRAC_ENV }} initenv 'Test Project' sqlite:db/trac.db

echo "admin:{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=" > ${{ env.TRAC_ENV }}/htpasswd
uvx --from trac trac-admin ${{ env.TRAC_ENV }} permission add admin TRAC_ADMIN

svn checkout ${{ env.TRAC_XMLRPC_BRANCH }} xmlrpcplugin

pushd xmlrpcplugin
uvx --with setuptools python setup.py bdist_egg
cp dist/*.egg ../${{ env.TRAC_ENV }}/plugins
popd

uvx --from trac trac-admin ${{ env.TRAC_ENV }} config set components tracrpc.* enabled
uvx --from trac trac-admin ${{ env.TRAC_ENV }} permission add authenticated XML_RPC

uvx --from trac tracd \
--single-env \
--port 8000 \
--daemonize \
--pidfile $(pwd)/tracd.pid \
--basic-auth="${{ env.TRAC_ENV }},$(pwd)/${{ env.TRAC_ENV }}/htpasswd," \
$(pwd)/${{ env.TRAC_ENV }}

- run: uv run pytest --cov --cov-fail-under=95

- run: kill $(cat tracd.pid)
if: always()
21 changes: 1 addition & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,23 +84,4 @@ class TracTicket(TracTicketBase):

## Setting up test Trac server

```shell
uv tool install --with passlib trac

# admin/admin
echo "admin:{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=" > $HOME/src/trac-test/htpasswd

uvx --from trac trac-admin $HOME/src/trac-test permission add admin TRAC_ADMIN

uvx --from trac tracd --auto-reload --single-env --port 8000 \
--basic-auth="trac-test,$HOME/src/trac-test/htpasswd," \
$HOME/src/trac-test

# Download source and build an egg
# https://trac-hacks.org/wiki/XmlRpcPlugin
uvx --with setuptools python setup.py bdist_egg

# Upload TracXMLRPC-1.2.0.dev0-py3.13.egg to Trac
uvx --from trac trac-admin trac-admin . config set components tracrpc.* enabled
uvx --from trac trac-admin trac-admin . permission add authenticated XML_RPC
```
See [GitHub Actions workflow](.github/workflows/ci.yml) for integration tests.