From 49f7df8ae80ed16269c5767112c462c3be2dda16 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 17 Apr 2026 11:32:25 +0000 Subject: [PATCH 01/10] chore(package): update docker.io/semaphoreui/semaphore docker tag to v2.17.37 --- tasks/install.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/install.yaml b/tasks/install.yaml index 19b32c3..2575014 100644 --- a/tasks/install.yaml +++ b/tasks/install.yaml @@ -80,7 +80,7 @@ # semaphore name: "semaphore-app" - image: "docker.io/semaphoreui/semaphore:v2.17.36" + image: "docker.io/semaphoreui/semaphore:v2.17.37" image_name_mismatch: "recreate" restart_policy: "unless-stopped" network_mode: "host" From a9537290216d7dab722156052ba7bde55e53d2a3 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 20 Apr 2026 04:47:29 +0000 Subject: [PATCH 02/10] chore(package): update dependency mitogen-hq/mitogen to v0.3.47 --- defaults/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaults/main.yaml b/defaults/main.yaml index cfc7d3f..c2d8f83 100644 --- a/defaults/main.yaml +++ b/defaults/main.yaml @@ -2,7 +2,7 @@ # mitogen # renovate: datasource=github-releases depName=mitogen-hq/mitogen versioning=pep440 -mitogen_version: "0.3.46" +mitogen_version: "0.3.47" # semaphore options semaphore_admin_username: "admin" From fe79b2d07303f636e2c6fd1456bd89c6be38ce02 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 22 Apr 2026 04:47:32 +0000 Subject: [PATCH 03/10] chore(package): update docker.io/semaphoreui/semaphore docker tag to v2.17.38 --- tasks/install.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/install.yaml b/tasks/install.yaml index 2575014..18e546d 100644 --- a/tasks/install.yaml +++ b/tasks/install.yaml @@ -80,7 +80,7 @@ # semaphore name: "semaphore-app" - image: "docker.io/semaphoreui/semaphore:v2.17.37" + image: "docker.io/semaphoreui/semaphore:v2.17.38" image_name_mismatch: "recreate" restart_policy: "unless-stopped" network_mode: "host" From 56187c1252ba82f42384598c0582b64e8b7732ed Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 30 Apr 2026 04:47:33 +0000 Subject: [PATCH 04/10] chore(package): update docker.io/semaphoreui/semaphore docker tag to v2.17.39 --- tasks/install.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/install.yaml b/tasks/install.yaml index 18e546d..1716357 100644 --- a/tasks/install.yaml +++ b/tasks/install.yaml @@ -80,7 +80,7 @@ # semaphore name: "semaphore-app" - image: "docker.io/semaphoreui/semaphore:v2.17.38" + image: "docker.io/semaphoreui/semaphore:v2.17.39" image_name_mismatch: "recreate" restart_policy: "unless-stopped" network_mode: "host" From 59bc6546afd3a282dade0da83a01fd3aea2f7a17 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 5 May 2026 04:47:31 +0000 Subject: [PATCH 05/10] chore(package): update docker.io/semaphoreui/semaphore docker tag to v2.18.1 --- tasks/install.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/install.yaml b/tasks/install.yaml index 1716357..a0e10ab 100644 --- a/tasks/install.yaml +++ b/tasks/install.yaml @@ -80,7 +80,7 @@ # semaphore name: "semaphore-app" - image: "docker.io/semaphoreui/semaphore:v2.17.39" + image: "docker.io/semaphoreui/semaphore:v2.18.1" image_name_mismatch: "recreate" restart_policy: "unless-stopped" network_mode: "host" From 8fc94c5b1f5af6bdf55a3b48db5cd9538fa30a1e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 7 May 2026 12:32:19 +0000 Subject: [PATCH 06/10] chore(package): update docker.io/semaphoreui/semaphore docker tag to v2.18.2 --- tasks/install.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/install.yaml b/tasks/install.yaml index a0e10ab..4c9f96b 100644 --- a/tasks/install.yaml +++ b/tasks/install.yaml @@ -80,7 +80,7 @@ # semaphore name: "semaphore-app" - image: "docker.io/semaphoreui/semaphore:v2.18.1" + image: "docker.io/semaphoreui/semaphore:v2.18.2" image_name_mismatch: "recreate" restart_policy: "unless-stopped" network_mode: "host" From f08a36e4c8a06768f216e04e062be1fd558027d7 Mon Sep 17 00:00:00 2001 From: Simon Cornet Date: Fri, 8 May 2026 14:42:38 +0200 Subject: [PATCH 07/10] feat: use pull-through cache for Docker Hub images Replace docker.io references with cr.simoncor.net/dockerhub pull-through cache. Official images now use explicit library/ namespace for cache compatibility. --- tasks/install.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/install.yaml b/tasks/install.yaml index 4c9f96b..b06c45b 100644 --- a/tasks/install.yaml +++ b/tasks/install.yaml @@ -80,7 +80,7 @@ # semaphore name: "semaphore-app" - image: "docker.io/semaphoreui/semaphore:v2.18.2" + image: "cr.simoncor.net/dockerhub/semaphoreui/semaphore:v2.18.2" image_name_mismatch: "recreate" restart_policy: "unless-stopped" network_mode: "host" From 19b357a9b2ac26950e41e14db8c6f146179cca18 Mon Sep 17 00:00:00 2001 From: Simon Cornet Date: Fri, 8 May 2026 15:44:26 +0200 Subject: [PATCH 08/10] feat: move deps to playbook Remove galaxy dependencies from role meta and add explicit include_role tasks in the playbook instead. --- meta/main.yaml | 5 +---- playbook.yaml | 5 +++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/meta/main.yaml b/meta/main.yaml index 5ca7579..545d637 100644 --- a/meta/main.yaml +++ b/meta/main.yaml @@ -5,7 +5,4 @@ galaxy_info: description: "install and configure an semaphore server" license: "MIT" role_name: "semaphore" -dependencies: - - name: "docker" - src: "git+https://gitlab.simoncor.net/ansible/ans-docker.git" - version: "main" +dependencies: [] diff --git a/playbook.yaml b/playbook.yaml index 5d4bdd0..1d01808 100644 --- a/playbook.yaml +++ b/playbook.yaml @@ -15,6 +15,11 @@ changed_when: false failed_when: false + # execute the role + - name: "execute role: docker" + ansible.builtin.include_role: + name: "docker" + # execute the role - name: "execute role: semaphore" ansible.builtin.include_role: From aec9b653ee1d66292460390812f7da9acdc961ca Mon Sep 17 00:00:00 2001 From: Simon Cornet Date: Fri, 15 May 2026 14:13:50 +0200 Subject: [PATCH 09/10] ci: migrate from gitlab ci to woodpecker --- .ansible-lint | 1 + .gitlab-ci.yml | 13 ------------- .markdownlint-cli2.jsonc | 3 ++- .woodpecker/linting.yml | 41 ++++++++++++++++++++++++++++++++++++++++ readme.md | 30 ++++++++++++++--------------- roles/requirements.yml | 2 +- 6 files changed, 60 insertions(+), 30 deletions(-) delete mode 100644 .gitlab-ci.yml create mode 100644 .woodpecker/linting.yml diff --git a/.ansible-lint b/.ansible-lint index 9b9b52a..2b580a2 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -3,6 +3,7 @@ exclude_paths: - ".gitlab/*" - ".gitlab-ci.yml" + - ".woodpecker/*" - "defaults/main.yaml" - "meta/main.yaml" - "vars/*" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 7ec2c37..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- - -# gitlab stages -stages: - - "gitleaks" - - "linting" - -# include components -include: - - component: "$CI_SERVER_FQDN/components/ansible/linting@v3.0.3" - - component: "$CI_SERVER_FQDN/components/gitleaks/gitleaks@v1.0.0" - - component: "$CI_SERVER_FQDN/components/markdownlint/markdownlint@1.0.0" - - component: "$CI_SERVER_FQDN/components/yamllint/yamllint@1.0.2" diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc index 56cd87c..a4ea90f 100644 --- a/.markdownlint-cli2.jsonc +++ b/.markdownlint-cli2.jsonc @@ -6,7 +6,8 @@ // linting rules "config": { "MD013": { - "line_length": 120 + "line_length": 120, + "tables": false } } } diff --git a/.woodpecker/linting.yml b/.woodpecker/linting.yml new file mode 100644 index 0000000..02cf4c2 --- /dev/null +++ b/.woodpecker/linting.yml @@ -0,0 +1,41 @@ +--- +when: + - event: "push" + branch: "main" + - event: "manual" + +steps: + + # gitleaks + - name: "gitleaks" + # renovate: datasource=github-releases depName=gitleaks/gitleaks + image: "cr.simoncor.net/ghcr/gitleaks/gitleaks:v8.30.1" + commands: + - "gitleaks detect --source . --verbose --redact" + + # yamllint + - name: "yamllint" + # renovate: datasource=docker depName=cr.simoncor.net/yamllint + image: "cr.simoncor.net/yamllint:1.38.0" + depends_on: + - "gitleaks" + commands: + - "yamllint -c .yamllint ." + + # ansible-lint + - name: "ansible-lint" + # renovate: datasource=docker depName=docker.io/pipelinecomponents/ansible-lint + image: "cr.simoncor.net/dockerhub/pipelinecomponents/ansible-lint:0.79.11" + depends_on: + - "gitleaks" + commands: + - "ansible-lint -c .ansible-lint ." + + # markdownlint + - name: "markdownlint" + # renovate: datasource=docker depName=docker.io/davidanson/markdownlint-cli2 + image: "cr.simoncor.net/dockerhub/davidanson/markdownlint-cli2:v0.22.1" + depends_on: + - "gitleaks" + commands: + - "markdownlint-cli2 --config .markdownlint-cli2.jsonc" diff --git a/readme.md b/readme.md index f3ed1d4..6e9ea6f 100644 --- a/readme.md +++ b/readme.md @@ -4,21 +4,21 @@ Install and configure [Semaphore UI](https://semaphoreui.com/) - a modern UI for ## Variables -| Variable | Required | Default | Description | -|----------|----------|---------|-------------| -| `mitogen_version` | No | `0.3.45` | Mitogen version to install | -| `semaphore_admin_username` | No | `admin` | Admin username | -| `semaphore_admin_password` | Yes | `admin` | Admin password | -| `semaphore_admin_name` | No | `Administrator` | Admin display name | -| `semaphore_admin_email` | No | `admin@example.com` | Admin email | -| `semaphore_runner_token` | Yes | `runner-token` | Runner authentication token | -| `semaphore_email_sender` | No | `semaphore@example.com` | Email sender address | -| `semaphore_email_host` | No | `smtp` | SMTP host | -| `semaphore_email_port` | No | `465` | SMTP port | -| `semaphore_email_username` | No | `smtp-user` | SMTP username | -| `semaphore_email_password` | Yes | `smtp-pass` | SMTP password | -| `semaphore_ansible_ssh_key` | Yes | - | Ansible SSH private key | -| `semaphore_ssh_config` | No | - | SSH config content | +| Variable | Required | Default | Description | +| --------------------------- | -------- | ----------------------- | --------------------------- | +| `mitogen_version` | No | `0.3.45` | Mitogen version to install | +| `semaphore_admin_username` | No | `admin` | Admin username | +| `semaphore_admin_password` | Yes | `admin` | Admin password | +| `semaphore_admin_name` | No | `Administrator` | Admin display name | +| `semaphore_admin_email` | No | `admin@example.com` | Admin email | +| `semaphore_runner_token` | Yes | `runner-token` | Runner authentication token | +| `semaphore_email_sender` | No | `semaphore@example.com` | Email sender address | +| `semaphore_email_host` | No | `smtp` | SMTP host | +| `semaphore_email_port` | No | `465` | SMTP port | +| `semaphore_email_username` | No | `smtp-user` | SMTP username | +| `semaphore_email_password` | Yes | `smtp-pass` | SMTP password | +| `semaphore_ansible_ssh_key` | Yes | ----------------------- | Ansible SSH private key | +| `semaphore_ssh_config` | No | ----------------------- | SSH config content | ## Example diff --git a/roles/requirements.yml b/roles/requirements.yml index cd44031..6f2d49a 100644 --- a/roles/requirements.yml +++ b/roles/requirements.yml @@ -2,5 +2,5 @@ roles: - name: "semaphore" - src: "https://gitlab.simoncor.net/ansible/ans-semaphore.git" + src: "https://git.simoncor.net/ansible/semaphore.git" scm: "git" From 1fe58a78b78b1638b0196a787a8b6dac5c27292a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 15 May 2026 12:46:46 +0000 Subject: [PATCH 10/10] chore(package): update cr.simoncor.net/dockerhub/semaphoreui/semaphore docker tag to v2.18.3 --- tasks/install.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/install.yaml b/tasks/install.yaml index b06c45b..5b45781 100644 --- a/tasks/install.yaml +++ b/tasks/install.yaml @@ -80,7 +80,7 @@ # semaphore name: "semaphore-app" - image: "cr.simoncor.net/dockerhub/semaphoreui/semaphore:v2.18.2" + image: "cr.simoncor.net/dockerhub/semaphoreui/semaphore:v2.18.3" image_name_mismatch: "recreate" restart_policy: "unless-stopped" network_mode: "host"