From 3534dee0f47ce5637fb62de8932ddd6db32f6c04 Mon Sep 17 00:00:00 2001 From: 4o1x5 <4o1x5@4o1x5.dev> Date: Mon, 27 May 2024 18:34:24 +0200 Subject: [PATCH] flake build eureka and gateway --- flake.lock | 13 +++--- flake.nix | 108 +++++++++++++++++++++++++++--------------------- gateway/pom.xml | 1 - result | 1 + 4 files changed, 67 insertions(+), 56 deletions(-) create mode 120000 result diff --git a/flake.lock b/flake.lock index e6e6355..8af82e3 100644 --- a/flake.lock +++ b/flake.lock @@ -2,18 +2,17 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1716293225, - "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=", - "owner": "nixos", + "lastModified": 1716509168, + "narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916", + "rev": "bfb7a882678e518398ce9a31a881538679f6f092", "type": "github" }, "original": { - "owner": "nixos", + "id": "nixpkgs", "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "indirect" } }, "root": { diff --git a/flake.nix b/flake.nix index 3e8f8db..8aa25c1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,61 +1,73 @@ { - description = "Learning Pulse"; - + description = "CI, devshell and package definition for learningpulse"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + nixpkgs.url = "nixpkgs/nixos-unstable"; }; - - outputs = - { self - , nixpkgs - , maven - , makeWrapper - , stdenv - , ... - }: + outputs = { self, nixpkgs, ... }: let - overlays = [ - (final: prev: rec { - jdk = prev."jdk22"; - maven = prev.maven.override { inherit jdk; }; - }) + + # TODO add more systems + system = "x86_64-linux"; + pkgs = import nixpkgs { inherit system; }; + + buildPackages = with pkgs; [ + jdk22 + makeWrapper ]; - - supportedSystems = [ - "x86_64-linux" - "aarch64-linux" - ]; - - forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f { - pkgs = import nixpkgs { inherit overlays system; }; - }); - in - { - packages = { - learningpulse-discovery = stdenv.mkDerivation rec { - pname = "gateway"; - version = "1.0"; + rec { + packages.${system} = + { + learningpulse-gateway = pkgs.maven.buildMavenPackage rec { + pname = "gateway"; + version = "0.0.1"; - src = ./.; - buildInputs = [ maven ]; + src = ./.; + # todo get automatically + mvnHash = "sha256-YCK1Qujgx73cZdEx2mRip+y+66px5TxL247fBIMyoy4="; - buildPhase = '' - mvn --offline -Dmaven.repo.local=gateway package; - ''; + nativeBuildInputs = buildPackages; - installPhase = '' - install -Dm644 target/${pname}-${version}.jar $out/share/java - ''; - }; - devShells = forEachSupportedSystem ({ pkgs }: { - default = pkgs.mkShell { - packages = with pkgs; [ - jdk - maven - ]; + installPhase = '' + mkdir -p $out/bin $out/share/${pname} + install -Dm644 ${pname}/target/${pname}-${version}.jar $out/share/${pname}-${version} + + makeWrapper ${pkgs.jre8}/bin/java $out/bin/${pname}- \ + --add-flags "-jar $out/share/${pname}/${pname}-${version}.jar" + ''; }; - }); + learningpulse-eureka = pkgs.maven.buildMavenPackage rec { + pname = "eureka"; + version = "0.0.1"; + + src = ./.; + # todo get automatically + mvnHash = "sha256-YCK1Qujgx73cZdEx2mRip+y+66px5TxL247fBIMyoy4="; + + nativeBuildInputs = buildPackages; + + installPhase = '' + mkdir -p $out/bin $out/share/${pname} + install -Dm644 ${pname}/target/${pname}-${version}.jar $out/share/${pname}-${version} + + makeWrapper ${pkgs.jre8}/bin/java $out/bin/${pname}- \ + --add-flags "-jar $out/share/${pname}/${pname}-${version}.jar" + ''; + }; + + }; + hydraJobs = { + inherit (self) + packages; + }; + + devShells."${system}".default = pkgs.mkShell { + buildInputs = with pkgs; [ + maven + jdk22 + jre8 + ]; }; }; + } diff --git a/gateway/pom.xml b/gateway/pom.xml index 018a68c..3ee47aa 100644 --- a/gateway/pom.xml +++ b/gateway/pom.xml @@ -6,7 +6,6 @@ com.learningpulse server 0.0.1 - gateway 0.0.1 diff --git a/result b/result new file mode 120000 index 0000000..6be4ed6 --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/v6lrgj18jgvwli3irsdabgj5nc712gfc-gateway-0.0.1 \ No newline at end of file