diff options
| author | Luke Hoersten <[email protected]> | 2026-07-26 11:49:11 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-07-26 11:49:11 -0500 |
| commit | 1566ed593907c829827237aad924c3f527723218 (patch) | |
| tree | 931230eb48dda06b86ddea2f91d4e7e6765ccb4c /mattertimesync/build | |
| parent | 38323823b85b2ae8deef788a0f49e36c789c12f4 (diff) | |
mattertimesync: add build + server roles
Build role compiles the tagged source on the build host (npm ci + npm run
bundle) into a versioned mattertimesync-<ver>.tar.gz in build_srv_dir. Server
role installs the single bundled .mjs, creates the mattertimesync service user
and a 0700 storage dir for the Matter fabric keys, templates config.json, and
runs a hardened oneshot sync via a systemd timer. Both roles depend on the
nodejs role for Node >=20.
Diffstat (limited to 'mattertimesync/build')
| -rw-r--r-- | mattertimesync/build/defaults/main.yaml | 9 | ||||
| -rw-r--r-- | mattertimesync/build/meta/main.yaml | 4 | ||||
| -rw-r--r-- | mattertimesync/build/tasks/main.yaml | 41 |
3 files changed, 54 insertions, 0 deletions
diff --git a/mattertimesync/build/defaults/main.yaml b/mattertimesync/build/defaults/main.yaml new file mode 100644 index 0000000..96156f8 --- /dev/null +++ b/mattertimesync/build/defaults/main.yaml @@ -0,0 +1,9 @@ +--- + +mattertimesync_version: "0.1.0" +# https://github.com/lukehoersten/mattertimesync/tags +# Pure-JS project: npm run bundle produces one self-contained mattertimesync.mjs +# (no native modules), so the target only needs node to run it. +mattertimesync_tar: "https://github.com/{{github_user}}/mattertimesync/archive/refs/tags/v{{mattertimesync_version}}.tar.gz" +mattertimesync_build_dir: "/tmp/mattertimesync-{{mattertimesync_version}}" +mattertimesync_srv_dir: "{{build_srv_dir}}" diff --git a/mattertimesync/build/meta/main.yaml b/mattertimesync/build/meta/main.yaml new file mode 100644 index 0000000..6116998 --- /dev/null +++ b/mattertimesync/build/meta/main.yaml @@ -0,0 +1,4 @@ +--- + +dependencies: + - nodejs diff --git a/mattertimesync/build/tasks/main.yaml b/mattertimesync/build/tasks/main.yaml new file mode 100644 index 0000000..68c9da0 --- /dev/null +++ b/mattertimesync/build/tasks/main.yaml @@ -0,0 +1,41 @@ +--- + +- name: unarchive mattertimesync source + unarchive: + remote_src: yes + src: "{{mattertimesync_tar}}" + dest: "/tmp/" + creates: "{{mattertimesync_build_dir}}" + +- name: check if mattertimesync build exists + stat: + path: "{{mattertimesync_srv_dir}}/mattertimesync-{{mattertimesync_version}}.tar.gz" + register: build_file + +- name: install mattertimesync build dependencies + command: "npm ci" + args: + chdir: "{{mattertimesync_build_dir}}" + when: not build_file.stat.exists + +- name: bundle mattertimesync + command: "npm run bundle" + args: + chdir: "{{mattertimesync_build_dir}}" + creates: "{{mattertimesync_build_dir}}/mattertimesync.mjs" + when: not build_file.stat.exists + +- name: create build server dir + become: yes + file: + path: "{{mattertimesync_srv_dir}}" + mode: "0755" + state: "directory" + +- name: create gz archive of mattertimesync bundle + become: yes + archive: + path: "{{mattertimesync_build_dir}}/mattertimesync.mjs" + dest: "{{mattertimesync_srv_dir}}/mattertimesync-{{mattertimesync_version}}.tar.gz" + format: "gz" + when: not build_file.stat.exists |
