From 6fe7504460c6bd50e2f422ba3da118c7dbb7c3da Mon Sep 17 00:00:00 2001 From: xinyangli Date: Fri, 20 Dec 2024 18:03:12 +0800 Subject: [PATCH] ci: eval deploy --- .github/workflows/eval.yaml | 51 +++++++++++++++++++++++++++++++++++++ flake.lock | 4 +-- flake.nix | 18 ++++++++----- 3 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/eval.yaml diff --git a/.github/workflows/eval.yaml b/.github/workflows/eval.yaml new file mode 100644 index 0000000..528dd53 --- /dev/null +++ b/.github/workflows/eval.yaml @@ -0,0 +1,51 @@ +name: Eval NixOS Configurations + +on: + push: + branches: + - deploy + workflow_dispatch: + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: deploy + + - name: Install Nix + uses: cachix/install-nix-action@v25 + + - name: Configure Git + run: | + git config --global user.name "GitHub Actions Bot" + git config --global user.email "actions@github.com" + + - name: Process Configurations + run: | + git checkout -b deploy-comin-eval + mkdir -p eval + hosts=$(nix flake show --json | jq -r '.nixosConfigurations | keys[]') + echo "Found hosts: $hosts" + + for host in $hosts; do + echo "Eval derivation for $host" + if ! nix show-derivation -L ".#nixosConfigurations.$host.config.system.build.toplevel" > "eval/$host.json"; then + echo "❌ Failed to evaluate $host" + else + echo "✅ Successfully evaluated $host" + fi + done + + echo "Total hosts: $(echo "$hosts" | wc -w)" + echo "Failed hosts: $failed_hosts" + + git add eval/ + git commit -m "Update deployment configurations for all hosts" + + git push origin deploy-comin-eval diff --git a/flake.lock b/flake.lock index f46f16e..8b8ea79 100644 --- a/flake.lock +++ b/flake.lock @@ -382,11 +382,11 @@ "rev": "a3709a89797ea094f82d38edeb4a538c07c8c3fa", "revCount": 20, "type": "git", - "url": "https://git.xinyang.life/xin/nixvim" + "url": "https://git.xiny.li/xin/nixvim" }, "original": { "type": "git", - "url": "https://git.xinyang.life/xin/nixvim" + "url": "https://git.xiny.li/xin/nixvim" } }, "nix-darwin": { diff --git a/flake.nix b/flake.nix index d01cdba..4da0466 100644 --- a/flake.nix +++ b/flake.nix @@ -43,7 +43,7 @@ }; my-nixvim = { - url = "git+https://git.xinyang.life/xin/nixvim"; + url = "git+https://git.xiny.li/xin/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -286,16 +286,22 @@ { imports = nodeNixosModules.biotite ++ sharedColmenaModules; }; + + osmium = + { ... }: + { + deployment = { + targetHost = "osmium.coho-tet.ts.net"; + buildOnTarget = false; + }; + imports = nodeNixosModules.osmium ++ sharedColmenaModules; + }; }; nixosConfigurations = { calcite = mkNixos { hostname = "calcite"; }; - - osmium = mkNixos { - hostname = "osmium"; - }; } // self.colmenaHive.nodes; } @@ -305,7 +311,7 @@ pkgs = nixpkgs.legacyPackages.${system}; mkHomeConfiguration = user: host: { - name = user; + name = "${user}-${host}"; value = home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [