Skip to content
This repository has been archived by the owner on Nov 26, 2023. It is now read-only.

Commit

Permalink
nix build
Browse files Browse the repository at this point in the history
  • Loading branch information
icewind1991 committed Jun 7, 2023
1 parent e06ee3d commit 9f72028
Show file tree
Hide file tree
Showing 8 changed files with 7,637 additions and 12,527 deletions.
19 changes: 0 additions & 19 deletions .github/workflows/build.yml

This file was deleted.

16 changes: 16 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
on: [ push, pull_request ]

name: CI

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: icewind1991/attic-action@v1
with:
name: ci
instance: https://cache.icewind.me
authToken: '${{ secrets.ATTIC_TOKEN }}'
- run: nix build
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ build
*.cache
Dockerfile
.direnv
result
61 changes: 36 additions & 25 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,54 +24,65 @@
inherit system overlays;
};
npmLd = pkgs.writeShellScriptBin "npm" ''
PATH="$PATH ${pkgs.nodejs-16_x}/bin" LD=$CC ${pkgs.nodejs-16_x}/bin/npm $@
PATH="$PATH ${pkgs.nodejs_20}/bin" LD=$CC ${pkgs.nodejs_20}/bin/npm $@
'';
nodeLd = pkgs.writeShellScriptBin "node" ''
LD=$CC ${pkgs.nodejs-16_x}/bin/node $@
LD=$CC ${pkgs.nodejs_20}/bin/node $@
'';
lib = pkgs.lib;
src = lib.sources.sourceByRegex (lib.cleanSource ./.) ["package.*" "src(/.*)?" "tsconfig.json" ".*.config.js"];
in rec {
packages = {
leveloverview = pkgs.stdenv.mkDerivation rec {
name = "demos-tf-leveloverview";
version = "0.1.0";

src = ./src/images/leveloverview;
buildImages = name: src: installPhase: pkgs.stdenv.mkDerivation {
name = "demos-tf-${name}";
version = "0.1.0";

nativeBuildInputs = with pkgs; [xcftools];
buildPhase = with pkgs; ''
cp -r ${node_modules}/node_modules ./node_modules
npm run build
'';
inherit src installPhase;

installPhase = ''
cp -r dist $out
'';
};
nativeBuildInputs = with pkgs; [xcftools imagemagick];
buildPhase = with pkgs; ''
make
'';
};
nodeSource = nodejs: pkgs.runCommand "node-sources-${nodejs.version}"
{ } ''
tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
mv node-* $out
'';
in rec {
packages = rec {
level-overview = buildImages "level-overview" ./src/images/leveloverview ''
cp -r dist $out
'';
class-portraits = buildImages "class-portraits" ./src/images/class_portraits ''
mkdir $out
cp *.jpg *.png *.webp $out/
'';
demos-tf = pkgs.npmlock2nix.v2.build {
inherit src;
installPhase = "cp -r build $out";
buildCommands = [
"cd "
"cp -T -r ${level-overview} src/images/leveloverview/dist"
"cp -T -r ${class-portraits} src/images/class_portraits"
"npm run build"
];
node_modules_attrs = {
buildInputs = with pkgs; [ vips ];
nativeBuildInputs = with pkgs; [ pkg-config python3 ];
postBuild = ''
npm rebuild sharp --nodedir=${nodeSource pkgs.nodejs_20}
'';
};
nodejs = pkgs.nodejs_20;
};
default = demos-tf;
};
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [
autoconf
automake
libtool
pkg-config
nasm
zlib
python3
vips
npmLd
nodeLd
xcftools
nodejs_20
];
};
});
Expand Down
Loading

0 comments on commit 9f72028

Please sign in to comment.