Deploy D&D pipeline assets

This commit is contained in:
2026-09-10 15:43:45 +00:00
parent 4ea43580f6
commit a6ce2242c7
5 changed files with 78 additions and 5 deletions

View File

@@ -47,17 +47,31 @@ The compatible application versions are selected through these variables:
| `dnd_pipeline_manage_build_dependencies` | `true` |
| `dnd_pipeline_go_snap_channel` | `1.26/stable` |
| `dnd_pipeline_go_binary` | `/snap/bin/go` |
| `dnd_pipeline_campaigns_repository_url` | `https://gitea.maximumdirect.net/eric/campaigns.git` |
| `dnd_pipeline_campaigns_revision` | `main` |
| `dnd_pipeline_campaigns_root` | `/usr/local/share/narratio/campaigns` |
| `dnd_pipeline_prompt_library_repository_url` | `https://gitea.maximumdirect.net/eric/narratio-prompts.git` |
| `dnd_pipeline_prompt_library_revision` | `main` |
| `dnd_pipeline_prompt_library_root` | `/usr/local/share/narratio/prompt-library` |
The common dependency-management switch controls whether every application
role installs Git and Go. The Go channel and executable are likewise passed to
all five roles. Advanced callers may supply unmapped standalone-role variables
directly through normal Ansible variable precedence.
role installs Git and Go. Callers that disable it must provide both Git and Go.
The Go channel and executable are likewise passed to all five roles. Advanced
callers may supply unmapped standalone-role variables directly through normal
Ansible variable precedence.
Narratio receives the standard Seriatim, Audita, Notarius, and Scriptorium
binary and configuration paths managed by the composed roles. Notarius is
installed but remains disabled in Narratio until a later feature supplies a
Notarius pipeline. Campaign content, prompt content, operator policy, and
secret delivery are intentionally deferred.
Notarius pipeline.
The role deploys the campaign repository directly at the campaign root and
the prompt library directly at the prompt-library root. By default both follow
their `main` branches; callers can select an immutable commit, tag, or another
branch through the revision variables. Narratio receives the deployed campaign
root, while Scriptorium receives its `prompts/` and `schemas/` children.
Execution profiles, model backends, credentials, and D&D processing policy
remain deferred.
## Validation

View File

@@ -7,3 +7,9 @@ dnd_pipeline_scriptorium_version: v0.13.0
dnd_pipeline_manage_build_dependencies: true
dnd_pipeline_go_snap_channel: 1.26/stable
dnd_pipeline_go_binary: /snap/bin/go
dnd_pipeline_campaigns_repository_url: https://gitea.maximumdirect.net/eric/campaigns.git
dnd_pipeline_campaigns_revision: main
dnd_pipeline_campaigns_root: /usr/local/share/narratio/campaigns
dnd_pipeline_prompt_library_repository_url: https://gitea.maximumdirect.net/eric/narratio-prompts.git
dnd_pipeline_prompt_library_revision: main
dnd_pipeline_prompt_library_root: /usr/local/share/narratio/prompt-library

View File

@@ -39,3 +39,27 @@ argument_specs:
type: str
required: true
description: WhisperX transcription endpoint passed to Narratio.
dnd_pipeline_campaigns_repository_url:
type: str
required: true
description: Git origin containing the campaign registry.
dnd_pipeline_campaigns_revision:
type: str
required: true
description: Campaign branch, tag, or commit to deploy.
dnd_pipeline_campaigns_root:
type: path
required: true
description: Campaign checkout and Narratio registry root.
dnd_pipeline_prompt_library_repository_url:
type: str
required: true
description: Git origin containing the prompt library.
dnd_pipeline_prompt_library_revision:
type: str
required: true
description: Prompt-library branch, tag, or commit to deploy.
dnd_pipeline_prompt_library_root:
type: path
required: true
description: Prompt-library checkout root.

View File

@@ -41,6 +41,8 @@ dependencies:
scriptorium_manage_build_dependencies: "{{ dnd_pipeline_manage_build_dependencies }}"
scriptorium_go_snap_channel: "{{ dnd_pipeline_go_snap_channel }}"
scriptorium_go_binary: "{{ dnd_pipeline_go_binary }}"
scriptorium_prompt_dir: "{{ dnd_pipeline_prompt_library_root ~ '/prompts' }}"
scriptorium_schema_dir: "{{ dnd_pipeline_prompt_library_root ~ '/schemas' }}"
- role: rakestraw.narratio
vars:
narratio_version: "{{ dnd_pipeline_narratio_version }}"
@@ -48,6 +50,7 @@ dependencies:
narratio_go_snap_channel: "{{ dnd_pipeline_go_snap_channel }}"
narratio_go_binary: "{{ dnd_pipeline_go_binary }}"
narratio_whisperx_transcribe_url: "{{ dnd_pipeline_whisperx_transcribe_url }}"
narratio_campaigns_root: "{{ dnd_pipeline_campaigns_root }}"
narratio_seriatim_binary: /usr/local/bin/seriatim
narratio_audita_binary: /usr/local/bin/audita
narratio_audita_config_path: /usr/local/etc/audita/config.yml

View File

@@ -1 +1,27 @@
---
- name: Create the prompt-library root
become: true
ansible.builtin.file:
path: "{{ dnd_pipeline_prompt_library_root }}"
state: directory
owner: root
group: narratio
mode: "0755"
- name: Deploy the campaign registry
become: true
ansible.builtin.git:
repo: "{{ dnd_pipeline_campaigns_repository_url }}"
dest: "{{ dnd_pipeline_campaigns_root }}"
version: "{{ dnd_pipeline_campaigns_revision }}"
update: true
force: true
- name: Deploy the prompt library
become: true
ansible.builtin.git:
repo: "{{ dnd_pipeline_prompt_library_repository_url }}"
dest: "{{ dnd_pipeline_prompt_library_root }}"
version: "{{ dnd_pipeline_prompt_library_revision }}"
update: true
force: true