206 lines
6.9 KiB
YAML
206 lines
6.9 KiB
YAML
---
|
|
# ----------------------------------------------
|
|
# -- Update the helm chart
|
|
# ----------------------------------------------
|
|
kind: pipeline
|
|
type: kubernetes
|
|
name: Publish the helm chart
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
|
|
steps:
|
|
- name: Publish the Helm chart
|
|
image: alpine/helm
|
|
environment:
|
|
GITEA_TOKEN:
|
|
from_secret: GITEA_TOKEN
|
|
commands:
|
|
- helm plugin install https://github.com/chartmuseum/helm-push
|
|
- helm package chart -d chart-package
|
|
- helm repo add --username allanger --password $GITEA_TOKEN badhouseplants-net https://git.badhouseplants.net/api/packages/badhouseplants/helm
|
|
- helm cm-push "./chart-package/$(ls chart-package)" badhouseplants-net
|
|
---
|
|
# ----------------------------------------------
|
|
# -- Build the site and push it to the registry
|
|
# ----------------------------------------------
|
|
kind: pipeline
|
|
type: kubernetes
|
|
name: Build badhouseplants.net
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
clone:
|
|
disable: true
|
|
|
|
steps:
|
|
- name: clone
|
|
image: alpine/git
|
|
environment:
|
|
GIT_LFS_SKIP_SMUDGE: 1
|
|
commands:
|
|
- git clone $DRONE_REMOTE_URL --recurse-submodules .
|
|
- git checkout $DRONE_BRANCH
|
|
|
|
- name: Test a build
|
|
image: git.badhouseplants.net/badhouseplants/hugo-builder
|
|
depends_on:
|
|
- clone
|
|
commands:
|
|
- hugo
|
|
|
|
- name: Build and push the docker image
|
|
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
|
|
privileged: true
|
|
depends_on:
|
|
- Test a build
|
|
environment:
|
|
GITEA_TOKEN:
|
|
from_secret: GITEA_TOKEN
|
|
commands:
|
|
- ./scripts/build-container.pl
|
|
|
|
- name: Sync pictures from lfs to Minio
|
|
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
|
|
depends_on:
|
|
- Test a build
|
|
environment:
|
|
RCLONE_CONFIG_CONTENT:
|
|
from_secret: RCLONE_CONFIG_CONTENT_PRIVATE
|
|
RCLONE_CONFIG: /tmp/rclone.conf
|
|
commands:
|
|
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
|
|
- ./scripts/upload-media.pl
|
|
|
|
- name: Deploy a preview ApplicationSet
|
|
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
|
|
when:
|
|
branch:
|
|
exclude:
|
|
- main
|
|
depends_on:
|
|
- Build and push the docker image
|
|
- Sync pictures from lfs to Minio
|
|
environment:
|
|
KUBECONFIG_CONTENT:
|
|
from_secret: KUBECONFIG_CONTENT
|
|
commands:
|
|
- mkdir $HOME/.kube
|
|
- echo $KUBECONFIG_CONTENT | base64 -d > $HOME/.kube/config
|
|
- export ARGO_APP_CHART_VERSION=`cat chart/Chart.yaml | yq '.version'`
|
|
- export ARGO_APP_BRANCH=$DRONE_BRANCH
|
|
- export ARGO_APP_HOSTNAME="${DRONE_BRANCH}-dev.badhouseplants.net"
|
|
- export ARGO_APP_IMAGE_TAG=$DRONE_COMMIT_SHA
|
|
- export ARGO_REMARK42_SECRET=$(openssl rand -hex 12)
|
|
- kubectl get -f ./kube/applicationset.yaml -o yaml > /tmp/appset.yaml
|
|
- yq -i "del(.metadata.resourceVersion)" /tmp/appset.yaml
|
|
- yq -i "del(.metadata.generation)" /tmp/appset.yaml
|
|
- yq -i "del(.metadata.uid)" /tmp/appset.yaml
|
|
- yq -i "del(.status)" /tmp/appset.yaml
|
|
- yq -i "del(.spec.generators[].list.elements[] | select(.branch == \"$ARGO_APP_BRANCH\"))" /tmp/appset.yaml
|
|
- envsubst < ./kube/template.yaml > /tmp/elements.yaml
|
|
- yq -i '.spec.generators[].list.elements += load("/tmp/elements.yaml")' /tmp/appset.yaml
|
|
- kubectl apply -f /tmp/appset.yaml
|
|
|
|
- name: Deploy a main ApplicationSet
|
|
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
|
|
when:
|
|
branch:
|
|
- main
|
|
depends_on:
|
|
- Build and push the docker image
|
|
- Sync pictures from lfs to Minio
|
|
environment:
|
|
KUBECONFIG_CONTENT:
|
|
from_secret: KUBECONFIG_CONTENT
|
|
ARGO_GITHUB_OAUTH_KEY:
|
|
from_secret: GITHUB_OAUTH_KEY
|
|
ARGO_GOOGLE_OAUTH_KEY:
|
|
from_secret: GOOGLE_OAUTH_KEY
|
|
commands:
|
|
- mkdir $HOME/.kube
|
|
- echo $KUBECONFIG_CONTENT | base64 -d > $HOME/.kube/config
|
|
- export ARGO_APP_CHART_VERSION=`cat chart/Chart.yaml | yq '.version'`
|
|
- export ARGO_APP_BRANCH=$DRONE_BRANCH
|
|
- export ARGO_APP_IMAGE_TAG=$DRONE_COMMIT_SHA
|
|
- kubectl get -f ./kube/applicationset.yaml -o yaml > /tmp/appset.yaml
|
|
- yq -i "del(.metadata.resourceVersion)" /tmp/appset.yaml
|
|
- yq -i "del(.metadata.generation)" /tmp/appset.yaml
|
|
- yq -i "del(.metadata.uid)" /tmp/appset.yaml
|
|
- yq -i "del(.status)" /tmp/appset.yaml
|
|
- yq -i "del(.spec.generators[].list.elements[] | select(.branch == \"$ARGO_APP_BRANCH\"))" /tmp/appset.yaml
|
|
- yq -i "del(.spec.generators[].list.elements[] | select(.commit_sha == \"$ARGO_APP_IMAGE_TAG\"))" /tmp/appset.yaml
|
|
- yq -i '. *= load("./kube/applicationset.yaml")' /tmp/appset.yaml
|
|
- envsubst < ./kube/main.yaml > /tmp/elements.yaml
|
|
- yq -i '.spec.generators[].list.elements += load("/tmp/elements.yaml")' /tmp/appset.yaml
|
|
- kubectl apply -f /tmp/appset.yaml
|
|
|
|
- name: Sync application
|
|
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
|
|
depends_on:
|
|
- Deploy a main ApplicationSet
|
|
- Deploy a preview ApplicationSet
|
|
environment:
|
|
ARGOCD_SERVER:
|
|
from_secret: ARGOCD_SERVER
|
|
ARGOCD_AUTH_TOKEN:
|
|
from_secret: ARGOCD_AUTH_TOKEN
|
|
commands:
|
|
- argocd app sync -l app=badhouseplants -l branch=$DRONE_BRANCH
|
|
- argocd app wait -l app=badhouseplants -l branch=$DRONE_BRANCH
|
|
|
|
- name: Cleanup everything
|
|
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
|
|
depends_on:
|
|
- Sync application
|
|
environment:
|
|
RCLONE_CONFIG_CONTENT:
|
|
from_secret: RCLONE_CONFIG_CONTENT_PRIVATE
|
|
RCLONE_CONFIG: /tmp/rclone.conf
|
|
GITEA_TOKEN:
|
|
from_secret: GITEA_TOKEN
|
|
ARGOCD_SERVER:
|
|
from_secret: ARGOCD_SERVER
|
|
ARGOCD_AUTH_TOKEN:
|
|
from_secret: ARGOCD_AUTH_TOKEN
|
|
commands:
|
|
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
|
|
- ./scripts/cleanup.pl
|
|
|
|
---
|
|
# ----------------------------------------------
|
|
# -- Upload a newer version of my CV
|
|
# ----------------------------------------------
|
|
kind: pipeline
|
|
type: kubernetes
|
|
name: CV Builder
|
|
|
|
trigger:
|
|
branch:
|
|
- main
|
|
event:
|
|
- push
|
|
|
|
steps:
|
|
- name: Build the CV
|
|
image: ghcr.io/puppeteer/puppeteer
|
|
commands:
|
|
- cp -R ./content/cv/* $HOME
|
|
- cd $HOME
|
|
- npm install md-to-pdf
|
|
- npx md-to-pdf index.md
|
|
- mkdir $DRONE_WORKSPACE/cv
|
|
- mv index.pdf $DRONE_WORKSPACE/cv/n.rodionov.pdf
|
|
|
|
- name: Upload the CV
|
|
image: rclone/rclone:latest
|
|
environment:
|
|
RCLONE_CONFIG_CONTENT:
|
|
from_secret: RCLONE_CONFIG_CONTENT_PRIVATE
|
|
RCLONE_CONFIG: /tmp/rclone.conf
|
|
commands:
|
|
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
|
|
- rclone copy -P $DRONE_WORKSPACE/cv badhouseplants-minio:/public-download
|