diff --git a/.github/workflows/nix-dev-env.yml b/.github/workflows/nix-dev-env.yml new file mode 100644 index 0000000000000..bb4c5668679fc --- /dev/null +++ b/.github/workflows/nix-dev-env.yml @@ -0,0 +1,38 @@ +name: Nix developer enviroment +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + # Opens a PR with an updated flake.lock file + update_flake_lock: + runs-on: ubuntu-latest + steps: + - uses: cachix/install-nix-action@v30 + - uses: actions/checkout@v4 + - uses: DeterminateSystems/update-flake-lock@main + with: + pr-title: "Update flake.lock" + pr-labels: | + L-ignore + A-dependencies + + nix-dev-env: + strategy: + matrix: + runs-on: [ ubuntu-latest, macos-latest ] + runs-on: ${{ matrix.runs-on }} + steps: + - uses: cachix/install-nix-action@v30 + - uses: actions/checkout@v4 + + - name: Activate nix env + run: nix develop -c echo Ok + + - name: Check that we can compile all crates + run: nix develop -c cargo check --all-targets diff --git a/flake.lock b/flake.lock index 45ed6bb432ffb..fed7b382be03b 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1719468428, - "narHash": "sha256-vN5xJAZ4UGREEglh3lfbbkIj+MPEYMuqewMn4atZFaQ=", + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1e3deb3d8a86a870d925760db1a5adecc64d329d", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", "type": "github" }, "original": { @@ -38,8 +38,7 @@ "inputs": { "flake-utils": "flake-utils", "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay", - "solc": "solc" + "rust-overlay": "rust-overlay" } }, "rust-overlay": { @@ -49,11 +48,11 @@ ] }, "locked": { - "lastModified": 1719714047, - "narHash": "sha256-MeNPopLLv63EZj5L43j4TZkmW4wj1ouoc/h/E20sl/U=", + "lastModified": 1744770893, + "narHash": "sha256-RMyTyFHN3w8zwfpgvcfRHQ4vX4zTqhuZbif/MXROtx8=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "cb216719ce89a43dfb3d1b86a9575e89f4b727a4", + "rev": "1633514603fc0ed15ea0aef7327e26736ec003c0", "type": "github" }, "original": { @@ -62,42 +61,6 @@ "type": "github" } }, - "solc": { - "inputs": { - "flake-utils": [ - "flake-utils" - ], - "nixpkgs": [ - "nixpkgs" - ], - "solc-macos-amd64-list-json": "solc-macos-amd64-list-json" - }, - "locked": { - "lastModified": 1717442267, - "narHash": "sha256-6TnQvA6Q/xC3r1M+wGC5gnDc/5XfOPjC8X6LlGDWDNc=", - "owner": "hellwolf", - "repo": "solc.nix", - "rev": "2ac2862f224aa0d67cbc6b3246392489f8a50596", - "type": "github" - }, - "original": { - "owner": "hellwolf", - "repo": "solc.nix", - "type": "github" - } - }, - "solc-macos-amd64-list-json": { - "flake": false, - "locked": { - "narHash": "sha256-Prwz95BgMHcWd72VwVbcH17LsV9f24K2QMcUiWUQZzI=", - "type": "file", - "url": "https://github.com/ethereum/solc-bin/raw/f743ca7/macosx-amd64/list.json" - }, - "original": { - "type": "file", - "url": "https://github.com/ethereum/solc-bin/raw/f743ca7/macosx-amd64/list.json" - } - }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index ff783b4956e4e..284fb6aa8e4ed 100644 --- a/flake.nix +++ b/flake.nix @@ -8,21 +8,14 @@ nixpkgs.follows = "nixpkgs"; }; }; - solc = { - url = "github:hellwolf/solc.nix"; - inputs = { - nixpkgs.follows = "nixpkgs"; - flake-utils.follows = "flake-utils"; - }; - }; }; - outputs = { self, nixpkgs, rust-overlay, flake-utils, solc }: + outputs = { self, nixpkgs, rust-overlay, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; - overlays = [ rust-overlay.overlays.default solc.overlay ]; + overlays = [ rust-overlay.overlays.default ]; }; lib = pkgs.lib; toolchain = pkgs.rust-bin.stable.latest.default.override { @@ -33,9 +26,14 @@ devShells.default = pkgs.mkShell { nativeBuildInputs = with pkgs; [ pkg-config - solc_0_8_23 - (solc.mkDefault pkgs solc_0_8_23) toolchain + rust-jemalloc-sys + cargo-nextest + + # test dependencies + solc + vyper + nodejs ]; buildInputs = lib.optionals pkgs.stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.AppKit