diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..d9e9c8d --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,15 @@ +name: Test + +on: + - push + - pull_request + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v27 + with: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + - run: nix develop -c cargo test \ No newline at end of file diff --git a/flake.lock b/flake.lock index 7712995..3cf322c 100644 --- a/flake.lock +++ b/flake.lock @@ -15,25 +15,6 @@ "type": "github" } }, - "fenix": { - "inputs": { - "nixpkgs": "nixpkgs", - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1754116698, - "narHash": "sha256-2cMDogXcqv975o191g0/6ZM0UolJ2X0ChuuLaNKbNAM=", - "owner": "nix-community", - "repo": "fenix", - "rev": "acdb7d8af407ea8aee21b028dc58b4bc51a7849a", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -54,16 +35,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1753939845, - "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", - "owner": "nixos", + "lastModified": 1754060105, + "narHash": "sha256-di5L6e5Iiv+oegS07j9h23FdqEpXn0ZQqMlDOEMw1EY=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "94def634a20494ee057c76998843c015909d6311", + "rev": "e7eabdc701d7dbb810fd91a97ec358caa4c1fc50", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "owner": "NixOS", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } @@ -85,11 +66,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1754060105, - "narHash": "sha256-di5L6e5Iiv+oegS07j9h23FdqEpXn0ZQqMlDOEMw1EY=", + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e7eabdc701d7dbb810fd91a97ec358caa4c1fc50", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", "type": "github" }, "original": { @@ -102,25 +83,26 @@ "root": { "inputs": { "crane": "crane", - "fenix": "fenix", "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" } }, - "rust-analyzer-src": { - "flake": false, + "rust-overlay": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, "locked": { - "lastModified": 1753974682, - "narHash": "sha256-Ya4Ecj8JaKkapgYCCybzZBcypXpblhuG0hVDzdy2zyo=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "68e7ec90bf29c9b17d0dcdb3358de5dee7f4afb5", + "lastModified": 1754966322, + "narHash": "sha256-7f/LH60DnjjQVKbXAsHIniGaU7ixVM7eWU3hyjT24YI=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "7c13cec2e3828d964b9980d0ffd680bd8d4dce90", "type": "github" }, "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", + "owner": "oxalica", + "repo": "rust-overlay", "type": "github" } } diff --git a/flake.nix b/flake.nix index faf89f9..a80ad09 100644 --- a/flake.nix +++ b/flake.nix @@ -3,12 +3,12 @@ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; crane.url = "github:ipetkov/crane"; flake-parts.url = "github:hercules-ci/flake-parts"; - fenix.url = "github:nix-community/fenix"; + rust-overlay.url = "github:oxalica/rust-overlay"; }; outputs = - inputs@{ flake-parts, ... }: - flake-parts.lib.mkFlake { inherit inputs; } { + inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "aarch64-linux" "aarch64-darwin" @@ -17,19 +17,13 @@ ]; perSystem = - { pkgs, system, ... }: + { system, ... }: let - rustToolchain = inputs.fenix.packages.${system}.combine ([ - (inputs.fenix.packages.${system}.complete.withComponents [ - "cargo" - "clippy" - "rust-src" - "rustc" - "rustfmt" - ]) - inputs.fenix.packages.${system}.complete.rust-analyzer - inputs.fenix.packages.${system}.targets.wasm32-unknown-unknown.latest.rust-std - ]); + pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ inputs.rust-overlay.overlays.default ]; + }; + rustToolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; craneLib = (inputs.crane.mkLib pkgs).overrideToolchain rustToolchain; packages = @@ -110,7 +104,6 @@ devShells.default = craneLib.devShell { inputsFrom = [ vanth ]; packages = packages; - RUST_SRC_PATH = "${rustToolchain}/lib/rustlib/src/rust/library"; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath packages; }; }; diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..b28078d --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "stable" +components = ["cargo", "clippy", "rust-analyzer", "rust-src", "rustfmt"] +targets = ["wasm32-unknown-unknown"]