diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f1c195..ab50d8d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,5 +121,8 @@ jobs: - name: Check Nix formatting run: nix run nixpkgs#alejandra -- --check . + - name: Build default package + run: nix build + - name: Test in flake devShell run: nix develop --command cargo test --all-targets --all-features diff --git a/flake.nix b/flake.nix index f02296e..a48860f 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "Rust development shell template"; + description = "JSON CLI for a running QueryMT ACP WebSocket server"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; @@ -7,7 +7,7 @@ rust-overlay.url = "github:oxalica/rust-overlay"; }; - outputs = inputs: + outputs = inputs @ {self, ...}: inputs.flake-parts.lib.mkFlake {inherit inputs;} { systems = inputs.nixpkgs.lib.systems.flakeExposed; @@ -18,7 +18,36 @@ }; rustToolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + + cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml); + + qmtacp = pkgs.rustPlatform.buildRustPackage { + pname = "qmtacp"; + version = cargoToml.package.version; + src = ./.; + cargoLock = { + lockFile = ./Cargo.lock; + }; + auditable = false; + doCheck = false; + }; in { + packages = { + qmtacp = qmtacp; + default = qmtacp; + }; + + apps = { + qmtacp = { + type = "app"; + program = "${self.packages.${system}.qmtacp}/bin/qmtacp"; + }; + default = { + type = "app"; + program = "${self.packages.${system}.qmtacp}/bin/qmtacp"; + }; + }; + devShells.default = pkgs.mkShell { packages = [ rustToolchain @@ -27,7 +56,7 @@ ]; shellHook = '' - export PS1="(dev:rust) $PS1" + export PS1="(dev:qmtacp) $PS1" ''; }; };