diff --git a/.forgejo/workflows/push.yaml b/.forgejo/workflows/push.yaml index 4654489..28f49f6 100644 --- a/.forgejo/workflows/push.yaml +++ b/.forgejo/workflows/push.yaml @@ -15,30 +15,22 @@ jobs: # rust code must be formatted for standardisation lint_fmt: # build it using teh base nixos system, helps with caching - runs-on: docker + runs-on: nix steps: # get the repo first - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 - with: - components: rustfmt - cache: false - - uses: https://github.com/actions-rust-lang/rustfmt@v1 + - run: nix build .#fmt --verbose # clippy is incredibly useful for making yer code better lint_clippy: # build it using teh base nixos system, helps with caching - runs-on: docker + runs-on: nix permissions: checks: write steps: # get the repo first - uses: https://code.forgejo.org/actions/checkout@v4 - - uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 - with: - components: clippy - cache: false - - run: cargo clippy + - run: nix build .#clippy --verbose build: # build it using teh base nixos system, helps with caching diff --git a/flake.lock b/flake.lock index ff915f7..9f7289a 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1692351612, - "narHash": "sha256-KTGonidcdaLadRnv9KFgwSMh1ZbXoR/OBmPjeNMhFwU=", + "lastModified": 1721727458, + "narHash": "sha256-r/xppY958gmZ4oTfLiHN0ZGuQ+RSTijDblVgVLFi1mw=", "owner": "nix-community", "repo": "naersk", - "rev": "78789c30d64dea2396c9da516bbcc8db3a475207", + "rev": "3fb418eaf352498f6b6c30592e3beb63df42ef11", "type": "github" }, "original": { @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1693060755, - "narHash": "sha256-KNsbfqewEziFJEpPR0qvVz4rx0x6QXxw1CcunRhlFdk=", + "lastModified": 1723151389, + "narHash": "sha256-9AVY0ReCmSGXHrlx78+1RrqcDgVSRhHUKDVV1LLBy28=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c66ccfa00c643751da2fd9290e096ceaa30493fc", + "rev": "13fe00cb6c75461901f072ae62b5805baef9f8b2", "type": "github" }, "original": { @@ -34,16 +34,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1693087214, - "narHash": "sha256-Kn1SSqRfPpqcI1MDy82JXrPT1WI8c03TA2F0xu6kS+4=", + "lastModified": 1722995383, + "narHash": "sha256-UzuXo7ZM8ZK0SkWFhHocKkLSGQPHS4JxaE1jvVR4fUo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f155f0cf4ea43c4e3c8918d2d327d44777b6cad4", + "rev": "957d95fc8b9bf1eb60d43f8d2eba352b71bbf2be", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-23.05", + "ref": "nixos-unstable", "type": "indirect" } }, @@ -74,11 +74,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1692799911, - "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7e997b8..d4228bc 100644 --- a/flake.nix +++ b/flake.nix @@ -2,16 +2,11 @@ description = "Skynet Discord Bot"; inputs = { - nixpkgs.url = "nixpkgs/nixos-23.05"; + nixpkgs.url = "nixpkgs/nixos-unstable"; naersk.url = "github:nix-community/naersk"; utils.url = "github:numtide/flake-utils"; }; - /* - sudo nano /etc/nix/nix.conf - trusted-users = {username} - */ - nixConfig = { extra-substituters = "https://nix-cache.skynet.ie/skynet-cache"; extra-trusted-public-keys = "skynet-cache:zMFLzcRZPhUpjXUy8SF8Cf7KGAZwo98SKrzeXvdWABo="; @@ -25,20 +20,35 @@ }: utils.lib.eachDefaultSystem ( system: let - pkgs = nixpkgs.legacyPackages."${system}"; - naersk-lib = naersk.lib."${system}"; + pkgs = (import nixpkgs) {inherit system;}; + naersk' = pkgs.callPackage naersk {}; package_name = "skynet_discord_bot"; desc = "Skynet Discord Bot"; + buildInputs = with pkgs; [ + openssl + pkg-config + rustfmt + ]; in rec { - # `nix build` - packages."${package_name}" = naersk-lib.buildPackage { - pname = "${package_name}"; - root = ./.; - - buildInputs = with pkgs; [ - openssl - pkg-config - ]; + packages = { + # For `nix build` & `nix run`: + default = naersk'.buildPackage { + pname = "${package_name}"; + src = ./.; + buildInputs = buildInputs; + }; + # Run `nix build .#fmt` to run tests + fmt = naersk'.buildPackage { + src = ./.; + mode = "fmt"; + buildInputs = buildInputs; + }; + # Run `nix build .#clippy` to lint code + clippy = naersk'.buildPackage { + src = ./.; + mode = "clippy"; + buildInputs = buildInputs; + }; }; defaultPackage = packages."${package_name}"; @@ -52,7 +62,7 @@ # `nix develop` devShell = pkgs.mkShell { - nativeBuildInputs = with pkgs; [rustc cargo pkg-config openssl]; + nativeBuildInputs = with pkgs; [rustc cargo pkg-config openssl rustfmt]; }; nixosModule = {