From 508ba2fadb3bf7e4e2aa9e7b2d71773bd29c70cd Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Thu, 4 Aug 2022 19:46:30 -0500 Subject: [PATCH] woodpecker: use apko to master a custom base image for the workload --- .woodpecker.yml | 30 +++++++++++++++++++++--------- apko.yaml | 12 ++++++++++++ 2 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 apko.yaml diff --git a/.woodpecker.yml b/.woodpecker.yml index d3fe258..59fc5d0 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,20 +1,32 @@ pipeline: - deploy: - image: distroless.dev/alpine-base:latest + apko-image: + image: distroless.dev/apko:latest commands: - - | + - echo $REGISTRY_SECRET | apko login --username ariadne --password-stdin gitea.treehouse.systems + - apko publish --arch $(uname -m) apko.yaml gitea.treehouse.systems/ariadne/ariadne.space-hugo:latest + secrets: [REGISTRY_SECRET] + + deploy: + image: gitea.treehouse.systems/ariadne/ariadne.space-hugo:latest + commands: + # build the new site + - hugo + + # fetch the old newswire + - curl -s https://ariadne.space/newswire.txt > oldnewswire.txt + + # set up the SSH deployment key and upload the site + - | mkdir $HOME/.ssh echo "$SSH_KEY">$HOME/.ssh/id_ed25519 echo "$SSH_KNOWN_HOSTS">$HOME/.ssh/known_hosts chown 600 $HOME/.ssh/id_ed25519 - - echo '' >>/etc/apk/repositories - - echo 'https://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories - - apk add hugo rsync openssh-client go git curl - - hugo - - wget -O oldnewswire.txt https://ariadne.space/newswire.txt - - rsync -avzHAX public/ kaniini@ariadne.space:public/ + rsync -avHAX public/ kaniini@ariadne.space:public/ + + # if the newswire has changed, publish the new one. - | cmp oldnewswire.txt public/newswire.txt || \ curl -s -H "Authorization: Bearer $MASTODON_SECRET" -F "status=$(cat public/newswire.txt)" \ https://social.treehouse.systems/api/v1/statuses + secrets: [SSH_KEY, SSH_KNOWN_HOSTS, MASTODON_SECRET] diff --git a/apko.yaml b/apko.yaml new file mode 100644 index 0000000..915082b --- /dev/null +++ b/apko.yaml @@ -0,0 +1,12 @@ +contents: + repositories: + - https://dl-cdn.alpinelinux.org/alpine/edge/main + - https://dl-cdn.alpinelinux.org/alpine/edge/community + packages: + - alpine-base + - curl + - go + - git + - hugo + - openssh-client + - rsync