From 8e966898f30301ee8792ec885b3eb91ab682feb2 Mon Sep 17 00:00:00 2001 From: efim Date: Sat, 29 Apr 2023 19:12:30 +0400 Subject: [PATCH] initial backend nix build - get jar --- .gitignore | 1 + build.sbt | 1 + flake.lock | 40 +++++++++++++++++++++++++++++++++++++++- flake.nix | 29 ++++++++++++++++++++++++++--- 4 files changed, 67 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 321b26d..61b70d9 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ target .metals project/project project/metals.sbt +/result diff --git a/build.sbt b/build.sbt index 59a81dd..f847e78 100644 --- a/build.sbt +++ b/build.sbt @@ -1,6 +1,7 @@ import org.scalajs.linker.interface.ModuleSplitStyle lazy val commonSettings = Seq( + version := "0.1.1", scalaVersion := "3.2.0" ) diff --git a/flake.lock b/flake.lock index 012bdc8..687bf5c 100644 --- a/flake.lock +++ b/flake.lock @@ -18,6 +18,21 @@ "type": "github" } }, + "flake-utils_2": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1682080641, @@ -36,7 +51,30 @@ "root": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "sbt-derivation": "sbt-derivation" + } + }, + "sbt-derivation": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1675083208, + "narHash": "sha256-+sSFhSpV2jckr1qYlX/SaxQ6IdpagD6o4rru/3HAl0I=", + "owner": "zaninime", + "repo": "sbt-derivation", + "rev": "92d6d6d825e3f6ae5642d1cce8ff571c3368aaf7", + "type": "github" + }, + "original": { + "owner": "zaninime", + "ref": "master", + "repo": "sbt-derivation", + "type": "github" } }, "systems": { diff --git a/flake.nix b/flake.nix index 8f6bbe4..97308a7 100644 --- a/flake.nix +++ b/flake.nix @@ -2,12 +2,17 @@ description = "Planning Poker web app. Trying to build something and learn new things"; inputs.nixpkgs.url = "github:nixos/nixpkgs"; inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.sbt-derivation.url = "github:zaninime/sbt-derivation/master"; + inputs.sbt-derivation.inputs.nixpkgs.follows = "nixpkgs"; - outputs = { self, nixpkgs, flake-utils }: + outputs = { self, nixpkgs, flake-utils, sbt-derivation }: flake-utils.lib.eachDefaultSystem (system: - let pkgs = nixpkgs.legacyPackages.${system}; in - { + let + pkgs = nixpkgs.legacyPackages.${system}; + packageName = "blanning-poker-grargh"; + version = "0.1.1"; + in { devShells.default = pkgs.mkShell { buildInputs = [ pkgs.nodejs @@ -21,6 +26,24 @@ echo "dev env for planning poker BWARGH started" ''; }; + packages.backend = sbt-derivation.lib.mkSbtDerivation rec { + inherit version; + + pkgs = nixpkgs.legacyPackages.x86_64-linux; + + # ...and the rest of the arguments + pname = "${packageName}-backend"; + depsSha256 = "sha256-UOEq6KFS4rh4eaKxnRcVOh4SQWn3hnfpzcyRqPnFvco="; + src = pkgs.nix-gitignore.gitignoreSource [] ./.; + buildPhase = '' + sbt backend/assembly + ''; + installPhase = '' + mkdir -p $out/bin + cp backend/target/scala-*/backend-assembly-*.jar $out/bin/ + ''; + + }; } ); # see https://serokell.io/blog/practical-nix-flakes