mirror of
https://github.com/readest/readest.git
synced 2026-08-19 22:14:04 +00:00
* refactor(nix): move nix files out of `ops/` * feat(nix): package for nix * docs(nix): add installation guide * chore(workflows): add workflow to build on nix * chore(workflows): move flake check to pull requests, and builds to cron * fix(nix): only add ios shell on darwin * chore(workflows): add workflow to update flake inputs periodically * chore(workflows): rename nix.yml to nix-build.yml * chore(workflows): add cachix to nix-build * chore: check all systems * chore: auto-update hashes * fix: set platform to linux and add warning in docs * fix: only evaluate android shell if system is not aarch64 * fix: drop soon-to-be-deprecated x86_64-darwin platform * fix: use more explicit nix build command * fix: respect .gitignore in src * chore: only run nix build on push to main * fix: remove duplicate nix installer action * chore: fix script formatting * chore: move build check to flake checks * chore: remove automatic hash-mismatch fix * fix: only give read permissions to nix build action * fix: use more explicit matching * fix: remove unnecessary passthru references * fix: pin action versions * fix: use cachix for nix flake check * fix: remove unnecessary secret * fix: do not push flake check builds * fix: meta.platforms -> platforms * fix(nix): wire up the public binary cache and drop aarch64-linux The Cachix cache was populated by CI but unreachable by users: neither the flake nor the README pointed at it, so every install compiled the Rust/Tauri stack and webkitgtk from source. Add nixConfig substituters and document the cachix use / nix.settings opt-ins. skipPush was passed to install-nix-action, which has no such input, so PR builds still pushed whenever the token was present. Move it to cachix-action and drop authToken there: the cache is public, so pulling needs no token, and PR-triggered builds no longer see the push token at all. Restrict nix_flake_check to pull_request. It also ran on main pushes, where nix-build.yml already builds and pushes the same paths. Drop aarch64-linux from eachSystem. Nothing built or cached it, so ARM Linux users got a cache miss on everything. That makes the two system != aarch64-linux guards dead, so fold those attrsets back into their bases. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(nix): refresh the pnpm deps hash after lockfile changes on main nix flake check builds the pull_request merge ref, so the fixed-output derivation covers main's pnpm-lock.yaml, not just the branch's. Two lockfile changes landed on main after the hash was pinned (#5754, #5764), so the FOD went stale and the check failed with a hash mismatch. Cargo.lock and the turso plugin are unchanged over the same range, so cargoHash and tursoPluginDeps still match. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * perf(nix): make the PR flake check evaluation only nix flake check builds every attribute in `checks`, so `checks.build = packages.default` turned the PR check into a full release build: cargo vendor, a production Next.js build, and a cold release compile of the whole Tauri tree. Nix builds in a pure sandbox, so it cannot use the sccache and rust-cache the other Rust jobs rely on, and the binary cache is still empty, so nothing amortized it. Observed over 45 minutes per run. Drop the attribute. The flake outputs are still evaluated across systems, which catches eval errors, and nix-build.yml keeps doing the real build on main and pushing the result to the cache. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * chore(nix): pin actions/checkout to a commit sha nix-build.yml used the mutable v5 tag while the other 19 checkout usages in this repo pin 3d3c42e5aac5ba805825da76410c181273ba90b1 (v7.0.1). A movable tag lets the action change under us and is what the scorecard pinned-dependencies check flags. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(nix): compress the README install and fix the dev shell commands README: five code blocks down to three. The three interchangeable ways to opt in to the cache collapse to one, and the two configuration.nix snippets merge into a single block, since a NixOS user edits one file. Note why the cache has to be repeated there: a flake input's nixConfig does not apply to the importing system build, so the systemPackages path would otherwise build from source. CONTRIBUTING: the documented shells pointed at ./ops, which this branch deleted when it moved the flake to the repository root, so all three commands failed. The web shell is also named default now, and ios is gated behind isDarwin. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Huang Xin <chrox.huang@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
192 lines
4.9 KiB
JSON
192 lines
4.9 KiB
JSON
{
|
|
"nodes": {
|
|
"android": {
|
|
"inputs": {
|
|
"devshell": "devshell",
|
|
"flake-utils": "flake-utils",
|
|
"nixpkgs": "nixpkgs"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1782941279,
|
|
"narHash": "sha256-ayqk9KFIFa1TacPfQxLFpbFWiqEhL811Jx/+/gjHKVA=",
|
|
"owner": "tadfisher",
|
|
"repo": "android-nixpkgs",
|
|
"rev": "9d13340524e2df1448d3b3599ee6b9159a0f8f87",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "tadfisher",
|
|
"ref": "stable",
|
|
"repo": "android-nixpkgs",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"devshell": {
|
|
"inputs": {
|
|
"nixpkgs": [
|
|
"android",
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1768818222,
|
|
"narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=",
|
|
"owner": "numtide",
|
|
"repo": "devshell",
|
|
"rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "numtide",
|
|
"repo": "devshell",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"fenix": {
|
|
"inputs": {
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
],
|
|
"rust-analyzer-src": "rust-analyzer-src"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1782900513,
|
|
"narHash": "sha256-GHrsl1+ysDFgmDQtQSqWS7TiYD2Q58VlwLvnf1+crJM=",
|
|
"owner": "nix-community",
|
|
"repo": "fenix",
|
|
"rev": "16810aa8f4ad89ca480b1513774e8b6f485fe368",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-community",
|
|
"repo": "fenix",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"flake-utils": {
|
|
"inputs": {
|
|
"systems": "systems"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1731533236,
|
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"flake-utils_2": {
|
|
"inputs": {
|
|
"systems": "systems_2"
|
|
},
|
|
"locked": {
|
|
"lastModified": 1731533236,
|
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "numtide",
|
|
"repo": "flake-utils",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs": {
|
|
"locked": {
|
|
"lastModified": 1782723713,
|
|
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"ref": "nixos-unstable",
|
|
"repo": "nixpkgs",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs_2": {
|
|
"locked": {
|
|
"lastModified": 1782723713,
|
|
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"ref": "nixos-unstable",
|
|
"repo": "nixpkgs",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"root": {
|
|
"inputs": {
|
|
"android": "android",
|
|
"fenix": "fenix",
|
|
"flake-utils": "flake-utils_2",
|
|
"nixpkgs": "nixpkgs_2"
|
|
}
|
|
},
|
|
"rust-analyzer-src": {
|
|
"flake": false,
|
|
"locked": {
|
|
"lastModified": 1782864348,
|
|
"narHash": "sha256-NVYhLbaefeIUftPlo3kS6qr0xd8eFJRodEiaHrvFKR4=",
|
|
"owner": "rust-lang",
|
|
"repo": "rust-analyzer",
|
|
"rev": "0d381ca097a8e0375a19387874d952c0a230ac4f",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "rust-lang",
|
|
"ref": "nightly",
|
|
"repo": "rust-analyzer",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"systems": {
|
|
"locked": {
|
|
"lastModified": 1681028828,
|
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"systems_2": {
|
|
"locked": {
|
|
"lastModified": 1681028828,
|
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-systems",
|
|
"repo": "default",
|
|
"type": "github"
|
|
}
|
|
}
|
|
},
|
|
"root": "root",
|
|
"version": 7
|
|
}
|