diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml new file mode 100644 index 0000000..ec7871d --- /dev/null +++ b/.forgejo/workflows/ci.yml @@ -0,0 +1,17 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + shellcheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install ShellCheck + run: sudo apt-get update && sudo apt-get install -y shellcheck + - name: Run ShellCheck + run: shellcheck systab diff --git a/CLAUDE.md b/CLAUDE.md index e670cd2..7d6f092 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -37,6 +37,8 @@ Key functions: `parse_time` (time spec → OnCalendar), `_write_unit_files` (sha Runs 58 tests against real systemd user timers covering job creation, job names, status, logs, disable/enable, notifications, time format parsing, error cases, and cleanup. All test jobs are cleaned up automatically via trap. +Tests require a real systemd user session (`systemctl --user`) and cannot run in containers. CI runs ShellCheck only; tests must be run locally before submitting changes. + ## Notes - ShellCheck can be used for linting: `shellcheck systab`. diff --git a/README.md b/README.md index b3e6ad1..f5c615f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # systab +[](https://code.opennomad.com/opennomad/systab/actions?workflow=ci.yml) +[](LICENSE) + A cron/at-like interface for systemd user timers. Create, manage, and monitor scheduled jobs without writing unit files by hand.