--- # ---------------------------------------------- # -- 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 . - git checkout $DRONE_BRANCH - git submodule update --init --recursive - name: Test a build image: git.badhouseplants.net/badhouseplants/hugo-builder depends_on: - clone commands: - hugo -s ./src - 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 --- kind: pipeline type: kubernetes name: Spell-Checker 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: Spell-Checker image: node commands: - npm i markdown-spellcheck -g - mdspell "src/**/*.md" -n -r