You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.2 KiB
80 lines
3.2 KiB
kind: pipeline
|
|
name: hello-world
|
|
type: docker
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
steps:
|
|
# - name: block-posts-containing-tk
|
|
# image: busybox
|
|
# commands:
|
|
# # This is necessary because, if `grep ...` doesn't find anything, it will _return_ (not print) a value of 1
|
|
# # (non-zero return codes indicating errors in Unix - since there are many more ways for something to go wrong
|
|
# # than there are for it to go right!), and so the `files=` assignment will also return 1, and the whole operation
|
|
# # will be considered a failure.
|
|
# #
|
|
# # Since a non-zero value is truthy in Linux, we can use the OR operator (`||`) to only execute the second command
|
|
# # if the first one errors out. So, this line can be translated to English as:
|
|
# # "Set the variable `files` to a list of all the files that contain `TK` - unless there aren't any, in which case
|
|
# # set it to `FILES NOT FOUND"
|
|
# - files=$(grep -rl 'TK' blog/content/posts || echo "FILES NOT FOUND")
|
|
# # We have to filter out (`grep -v`) the "marker" value of `FILES NOT FOUND`, otherwise the no-matches case would
|
|
# # be recorded as having 1 matching file, leading to an error-out below.
|
|
# # (I guess _technically_ there's an edge case in that, if I ever make a blog post titled "FILES NOT FOUND" _which also_
|
|
# # contains the string `TK`, it would slip through this check. But that feels pretty unlikely - not least because spaces
|
|
# # are very rare in my filesystem names - so I'm ok taking that risk)
|
|
# - count=$(wc -l <(echo "$files" | grep -v "FILES NOT FOUND") | awk '{print $1}')
|
|
# - if [[ "$count" -gt "0" ]]; then
|
|
# - echo "Found TK in $count files:"
|
|
# - echo $files
|
|
# - exit 1 # TODO - and alerting via Matrix!
|
|
# - fi
|
|
- name: build-blog
|
|
image: alpine
|
|
# Very unlikely to need updates, and pulling images seems slow on this setup -
|
|
# can manually reset this if necessary
|
|
pull: if-not-exists
|
|
commands:
|
|
# I considered caching this install in a pre-built image in registry,
|
|
# but the install seems pretty quick!
|
|
- apk add hugo git
|
|
- git submodule init
|
|
- git submodule update --recursive
|
|
- hugo --source blog
|
|
- name: push-built-image
|
|
image: plugins/docker
|
|
settings:
|
|
registry: gitea.scubbo.org
|
|
repo: gitea.scubbo.org/scubbo/blog_helm
|
|
tags: ${DRONE_COMMIT_SHA:0:10}
|
|
debug: true
|
|
launch_debug: true
|
|
username: scubbo
|
|
password:
|
|
from_secret: gitea_password
|
|
settings:
|
|
mtu: 1450
|
|
- name: auto-update-infra-repo
|
|
image: gitea.scubbo.org/scubbo/auto-repo-update-drone-plugin:latest
|
|
settings:
|
|
branch: main
|
|
git_repo: https://gitea.scubbo.org/scubbo/blog-infrastructure
|
|
image_tag: ${DRONE_COMMIT_SHA:0:10}
|
|
destination_file: helm/deployed-images/prod
|
|
author_email: scubbojj@gmail.com
|
|
author_name: Jack Jackson
|
|
commit_message: "[Auto] Update Prod to ${DRONE_COMMIT_SHA:0:10}"
|
|
access_token:
|
|
from_secret: gitea_pat
|
|
- name: telegram_notification
|
|
image: appleboy/drone-telegram
|
|
settings:
|
|
token:
|
|
from_secret: telegram_token
|
|
to:
|
|
from_secret: telegram_convo_id
|
|
|
|
image_pull_secrets:
|
|
- dockerconfigjson
|
|
|