--- notify-failed: ¬ify-failed task: notify-failed config: platform: linux image_resource: type: registry-image source: repository: badouralix/curl-jq run: path: sh args: - -exc - | curl -X POST -d '{"body":"Deployment failed!"}' -H "Content-Type: application/json" https://apprise.pim.kunis.nl:444/notify/concourse resources: - name: site-repo type: git source: uri: https://git.pim.kunis.nl/pim/staticxx.git - name: site-registry-image type: registry-image source: repository: git.pim.kunis.nl/pim/static username: pim password: ((api_key)) jobs: - name: build-and-deploy-static-website plan: - get: site-repo trigger: true - task: build-site config: platform: linux image_resource: type: registry-image source: repository: jekyll/builder inputs: - name: site-repo outputs: - name: site-html params: JEKYLL_ENV: production run: path: sh args: - -exc - | ls -lash chown jekyll:jekyll site-html cd site-repo/jekyll bundle install bundle exec jekyll build --disable-disk-cache --destination ../../site-html on_failure: << : *notify-failed - task: build-image privileged: true config: platform: linux image_resource: type: registry-image source: repository: concourse/oci-build-task inputs: - name: site-repo - name: site-html outputs: - name: image params: DOCKERFILE: site-repo/Dockerfile run: path: sh args: - -exc - | build ls image cat image/digest | cut -d ":" -f 2- > image/tag on_failure: << : *notify-failed - task: get-site-packages config: platform: linux image_resource: type: registry-image source: repository: badouralix/curl-jq outputs: - name: site-packages run: path: sh args: - -exc - | ls -lash curl -X 'GET' 'https://git.pim.kunis.nl/api/v1/packages/pim?type=container&q=static' -H 'accept: application/json' | jq -rc 'map(.version) | .[]' > site-packages/packages.txt cat site-packages/packages.txt on_failure: << : *notify-failed - task: delete-old-packages config: platform: linux image_resource: type: registry-image source: repository: badouralix/curl-jq inputs: - name: site-packages run: path: sh args: - -exc - | ls -lash while read pkg; do curl -X 'DELETE' "https://git.pim.kunis.nl/api/v1/packages/pim/container/static/$pkg?token=((api_key))" -H 'accept: application/json'; done < site-packages/packages.txt on_failure: << : *notify-failed - put: site-registry-image params: image: image/image.tar additional_tags: image/tag on_failure: << : *notify-failed - load_var: tag file: image/tag - task: deploy-site config: platform: linux image_resource: type: registry-image source: repository: raesene/alpine-containertools params: DOCKER_HOST: ssh://root@maestro.dmz inputs: - name: site-repo run: path: sh args: - -exc - | ls -lash mkdir $HOME/.ssh cp site-repo/ssh_config $HOME/.ssh/config echo "((private_key))" > $HOME/.ssh/id_ed25519 chmod 600 $HOME/.ssh/id_ed25519 sed "s/TAG/((.:tag))/g" "site-repo/docker-stack.yml.template" > docker-stack.yml docker stack deploy --compose-file docker-stack.yml static on_success: task: notify-deployed config: platform: linux image_resource: type: registry-image source: repository: badouralix/curl-jq run: path: sh args: - -exc - | curl -X POST -d '{"body":"Static website deployed!"}' -H "Content-Type: application/json" https://apprise.pim.kunis.nl:444/notify/concourse on_failure: << : *notify-failed