nix flake update
on gentype
's new flake-utils
This commit is contained in:
parent
909ebbec94
commit
9a3f368044
22
flake.lock
22
flake.lock
|
@ -15,18 +15,34 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gentype": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1660002716,
|
||||
"narHash": "sha256-Ig7Dt7d33nNCNlqRGc45uEJTXLRmpCeHrYNOd1AdObc=",
|
||||
"lastModified": 1660628617,
|
||||
"narHash": "sha256-swFuey10pJV/TFcPv9pMf9xuXf/BDuJ1xzZ57jpfkrA=",
|
||||
"owner": "quinn-dougherty",
|
||||
"repo": "genType",
|
||||
"rev": "c7291db6465ac62800a49bacbe94ce4eb4abcbe0",
|
||||
"rev": "e4374399178976de0c4fc41f64dde913c3bed5dd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
146
flake.nix
146
flake.nix
|
@ -18,10 +18,91 @@
|
|||
};
|
||||
|
||||
outputs = { self, nixpkgs, gentype, hercules-ci-effects, flake-utils, ... }:
|
||||
flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
|
||||
let
|
||||
commonFn = pkgs: {
|
||||
buildInputs = with pkgs; [ nodejs yarn ];
|
||||
prettier = with pkgs.nodePackages; [ prettier ];
|
||||
which = [ pkgs.which ];
|
||||
};
|
||||
langFn = { pkgs, ... }:
|
||||
import ./nix/squiggle-lang.nix { inherit pkgs commonFn gentype; };
|
||||
componentsFn = { pkgs, ... }:
|
||||
import ./nix/squiggle-components.nix { inherit pkgs commonFn langFn; };
|
||||
websiteFn = { pkgs, ... }:
|
||||
import ./nix/squiggle-website.nix {
|
||||
inherit pkgs commonFn langFn componentsFn;
|
||||
};
|
||||
|
||||
# local machines
|
||||
localFlake = { pkgs }:
|
||||
let
|
||||
lang = langFn pkgs;
|
||||
components = componentsFn pkgs;
|
||||
website = websiteFn pkgs;
|
||||
in {
|
||||
# validating
|
||||
checks = flake-utils.lib.flattenTree {
|
||||
lang-lint = lang.lang-lint;
|
||||
lang-test = lang.lang-test;
|
||||
components-lint = components.components-lint;
|
||||
docusaurus-lint = website.website-lint;
|
||||
};
|
||||
# building
|
||||
packages = flake-utils.lib.flattenTree {
|
||||
default = website.website;
|
||||
lang-build = lang.lang-build;
|
||||
lang-bundle = lang.lang-bundle;
|
||||
components = components.components-package-build;
|
||||
storybook = components.components-site-build;
|
||||
docs-site = website.website;
|
||||
};
|
||||
|
||||
# developing
|
||||
devShells = flake-utils.lib.flattenTree {
|
||||
default = (import ./nix/shell.nix { inherit pkgs; }).shell;
|
||||
};
|
||||
};
|
||||
|
||||
# ci
|
||||
herc = let
|
||||
hciSystem = "x86_64-linux";
|
||||
hciPkgs = import nixpkgs { system = hciSystem; };
|
||||
effects = hercules-ci-effects.lib.withPkgs hciPkgs;
|
||||
local = localFlake {
|
||||
pkgs = hciPkgs;
|
||||
lang = langFn { pkgs = hciPkgs; };
|
||||
components = componentsFn { pkgs = hciPkgs; };
|
||||
website = websiteFn { pkgs = hciPkgs; };
|
||||
};
|
||||
in {
|
||||
# herc
|
||||
herculesCI = {
|
||||
ciSystems = [ hciSystem ];
|
||||
onPush = {
|
||||
lang.outputs = {
|
||||
squiggle-lang-lint = local.checks.${hciSystem}.lang-lint;
|
||||
squiggle-lang-test = local.checks.${hciSystem}.lang-test;
|
||||
# squiggle-lang-build = lang.lang-build;
|
||||
squiggle-lang-bundle = local.packages.${hciSystem}.lang-bundle;
|
||||
};
|
||||
components.outputs = {
|
||||
squiggle-components = local.packages.${hciSystem}.components;
|
||||
squiggle-components-lint =
|
||||
local.checks.${hciSystem}.components-lint;
|
||||
squiggle-components-storybook =
|
||||
local.packages.${hciSystem}.storybook;
|
||||
};
|
||||
docs-site.outputs = {
|
||||
squiggle-website = local.packages.${hciSystem}.docs-site;
|
||||
docusaurus-lint = local.checks.${hciSystem}.docusaurus-lint;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
in flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
|
||||
let
|
||||
# globals
|
||||
hciSystem = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
system = system;
|
||||
overlays = [
|
||||
|
@ -32,65 +113,6 @@
|
|||
})
|
||||
];
|
||||
};
|
||||
hciPkgs = import nixpkgs { system = hciSystem; };
|
||||
effects = hercules-ci-effects.lib.withPkgs hciPkgs;
|
||||
|
||||
common = {
|
||||
buildInputs = with pkgs; [ nodejs yarn ];
|
||||
prettier = with pkgs.nodePackages; [ prettier ];
|
||||
which = [ pkgs.which ];
|
||||
};
|
||||
lang = import ./nix/squiggle-lang.nix {
|
||||
inherit system pkgs common gentype;
|
||||
};
|
||||
components =
|
||||
import ./nix/squiggle-components.nix { inherit pkgs common lang; };
|
||||
website = import ./nix/squiggle-website.nix {
|
||||
inherit pkgs common lang components;
|
||||
};
|
||||
|
||||
in rec {
|
||||
|
||||
checks = flake-utils.lib.flattenTree {
|
||||
lang-lint = lang.lang-lint;
|
||||
lang-test = lang.lang-test;
|
||||
components-lint = components.components-lint;
|
||||
docusaurus-lint = website.website-lint;
|
||||
};
|
||||
packages = flake-utils.lib.flattenTree {
|
||||
default = website.website;
|
||||
lang-bundle = lang.lang-bundle;
|
||||
components = components.components-package-build;
|
||||
storybook = components.components-site-build;
|
||||
docs-site = website.website;
|
||||
};
|
||||
|
||||
# nix develop
|
||||
devShells = flake-utils.lib.flattenTree {
|
||||
default = (import ./nix/shell.nix { inherit pkgs; }).shell;
|
||||
};
|
||||
|
||||
# herc
|
||||
herculesCI = flake-utils.lib.flattenTree {
|
||||
ciSystems = [ hciSystem ];
|
||||
onPush = {
|
||||
lang.outputs = {
|
||||
squiggle-lang-lint = checks.${hciSystem}.lang-lint;
|
||||
squiggle-lang-test = checks.${hciSystem}.lang-test;
|
||||
squiggle-lang-build = lang.lang-build;
|
||||
squiggle-lang-bundle = packages.${hciSystem}.lang-bundle;
|
||||
};
|
||||
components.outputs = {
|
||||
squiggle-components = packages.${hciSystem}.components;
|
||||
squiggle-components-lint = checks.${hciSystem}.components-lint;
|
||||
squiggle-components-storybook = packages.${hciSystem}.storybook;
|
||||
};
|
||||
docs-site.outputs = {
|
||||
squiggle-website = packages.${hciSystem}.docs-site;
|
||||
docusaurus-lint = checks.${hciSystem}.docusaurus-lint;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
in (localFlake { inherit pkgs; } )) // herc;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ pkgs }:
|
||||
with pkgs;
|
||||
{
|
||||
shell = pkgs.mkShell {
|
||||
shell = mkShell {
|
||||
name = "SQUIGGLE_yarn-wasm-devshell";
|
||||
buildInputs =
|
||||
[ wasm-pack cargo yarn nodejs rustup pkg-config openssl nixfmt ];
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
{ pkgs, common, lang }:
|
||||
{ pkgs, commonFn, langFn }:
|
||||
|
||||
rec {
|
||||
common = commonFn pkgs;
|
||||
lang = langFn pkgs;
|
||||
componentsPackageJson = let
|
||||
raw = pkgs.lib.importJSON ./packages/components/package.json;
|
||||
raw = pkgs.lib.importJSON ../packages/components/package.json;
|
||||
modified =
|
||||
pkgs.lib.recursiveUpdate raw { dependencies.react-dom = "^18.2.0"; };
|
||||
packageJsonString = builtins.toJSON modified;
|
||||
|
@ -11,9 +13,9 @@ rec {
|
|||
components-yarnPackage = pkgs.mkYarnPackage {
|
||||
name = "squiggle-components_source";
|
||||
buildInputs = common.buildInputs;
|
||||
src = ./packages/components;
|
||||
src = ../packages/components;
|
||||
packageJSON = componentsPackageJson;
|
||||
yarnLock = ./yarn.lock;
|
||||
yarnLock = ../yarn.lock;
|
||||
packageResolutions."@quri/squiggle-lang" = lang.lang-build;
|
||||
};
|
||||
components-lint = pkgs.stdenv.mkDerivation {
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
{ system, pkgs, common, gentype }:
|
||||
{ pkgs, commonFn, gentype }:
|
||||
|
||||
rec {
|
||||
common = commonFn pkgs;
|
||||
# packages in subrepos
|
||||
lang-yarnPackage = pkgs.mkYarnPackage {
|
||||
name = "squiggle-lang_source";
|
||||
src = ./packages/squiggle-lang;
|
||||
packageJSON = ./packages/squiggle-lang/package.json;
|
||||
yarnLock = ./yarn.lock;
|
||||
src = ../packages/squiggle-lang;
|
||||
packageJSON = ../packages/squiggle-lang/package.json;
|
||||
yarnLock = ../yarn.lock;
|
||||
# extraBuildInputs = prettierCommon;
|
||||
pkgConfig = {
|
||||
rescript = {
|
||||
|
@ -36,7 +37,7 @@ rec {
|
|||
postInstall = ''
|
||||
mv gentype.exe ELFLESS-gentype.exe
|
||||
cp ${
|
||||
gentype.outputs.defaultPackage."${system}"
|
||||
gentype.outputs.defaultPackage."${pkgs.system}"
|
||||
}/GenType.exe gentype.exe
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
{ pkgs, common, lang, components }:
|
||||
{ pkgs, commonFn, langFn, componentsFn }:
|
||||
|
||||
rec {
|
||||
common = commonFn pkgs;
|
||||
lang = langFn pkgs;
|
||||
components = componentsFn pkgs;
|
||||
websitePackageJson = let
|
||||
raw = pkgs.lib.importJSON ./packages/website/package.json;
|
||||
raw = pkgs.lib.importJSON ../packages/website/package.json;
|
||||
modified = pkgs.lib.recursiveUpdate raw {
|
||||
dependencies.postcss-import = "^14.1.0";
|
||||
dependencies.tailwindcss = "^3.1.8";
|
||||
|
@ -11,9 +14,9 @@ rec {
|
|||
in pkgs.writeText "packages/website/patched-package.json" packageJsonString;
|
||||
website-yarnPackage = pkgs.mkYarnPackage {
|
||||
name = "squiggle-website_source";
|
||||
src = ./packages/website;
|
||||
src = ../packages/website;
|
||||
packageJSON = websitePackageJson;
|
||||
yarnLock = ./yarn.lock;
|
||||
yarnLock = ../yarn.lock;
|
||||
packageResolutions."@quri/squiggle-lang" = lang.lang-build;
|
||||
packageResolutions."@quri/squiggle-components" =
|
||||
components.components-package-build;
|
||||
|
|
Loading…
Reference in New Issue
Block a user