From 917c04ed7e7d1b91730dca8cd17d6d457d260369 Mon Sep 17 00:00:00 2001 From: Simon Cornet Date: Fri, 18 Jul 2025 17:08:01 +0200 Subject: [PATCH] feat: added molecule testing --- defaults/main.yaml | 7 ++++++ handlers/main.yaml | 8 +------ molecule/default/converge.yml | 8 +++++++ molecule/default/molecule.yml | 44 +++++++++++++++++++++++++++++++++++ molecule/default/verify.yml | 37 +++++++++++++++++++++++++++++ 5 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 molecule/default/converge.yml create mode 100644 molecule/default/molecule.yml create mode 100644 molecule/default/verify.yml diff --git a/defaults/main.yaml b/defaults/main.yaml index 5df85e1..5b704dd 100644 --- a/defaults/main.yaml +++ b/defaults/main.yaml @@ -1,3 +1,10 @@ --- + # renovate: datasource=github-releases depName=atuinsh/atuin versioning=pep440 atuin_version: "18.7.1" + +# atuin db creds +atuin_db_host: "localhost" +atuin_db_name: "atuin" +atuin_db_user: "atuin" +atuin_db_pass: "atuin" diff --git a/handlers/main.yaml b/handlers/main.yaml index 2cdaa73..3ea4ac9 100644 --- a/handlers/main.yaml +++ b/handlers/main.yaml @@ -7,10 +7,4 @@ state: "restarted" daemon_reload: true enabled: true - -# sysusers -- name: "restart sysusers" - ansible.builtin.systemd: - name: "systemd-sysusers.service" - state: "restarted" - enabled: true + when: "not lookup('env', 'MOLECULE_TESTING') | bool" diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml new file mode 100644 index 0000000..293fbf7 --- /dev/null +++ b/molecule/default/converge.yml @@ -0,0 +1,8 @@ +--- + +- name: "converge" + hosts: "all" + become: true + gather_facts: true + roles: + - role: "siempie.atuin" diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml new file mode 100644 index 0000000..e3613b6 --- /dev/null +++ b/molecule/default/molecule.yml @@ -0,0 +1,44 @@ +--- + +dependency: + name: "galaxy" + +driver: + name: "docker" + +provisioner: + name: "ansible" + env: + MOLECULE_TESTING: "true" + +verifier: + name: "ansible" + +platforms: + + # debian 12 + - name: "debian-12" + image: "geerlingguy/docker-debian12-ansible:latest" + pre_build_image: true + privileged: true + volumes: + - "/sys/fs/cgroup:/sys/fs/cgroup:rw" + command: "/lib/systemd/systemd" + + # ubuntu 22 + - name: "ubuntu-22" + image: "geerlingguy/docker-ubuntu2204-ansible:latest" + pre_build_image: true + privileged: true + volumes: + - "/sys/fs/cgroup:/sys/fs/cgroup:rw" + command: "/lib/systemd/systemd" + + # ubuntu 24 + - name: "ubuntu-24" + image: "geerlingguy/docker-ubuntu2404-ansible:latest" + pre_build_image: true + privileged: true + volumes: + - "/sys/fs/cgroup:/sys/fs/cgroup:rw" + command: "/lib/systemd/systemd" diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml new file mode 100644 index 0000000..208357b --- /dev/null +++ b/molecule/default/verify.yml @@ -0,0 +1,37 @@ +--- + +# verify +- name: "verify" + hosts: "all" + become: true + gather_facts: true + vars: + # renovate: datasource=github-releases depName=atuinsh/atuin versioning=pep440 + atuin_version: "18.7.1" + atuin_binary_path: "/usr/local/bin/atuin" + + tasks: + + # check if atuin binary is installed + - name: "check if atuin binary exists" + ansible.builtin.stat: + path: "{{ atuin_binary_path }}" + register: "atuin_binary_stat" + + - name: "fail if atuin binary does not exist" + ansible.builtin.fail: + msg: "Atuin binary not found at {{ atuin_binary_path }}" + when: "not atuin_binary_stat.stat.exists" + + # check atuin version + - name: "check current atuin version" + ansible.builtin.command: "{{ atuin_binary_path }} -V" + register: "atuin_version_check" + changed_when: false + failed_when: "atuin_version_check.rc != 0" + + - name: "assert atuin version matches expected" + ansible.builtin.assert: + that: "'{{ atuin_version }}' in atuin_version_check.stdout" + fail_msg: "Atuin version ({{ atuin_version_check.stdout }}) does not match ({{ atuin_version }})" + success_msg: "Atuin version matches expected ({{ atuin_version }})"