Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

add release, rename nix packages, try and stop sd-switch from killing client

+79 -35
+2 -34
flake.nix
··· 101 101 # legacy alias 102 102 cli = client; 103 103 104 - client = craneLib.buildPackage ( 105 - craneLib.crateNameFromCargoToml { cargoToml = ./client/Cargo.toml; } 106 - // { 107 - src = 108 - with lib.fileset; 109 - toSource { 110 - root = ./.; 111 - fileset = unions [ 112 - ./client 113 - ./Cargo.lock 114 - ./Cargo.toml 115 - ]; 116 - }; 117 - strictDeps = true; 118 - 119 - CARGO_BUILD_TARGET = rustTarget; 120 - CARGO_BUILD_RUSTFLAGS = "-C target-feature=+crt-static"; 121 - 122 - buildInputs = pkgs.lib.optionals pkgs.stdenv.isDarwin [ 123 - pkgs.libiconv 124 - pkgs.darwin.apple_sdk.frameworks.SystemConfiguration 125 - ]; 104 + client = pkgs.callPackage ./nix/client-package.nix { inherit craneLib rustTarget; }; 126 105 127 - meta.mainProgram = "sower"; 128 - } 129 - ); 106 + server = pkgs.callPackage ./nix/server-package.nix { inherit (self'.legacyPackages) beamPackages; }; 130 107 }; 131 108 }; 132 109 133 110 flake = { 134 111 nixosModules.sower = ./nix/nixos-module.nix; 135 112 homeModules.sower = ./nix/home-module.nix; 136 - 137 - # don't support darwin 138 - packages.x86_64-linux = rec { 139 - default = server; 140 - server = withSystem "x86_64-linux" ( 141 - { pkgs, self', ... }: 142 - pkgs.callPackage ./nix/package.nix { inherit (self'.legacyPackages) beamPackages; } 143 - ); 144 - }; 145 113 146 114 typhonProject = inputs.typhon.lib.gitea.mkProject { 147 115 instance = "git.junco.dev";
+36
nix/client-package.nix
··· 1 + { 2 + lib, 3 + 4 + craneLib, 5 + darwin, 6 + libiconv, 7 + rustTarget, 8 + stdenv, 9 + }: 10 + 11 + craneLib.buildPackage ( 12 + craneLib.crateNameFromCargoToml { cargoToml = ../client/Cargo.toml; } 13 + // { 14 + src = 15 + with lib.fileset; 16 + toSource { 17 + root = ./..; 18 + fileset = unions [ 19 + ../client 20 + ../Cargo.lock 21 + ../Cargo.toml 22 + ]; 23 + }; 24 + strictDeps = true; 25 + 26 + CARGO_BUILD_TARGET = rustTarget; 27 + CARGO_BUILD_RUSTFLAGS = "-C target-feature=+crt-static"; 28 + 29 + buildInputs = lib.optionals stdenv.isDarwin [ 30 + libiconv 31 + darwin.apple_sdk.frameworks.SystemConfiguration 32 + ]; 33 + 34 + meta.mainProgram = "sower"; 35 + } 36 + )
+5
nix/home-module.nix
··· 70 70 ExecStart = "${lib.getExe cfg.package} tree upgrade"; 71 71 Type = "oneshot"; 72 72 }; 73 + 74 + Unit = { 75 + # For sd-switch users, this prevents killing sower mid-upgrade 76 + X-SwitchMethod = "keep-old"; 77 + }; 73 78 }; 74 79 75 80 systemd.user.timers.sower-client = {
-1
nix/nixos-server.nix
··· 50 50 51 51 environment = 52 52 { 53 - RELEASE_DISTRIBUTION = "none"; 54 53 SOWER_DATABASE_PATH = "%S/sower/sower-prod.db"; 55 54 PHX_SERVER = "true"; 56 55 }
nix/package.nix nix/server-package.nix
+20
rel/env.sh.eex
··· 1 + #!/bin/sh 2 + 3 + # # Sets and enables heart (recommended only in daemon mode) 4 + # case $RELEASE_COMMAND in 5 + # daemon*) 6 + # HEART_COMMAND="$RELEASE_ROOT/bin/$RELEASE_NAME $RELEASE_COMMAND" 7 + # export HEART_COMMAND 8 + # export ELIXIR_ERL_OPTIONS="-heart" 9 + # ;; 10 + # *) 11 + # ;; 12 + # esac 13 + 14 + # # Set the release to load code on demand (interactive) instead of preloading (embedded). 15 + # export RELEASE_MODE=interactive 16 + 17 + # # Set the release to work across nodes. 18 + # # RELEASE_DISTRIBUTION must be "sname" (local), "name" (distributed) or "none". 19 + export RELEASE_DISTRIBUTION=sname 20 + export RELEASE_NODE=<%= @release.name %>
+8
rel/remote.vm.args.eex
··· 1 + ## Customize flags given to the VM: https://www.erlang.org/doc/man/erl.html 2 + ## -mode/-name/-sname/-setcookie are configured via env vars, do not set them here 3 + 4 + ## Increase number of concurrent ports/sockets 5 + ##+Q 65536 6 + 7 + ## Tweak GC to run more often 8 + ##-env ERL_FULLSWEEP_AFTER 10
+8
rel/vm.args.eex
··· 1 + ## Customize flags given to the VM: https://www.erlang.org/doc/man/erl.html 2 + ## -mode/-name/-sname/-setcookie are configured via env vars, do not set them here 3 + 4 + ## Increase number of concurrent ports/sockets 5 + ##+Q 65536 6 + 7 + ## Tweak GC to run more often 8 + ##-env ERL_FULLSWEEP_AFTER 10