65 lines
3.0 KiB
Markdown
65 lines
3.0 KiB
Markdown
# Ansible Role: Seriatim
|
|
|
|
Installs the [Seriatim](https://gitea.maximumdirect.net/eric/seriatim)
|
|
transcript processor from source. The role supports Ubuntu 26.04 on `amd64`
|
|
and `arm64` hosts and is independently usable outside the D&D pipeline role.
|
|
|
|
The role manages its build dependencies and a root-owned source checkout. At
|
|
this point binary installation is added by subsequent implementation work.
|
|
|
|
## Requirements
|
|
|
|
Ansible Core 2.18 or newer is required. Install the pinned collection
|
|
dependency before using or validating the role:
|
|
|
|
```sh
|
|
ansible-galaxy collection install -r collections/requirements.yml
|
|
```
|
|
|
|
## Variables
|
|
|
|
| Variable | Default | Description |
|
|
| --- | --- | --- |
|
|
| `seriatim_version` | `v1.5.0` | Release identity expected from the installed binary. |
|
|
| `seriatim_repository_url` | `https://gitea.maximumdirect.net/eric/seriatim.git` | Source repository URL. |
|
|
| `seriatim_source_ref` | `{{ seriatim_version }}` | Git tag, branch, or commit to check out. |
|
|
| `seriatim_build_version` | `{{ seriatim_version }}` | Version injected into build metadata. |
|
|
| `seriatim_source_dir` | `/usr/local/src/seriatim` | Fully managed source checkout. |
|
|
| `seriatim_binary_path` | `/usr/local/bin/seriatim` | Installed executable path. |
|
|
| `seriatim_build_state_dir` | `/usr/local/src/seriatim.ansible-build-state` | Sidecar directory for build inputs and output state. |
|
|
| `seriatim_manage_build_dependencies` | `true` | Install Git and Go when enabled. |
|
|
| `seriatim_go_snap_channel` | `1.26/stable` | Go Snap channel. |
|
|
| `seriatim_go_binary` | `/snap/bin/go` | Go executable used to inspect and build. |
|
|
| `seriatim_go_build_flags` | `[-trimpath]` | Ordered Go build arguments before `-ldflags`. |
|
|
| `seriatim_go_ldflags` | `-s -w -X gitea.maximumdirect.net/eric/seriatim/internal/buildinfo.Version={{ seriatim_build_version }}` | Linker flags passed as one argument. |
|
|
| `seriatim_go_package` | `./cmd/seriatim` | Go package built from the checkout. |
|
|
|
|
For development revisions, set both `seriatim_source_ref` and an honest
|
|
`seriatim_build_version`. Released deployments should select immutable tags.
|
|
|
|
When `seriatim_manage_build_dependencies` is enabled, the role installs Git
|
|
and converges the classic Go Snap to `seriatim_go_snap_channel`. When disabled,
|
|
both Git and the configured Go executable must already be available, and Go
|
|
must be version 1.25 or newer.
|
|
|
|
The checkout is authoritative: tracked changes and all untracked or ignored
|
|
files beneath `seriatim_source_dir` are discarded during convergence. The
|
|
repository URL may point to a private remote, but authentication must be
|
|
provided independently through the managed host's Git configuration or SSH
|
|
environment; this role does not manage credentials or accept unknown host
|
|
keys.
|
|
|
|
## Static validation
|
|
|
|
```sh
|
|
ANSIBLE_COLLECTIONS_PATH="$PWD/.ansible/collections" \
|
|
../.venv/bin/ansible-playbook -i tests/inventory tests/converge.yml \
|
|
--syntax-check
|
|
ANSIBLE_COLLECTIONS_PATH="$PWD/.ansible/collections" \
|
|
../.venv/bin/ansible-lint .
|
|
```
|
|
|
|
## License
|
|
|
|
BSD-3-Clause
|