diff --git a/.woodpecker/job.yaml b/.woodpecker/job.yaml index b9c484a..c0ffef9 100644 --- a/.woodpecker/job.yaml +++ b/.woodpecker/job.yaml @@ -1,18 +1,9 @@ -when: - - event: push + when: + - event: push + - branch: master -steps: - - name: smoke - image: bash - commands: - - pwd - - whoami - - hostname - - printf '%s %s %s\n' "$(date --iso-8601=seconds)" "$(hostname)" "$(git rev-parse --short HEAD)" >> /var/tmp/woodpecker-smoke.log - - tail -n 5 /var/tmp/woodpecker-smoke.log - - - name: deploy - image: bash - commands: - - '[ "${CI_COMMIT_BRANCH:-}" = "master" ] || { echo "skipping deploy on branch ${CI_COMMIT_BRANCH:-unknown}"; exit 0; }' - - bash ./scripts/deploy-app.sh + steps: + deploy: + commands: + - sh ~/nixconf/update.sh + - nh os switch -H sortug ~/nixconf --target-host root@sortug diff --git a/.woodpecker/wtf b/.woodpecker/wtf deleted file mode 100644 index f36f21a..0000000 --- a/.woodpecker/wtf +++ /dev/null @@ -1,26 +0,0 @@ -steps: - checks: - image: nixos/nix:latest - commands: - - nix develop --accept-flake-config -c bun install --frozen-lockfile - - nix develop --accept-flake-config -c bun run lint - - nix develop --accept-flake-config -c bun run typecheck - - nix develop --accept-flake-config -c bun run build - - nix develop --accept-flake-config -c bun run update:bun-nix - - git diff --exit-code bun.nix - - nix build --accept-flake-config .#default - -when: - - event: [pull_request, push] - ---- - -steps: - deploy: - image: nixos/nix:latest - commands: - - sudo -n /usr/local/libexec/deploy-sortug - -when: - - event: push - - branch: master diff --git a/.woodpecker/wtfisthis b/.woodpecker/wtfisthis deleted file mode 100644 index f36f21a..0000000 --- a/.woodpecker/wtfisthis +++ /dev/null @@ -1,26 +0,0 @@ -steps: - checks: - image: nixos/nix:latest - commands: - - nix develop --accept-flake-config -c bun install --frozen-lockfile - - nix develop --accept-flake-config -c bun run lint - - nix develop --accept-flake-config -c bun run typecheck - - nix develop --accept-flake-config -c bun run build - - nix develop --accept-flake-config -c bun run update:bun-nix - - git diff --exit-code bun.nix - - nix build --accept-flake-config .#default - -when: - - event: [pull_request, push] - ---- - -steps: - deploy: - image: nixos/nix:latest - commands: - - sudo -n /usr/local/libexec/deploy-sortug - -when: - - event: push - - branch: master diff --git a/lol.lmao b/lol.lmao deleted file mode 100644 index 3bb459b..0000000 --- a/lol.lmao +++ /dev/null @@ -1,11 +0,0 @@ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 diff --git a/nix/module.nix b/nix/module.nix index 82bcdee..90e2bb1 100644 --- a/nix/module.nix +++ b/nix/module.nix @@ -2,14 +2,6 @@ let cfg = config.services.kotsukotsu; - launcher = pkgs.writeShellScript "kotsukotsu-launch" '' - exec ${cfg.currentPath}/bin/kotsukotsu - ''; - ensureCurrent = pkgs.writeShellScript "kotsukotsu-ensure-current" '' - if [ ! -e ${cfg.currentPath} ]; then - ln -sfn ${cfg.package} ${cfg.currentPath} - fi - ''; in { options.services.kotsukotsu = { @@ -46,12 +38,6 @@ in description = "Directory for the persistent SQLite database."; }; - currentPath = lib.mkOption { - type = lib.types.str; - default = "/var/lib/kotsukotsu/current"; - description = "Stable symlink path that points at the active app package."; - }; - user = lib.mkOption { type = lib.types.str; default = "kotsukotsu"; @@ -85,10 +71,6 @@ in assertion = lib.hasPrefix "/" cfg.dataDir; message = "services.kotsukotsu.dataDir must be an absolute path."; } - { - assertion = lib.hasPrefix "/" cfg.currentPath; - message = "services.kotsukotsu.currentPath must be an absolute path."; - } ]; users.groups = lib.mkIf (cfg.group == "kotsukotsu") { @@ -122,8 +104,7 @@ in }; serviceConfig = { - ExecStart = launcher; - ExecStartPre = ensureCurrent; + ExecStart = lib.getExe cfg.package; Group = cfg.group; Restart = "on-failure"; User = cfg.user; diff --git a/scripts/deploy-app.sh b/scripts/deploy-app.sh deleted file mode 100644 index eae4f9c..0000000 --- a/scripts/deploy-app.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -target_host="${1:-root@sortug.com}" -service_name="${SERVICE_NAME:-kotsukotsu}" -current_path="${CURRENT_PATH:-/var/lib/kotsukotsu/current}" -health_url="${HEALTH_URL:-http://127.0.0.1:5174/healthz}" - -store_path="$(nix build --accept-flake-config --print-out-paths .#default | tail -n 1)" - -echo "Built ${store_path}" -echo "Copying package to ${target_host}" -nix copy --to "ssh://${target_host}" "${store_path}" - -echo "Activating release on ${target_host}" -ssh "${target_host}" " - set -euo pipefail - ln -sfn '${store_path}' '${current_path}' - systemctl restart '${service_name}' - for _ in 1 2 3 4 5 6 7 8 9 10; do - if curl -fsS '${health_url}' >/dev/null; then - exit 0 - fi - sleep 1 - done - echo 'health check failed for ${service_name}' >&2 - exit 1 -"