Unverified Commit bfab60e8 authored by Robert Schütz's avatar Robert Schütz Committed by GitHub
Browse files

Merge pull request #245953 from dotlambda/karma-buildNpmPackage

karma: use buildNpmPackage, 0.114 -> 0.115
parents 1ec83eb7 e75a8ae6
Loading
Loading
Loading
Loading
+23 −40
Original line number Diff line number Diff line
{ pkgs
, lib
{ lib
, stdenv
, buildGoModule
, callPackage
, fetchFromGitHub
, fetchNpmDeps
, nixosTests
, nodejs_18
, nodejs
, npmHooks
}:

let
  uiNodeDependencies = (import ./node-composition.nix {
    inherit pkgs;
    inherit (stdenv.hostPlatform) system;
    # pin nodejs version
    nodejs = nodejs_18;
   }).nodeDependencies;
in

buildGoModule rec {
  pname = "karma";
  version = "0.114";
  version = "0.115";

  src = fetchFromGitHub {
    owner = "prymitive";
    repo = "karma";
    rev = "v${version}";
    hash = "sha256-ZstBumK2ywwdr1ksMN7P8mHdYUiMOpfpYnvt0v0Io4w=";
    hash = "sha256-SW/nmJcSk/LmoKLuD5stsSaRGaJctl6hVSODNCT9i64=";
  };

  vendorHash = "sha256-Y55AaB8KRV+Tq/Trg1BOOwziyt+yJ2b3iVYA6bDebQY=";

  npmDeps = fetchNpmDeps {
    src = "${src}/ui";
    hash = "sha256-/L+eU0xwaopL2im9epiZiZ23dUqJ+3OwhWw/rIZC6hI=";
  };

  vendorHash = "sha256-ZsXPA4KyKbc/bwkidyHNDg62mE8KlE+yIssOBZLmHVg=";
  npmRoot = "ui";

  nativeBuildInputs = [
    nodejs_18
    nodejs
    npmHooks.npmConfigHook
  ];

  overrideModAttrs = oldAttrs: {
    nativeBuildInputs = lib.filter (drv: drv != npmHooks.npmConfigHook) oldAttrs.nativeBuildInputs;
  };

  postPatch = ''
    # Since we're using node2nix packages, the NODE_INSTALL hook isn't needed in the makefile
    sed -i \
@@ -43,32 +46,11 @@ buildGoModule rec {
  '';

  buildPhase = ''
    # node will fail without this
    export HOME=$(mktemp -d)

    # build requires a writable .cache directory, so we'll create a
    # temporary writable node_modules dir and link every package to it

    # simply linking the node_modules directory would increase the closure size for uiNodeDependencies to >700MB
    cp -r ${uiNodeDependencies}/lib/node_modules ./ui/
    chmod -R +w ./ui/node_modules
    mkdir -p ./ui/node_modules/.bin

    pushd ./ui/node_modules/.bin

    for x in ${uiNodeDependencies}/lib/node_modules/.bin/*; do
      ln -sfv ./$(readlink "$x") ./$(basename "$x")
    done

    popd

    mkdir -p ./ui/node_modules/.cache
    runHook preBuild

    # build package
    VERSION="v${version}" make -j$NIX_BUILD_CORES

    # clean up
    rm -rf ./ui/node_modules
    runHook postBuild
  '';

  installPhase = ''
@@ -78,6 +60,7 @@ buildGoModule rec {
  passthru.tests.karma = nixosTests.karma;

  meta = with lib; {
    changelog = "https://github.com/prymitive/karma/blob/${src.rev}/CHANGELOG.md";
    description = "Alert dashboard for Prometheus Alertmanager";
    homepage = "https://karma-dashboard.io/";
    license = licenses.asl20;
+0 −30
Original line number Diff line number Diff line
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p nodePackages.node2nix nodejs_18 gnused wget

# Usage: ./generate-dependencies.sh <version>
# Use the same version format as in ./default.nix (without the 'v')

set -eou pipefail

version=$1


echo "Karma version: $version"
cd "$(dirname $(readlink -f $0))"

wget -O ./package-lock.json https://raw.githubusercontent.com/prymitive/karma/v$version/ui/package-lock.json
wget -O ./package.json https://raw.githubusercontent.com/prymitive/karma/v$version/ui/package.json

sed -i -e 's/"name": "ui",/"name": "karma-ui",/g' ./package.json
sed -i -e 's/"name": "ui",/"name": "karma-ui",/g' ./package-lock.json

node2nix \
    --nodejs-18 \
    --development \
    -l ./package-lock.json \
    -i ./package.json \
    -o ./node-packages.nix \
    -c ./node-composition.nix \
    -e ./node-env.nix

rm package-lock.json
+0 −17
Original line number Diff line number Diff line
# This file has been generated by node2nix 1.11.1. Do not edit!

{pkgs ? import <nixpkgs> {
    inherit system;
  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_18"}:

let
  nodeEnv = import ./node-env.nix {
    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
    inherit pkgs nodejs;
    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
  };
in
import ./node-packages.nix {
  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
  inherit nodeEnv;
}
+0 −686

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −21059

File deleted.

Preview size limit exceeded, changes collapsed.

Loading