From e87c8292b1a6453260db421559d68d685209c260 Mon Sep 17 00:00:00 2001 From: Matthew McKinnon Date: Sun, 12 Oct 2025 15:55:16 +1000 Subject: [PATCH] chore: add cron script to pull images --- ansible/tasks/gitea-runner.yml | 40 +++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/ansible/tasks/gitea-runner.yml b/ansible/tasks/gitea-runner.yml index b6c5474..8b564b9 100644 --- a/ansible/tasks/gitea-runner.yml +++ b/ansible/tasks/gitea-runner.yml @@ -41,4 +41,42 @@ GITEA_INSTANCE_URL: "https://git.comprofix.com" GITEA_RUNNER_REGISTRATION_TOKEN: "{{ GITEA_RUNNER_TOKEN }}" GITEA_RUNNER_NAME: "gtar-runner" - GITEA_RUNNER_LABELS: "alpine-latest:docker://git.comprofix.com/mmckinnon/alpine-runner:latest,ubuntu-latest:docker://node:22-trixie,gtar-latest:docker://git.comprofix.com/mmckinnon/debian-latest:latest" \ No newline at end of file + GITEA_RUNNER_LABELS: "alpine-latest:docker://git.comprofix.com/mmckinnon/alpine-runner:latest,ubuntu-latest:docker://node:22-trixie,homelab-latest:docker://git.comprofix.com/mmckinnon/debian-latest:latest" + +- name: Create pull-ci-images.sh script + copy: + dest: /usr/local/bin/pull-ci-images.sh + mode: '0755' + owner: root + group: root + content: | + #!/bin/bash + set -euo pipefail + + IMAGES=( + "ghcr.io/renovatebot/renovate:latest" + "git.comprofix.com/mmckinnon/alpine-runner:latest" + "git.comprofix.com/mmckinnon/debian-latest:latest" + "node:22-trixie" + "catthehacker/ubuntu:act-latest" + ) + + echo "Starting image pull at $(date)" + + for image in "${IMAGES[@]}"; do + echo "Pulling $image..." + docker pull "$image" + done + + echo "Pruning old images..." + docker image prune -af --filter "until=168h" + + echo "Image pull completed at $(date)" + +- name: Ensure cron job for pulling CI images exists + cron: + name: "Pull latest CI images daily" + user: "{{ ansible_user_id }}" + job: "/usr/local/bin/pull-ci-images.sh >> /var/log/pull-ci-images.log 2>&1" + hour: 2 + minute: 0 \ No newline at end of file