From 18f2b544d29899b440d0307d29199ae8e7e6e578 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 3 Apr 2023 18:56:17 +0200 Subject: Add auto redeploy --- modules/auto-redeploy.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 modules/auto-redeploy.nix diff --git a/modules/auto-redeploy.nix b/modules/auto-redeploy.nix new file mode 100644 index 0000000..c49399c --- /dev/null +++ b/modules/auto-redeploy.nix @@ -0,0 +1,30 @@ +{ config, pkgs, lib, secrets, ... }: +{ + systemd.services = { + "auto-redeploy" = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + ExecStart = '' + ${pkgs.curl}/bin/curl -H "Content-Type: application/json" -d '{"username": "${config.networking.hostName} - redeploy", "content": "System started redeploy."}' ${secrets.webhooks.discord.deploy} + cd /Spacebar-Open-Architecture + #store current commit hash + currentCommit=$(git rev-parse HEAD) + #pull from git, and exit if nothing to pull + ${pkgs.git}/bin/git pull || exit 0 + #send commit log to discord + ${pkgs.curl}/bin/curl -H "Content-Type: application/json" -d '{"username": "${config.networking.hostName} - redeploy", "content": "```$(git log --pretty=format:"%h - %s" $currentCommit..HEAD)```"}' ${secrets.webhooks.discord.deploy} + #call ./update.sh and store output (including stderr) in a file + ./update.sh 2>&1 | tee /tmp/update.log + #send the output to discord as a file + ${pkgs.curl}/bin/curl -F "file=@/tmp/update.log" -F "filename=update.log" -F "content=System finished redeploy." -H "Content-Type: multipart/form-data" ${secrets.webhooks.discord.deploy} + + ''; + #Restart = "never"; + User = "root"; + }; + }; + }; +} + + -- cgit 1.4.1