about summary refs log tree commit diff
path: root/tools
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-05-11 18:45:05 -0700
committerFranck Cuny <franck@fcuny.net>2022-05-11 18:46:55 -0700
commitec02496f673820244fabb3fadc903d1315218497 (patch)
treec7b7cc612d8303aec7d1fe5f093dc30a0d1f6bcb /tools
parentDockerfile: update steps (diff)
downloadworld-ec02496f673820244fabb3fadc903d1315218497.tar.gz
scripts: add a script to deploy
Remove the target from the Makefile, add a target to the flake
configuration.
Diffstat (limited to '')
-rw-r--r--tools/govanity/Makefile7
-rw-r--r--tools/govanity/flake.nix10
-rwxr-xr-xtools/govanity/scripts/deploy.sh14
3 files changed, 25 insertions, 6 deletions
diff --git a/tools/govanity/Makefile b/tools/govanity/Makefile
index 9632386..6392551 100644
--- a/tools/govanity/Makefile
+++ b/tools/govanity/Makefile
@@ -5,7 +5,7 @@ DOCKER_IMAGE_REF := $(shell git rev-parse HEAD)
 DOCKERFILE := Dockerfile
 PROJECT_DIR := $(realpath $(CURDIR))
 
-.PHONY: deploy docker-build docker-run worktree-clean server
+.PHONY: docker-build docker-run worktree-clean server
 
 server:
 	@echo "Running server ..."
@@ -15,11 +15,6 @@ worktree-clean:
 	git diff --exit-code
 	git diff --staged --exit-code
 
-deploy: worktree-clean docker-build
-	@echo "Deploying to fly ..."
-	flyctl deploy
-	git tag -a --message $$(flyctl info -j |jq -r '.App | "\(.Name)/v\(.Version)"') $$(flyctl info -j |jq -r '.App | "\(.Name)/v\(.Version)"')
-
 docker-build:
 	@echo "Building Docker image ..."
 	$(DOCKER) build $(DOCKER_BUILD_ARGS) \
diff --git a/tools/govanity/flake.nix b/tools/govanity/flake.nix
index 15b13d0..d2c2254 100644
--- a/tools/govanity/flake.nix
+++ b/tools/govanity/flake.nix
@@ -21,6 +21,16 @@
           nativeBuildInputs = with pkgs; [ go ];
         };
 
+        apps = {
+          deploy = pkgs.pkgs.writeShellScriptBin "run-deploy" ''
+            set -euxo pipefail
+            export PATH=${
+              pkgs.lib.makeBinPath [ pkgs.go pkgs.git pkgs.jq pkgs.flyctl ]
+            }:$PATH
+            bash ./scripts/deploy.sh
+          '';
+        };
+
         devShell = with pkgs;
           mkShell { nativeBuildInputs = [ git go gopls golangci-lint bash ]; };
       });
diff --git a/tools/govanity/scripts/deploy.sh b/tools/govanity/scripts/deploy.sh
new file mode 100755
index 0000000..4f46b68
--- /dev/null
+++ b/tools/govanity/scripts/deploy.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+git diff --exit-code
+git diff --staged --exit-code
+
+flyctl deploy
+
+VERSION=$(flyctl info -j |jq -r '.App | "\(.Name)/v\(.Version)"')
+
+git tag -a --message ${VERSION} ${VERSION}
+git push origin --all
+git push origin --tags
+
+flyctl agent stop