All checks were successful
Build and Publish / build-release (push) Successful in 42s
77 lines
1.9 KiB
Nix
77 lines
1.9 KiB
Nix
{
|
|
description = "Policy UI - Nuxt.js application";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils, ... }:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
nodePkgs = pkgs.nodePackages;
|
|
pname = "policy-ui";
|
|
version = "1.0.0";
|
|
src = ./.;
|
|
in
|
|
{
|
|
packages.policy-ui = pkgs.stdenv.mkDerivation {
|
|
inherit pname version src;
|
|
|
|
nativeBuildInputs = [
|
|
pkgs.pnpm
|
|
pkgs.pnpmConfigHook
|
|
pkgs.nodejs
|
|
];
|
|
|
|
pnpmDeps = pkgs.fetchPnpmDeps {
|
|
inherit pname version src;
|
|
pnpm = pkgs.pnpm;
|
|
fetcherVersion = 3;
|
|
hash = "sha256-QjmYXOv8JliJhN+5XfA1+OnBIf4I/6s84LSisJlBdTo=";
|
|
};
|
|
|
|
env.NUXT_TELEMETRY_DISABLED = 1;
|
|
|
|
buildPhase = ''
|
|
pnpm build
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -r .output/* $out
|
|
'';
|
|
};
|
|
|
|
packages.dockerImage = pkgs.dockerTools.buildLayeredImage {
|
|
name = "policy-ui";
|
|
contents = [
|
|
pkgs.nodejs
|
|
pkgs.dockerTools.caCertificates
|
|
self.packages.${system}.policy-ui
|
|
];
|
|
config = {
|
|
Cmd = [ "node" "/server/index.mjs" ];
|
|
Env = [
|
|
"NODE_ENV=production"
|
|
"PORT=3000"
|
|
"HOST=0.0.0.0"
|
|
"NUXT_TELEMETRY_DISABLED=1"
|
|
];
|
|
};
|
|
};
|
|
packages.default = self.packages.${system}.policy-ui;
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
nodejs
|
|
pnpm
|
|
kubernetes-helm
|
|
];
|
|
};
|
|
});
|
|
}
|
|
|
|
|