diff --git a/.github/workflows/build-machines-and-homes.yml b/.github/workflows/build-machines-and-homes.yml index 1900b0e..43ea5bf 100644 --- a/.github/workflows/build-machines-and-homes.yml +++ b/.github/workflows/build-machines-and-homes.yml @@ -3,6 +3,7 @@ on: workflow_dispatch: push: pull_request: + env: ATTIC_TOKEN: ${{ secrets.ATTIC_TOKEN }} NIX_CONFIG: | @@ -13,6 +14,7 @@ env: accept-flake-config = true system-features = nixos-test benchmark big-parallel kvm TERM: ansi + jobs: build-machines: strategy: @@ -36,16 +38,20 @@ jobs: remove-codeql: 'true' remove-docker-images: 'true' build-mount-path: /nix + - name: Install Nix uses: cachix/install-nix-action@v30 + - name: Sync repository uses: actions/checkout@v4 with: persist-credentials: false + - name: setup attic run: | nix profile install github:zhaofengli/attic attic login cy7 https://cache.cy7.sh "$ATTIC_TOKEN" + - name: build run: | package=".#nixosConfigurations."${{ matrix.machine }}".config.system.build.toplevel" diff --git a/flake.lock b/flake.lock index 6efe59b..5851518 100644 --- a/flake.lock +++ b/flake.lock @@ -131,11 +131,11 @@ "rocksdb": "rocksdb" }, "locked": { - "lastModified": 1742567657, - "narHash": "sha256-p513FwDJl1J8fCpUFbAeZTb0ONbEmn2r5kGFBc9siUw=", + "lastModified": 1742266954, + "narHash": "sha256-PoVjZXR24r1WPyWWK+DZDAlVr4otn/BcxY7/jd8fehM=", "owner": "girlbossceo", "repo": "conduwuit", - "rev": "33c5afe050491988ee8224af25b9b06e892f4b50", + "rev": "7bf92c8a3710eeff229bd86bc81a89daa94b66d5", "type": "github" }, "original": { @@ -868,11 +868,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1743008566, - "narHash": "sha256-vqiNwWvNcIuHIPu6RC1WScwDHlcGerCZWZ8XOLVu0B0=", + "lastModified": 1742960832, + "narHash": "sha256-xdp71QH76Q0esAJi4+5xDzpgBQNFpq8xn6UNfyT/s9w=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f55926cd4adb4db12ca97a86bc4e48e2c213f4d9", + "rev": "24693557f72603e8f2c514ee26854d5c2aad9090", "type": "github" }, "original": { @@ -945,6 +945,22 @@ "type": "github" } }, + "pixelflasher": { + "locked": { + "lastModified": 1741302870, + "narHash": "sha256-7AywZ1b3PaqolAZ0vQmddD6Br4o0a7ucdtE0/W3rnaM=", + "owner": "cything", + "repo": "nixpkgs", + "rev": "5ef8b274bb7f939104295a22cec3382268ed73cc", + "type": "github" + }, + "original": { + "owner": "cything", + "ref": "pixelflasher", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -1008,6 +1024,7 @@ "nixpkgs-stable": "nixpkgs-stable_2", "nixvim": "nixvim", "nvim-github-theme": "nvim-github-theme", + "pixelflasher": "pixelflasher", "rust-overlay": "rust-overlay", "sops-nix": "sops-nix", "treefmt": "treefmt", diff --git a/flake.nix b/flake.nix index b5fccc8..1c5adea 100644 --- a/flake.nix +++ b/flake.nix @@ -71,6 +71,7 @@ url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; + pixelflasher.url = "github:cything/nixpkgs/pixelflasher"; attic = { url = "github:zhaofengli/attic"; inputs = { diff --git a/home/codium.nix b/home/codium.nix index 117c9e0..00724b6 100644 --- a/home/codium.nix +++ b/home/codium.nix @@ -107,7 +107,7 @@ "vim.enableNeovim" = true; "vim.hlsearch" = true; "vim.easymotion" = true; - "editor.lineNumbers" = "relative"; + "editor.lineNumbers" = "relative"; "vim.normalModeKeyBindings" = vimCommonKeyBindings ++ [ { "before" = [ ";" ]; @@ -223,32 +223,32 @@ } ]; }; - keybindings = [ - # repeat these vim bindings here cause otherwise they get overridden by vscode - { - "key" = "ctrl+b"; - "when" = "inputFocus"; - "command" = "cursorLeft"; - } - { - "key" = "ctrl+f"; - "when" = "inputFocus"; - "command" = "cursorRight"; - } - # clear default bindings that conflict - { - "key" = "ctrl+f"; - "command" = "-actions.find"; - } - { - "key" = "ctrl+b"; - "command" = "-workbench.action.toggleSidebarVisibility"; - } - { - "key" = "ctrl+w"; - "command" = "-workbench.action.closeActiveEditor"; - } - ]; + keybindings = [ + # repeat these vim bindings here cause otherwise they get overridden by vscode + { + "key" = "ctrl+b"; + "when" = "inputFocus"; + "command" = "cursorLeft"; + } + { + "key" = "ctrl+f"; + "when" = "inputFocus"; + "command" = "cursorRight"; + } + # clear default bindings that conflict + { + "key" = "ctrl+f"; + "command" = "-actions.find"; + } + { + "key" = "ctrl+b"; + "command" = "-workbench.action.toggleSidebarVisibility"; + } + { + "key" = "ctrl+w"; + "command" = "-workbench.action.closeActiveEditor"; + } + ]; }; }; } diff --git a/modules/attic.nix b/modules/attic.nix index e546a9e..a43d444 100644 --- a/modules/attic.nix +++ b/modules/attic.nix @@ -18,10 +18,7 @@ in settings = { listen = "[::]:8091"; api-endpoint = "https://cache.cy7.sh/"; - allowed-hosts = [ - "cache.cy7.sh" - "cdn.cy7.sh" - ]; + allowed-hosts = [ "cache.cy7.sh" "cdn.cy7.sh" ]; require-proof-of-possession = false; compression = { type = "none"; diff --git a/overlay/attic/prefetch-8-chunks.patch b/overlay/attic/prefetch-8-chunks.patch index 3d6134f..eafc514 100644 --- a/overlay/attic/prefetch-8-chunks.patch +++ b/overlay/attic/prefetch-8-chunks.patch @@ -11,4 +11,13 @@ index 02e4857..b522154 100644 Download::Url(url) => Ok(Redirect::temporary(&url).into_response()), Download::AsyncRead(stream) => { let stream = ReaderStream::new(stream).map_err(|e| { +@@ -262,7 +262,7 @@ async fn get_nar( + + // TODO: Make num_prefetch configurable + // The ideal size depends on the average chunk size +- let merged = merge_chunks(chunks, streamer, storage, 2).map_err(|e| { ++ let merged = merge_chunks(chunks, streamer, storage, 8).map_err(|e| { + tracing::error!(%e, "Stream error"); + e + }); diff --git a/overlay/default.nix b/overlay/default.nix index 71bee1e..d8780e2 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -16,6 +16,7 @@ in in { conduwuit = pkgFrom inputs.conduwuit "default"; + pixelflasher = nixpkgsFrom inputs.pixelflasher "pixelflasher"; attic-server = pkgFrom inputs.attic "attic-server"; attic = pkgFrom inputs.attic "attic"; garage = (