fix(ui): disable storybook devshell and package on Darwin

This commit is contained in:
Brian McGee
2025-05-29 10:46:02 +01:00
parent 807b9fd61f
commit 543cfd4fc6
2 changed files with 80 additions and 66 deletions

View File

@@ -1,15 +1,34 @@
{
perSystem =
{
lib,
self',
pkgs,
config,
...
}:
{
packages = {
webview-lib = pkgs.callPackage ./webview-lib { };
};
packages =
{
webview-lib = pkgs.callPackage ./webview-lib { };
clan-app = pkgs.callPackage ./default.nix {
inherit (config.packages) clan-cli clan-app-ui webview-lib;
pythonRuntime = pkgs.python3;
};
fonts = pkgs.callPackage ./fonts.nix { };
clan-app-ui = pkgs.callPackage ./ui.nix {
clan-ts-api = config.packages.clan-ts-api;
fonts = config.packages.fonts;
};
}
//
# todo add darwin support
(lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
clan-app-ui-storybook = self'.packages.clan-app-ui.storybook;
});
devShells.clan-app = pkgs.callPackage ./shell.nix {
inherit self';
@@ -17,20 +36,6 @@
inherit (config.packages) clan-ts-api;
};
packages.clan-app = pkgs.callPackage ./default.nix {
inherit (config.packages) clan-cli clan-app-ui webview-lib;
pythonRuntime = pkgs.python3;
};
packages.fonts = pkgs.callPackage ./fonts.nix { };
packages.clan-app-ui = pkgs.callPackage ./ui.nix {
clan-ts-api = config.packages.clan-ts-api;
fonts = config.packages.fonts;
};
packages.clan-app-ui-storybook = self'.packages.clan-app-ui.storybook;
checks = config.packages.clan-app.tests;
};
}

View File

@@ -1,4 +1,6 @@
{
lib,
stdenv,
clan-app,
mkShell,
ruff,
@@ -25,12 +27,15 @@ mkShell {
clan-app-ui
];
packages = [
# required for reload-python-api.sh script
json2ts
# for viewing the storybook in a webkit-based browser to match webview
luakit
];
packages =
[
# required for reload-python-api.sh script
json2ts
]
++ (lib.optionals stdenv.hostPlatform.isLinux [
# for viewing the storybook in a webkit-based browser to match webview
luakit
]);
inherit (clan-app) propagatedBuildInputs;
@@ -51,55 +56,59 @@ mkShell {
ruff
] ++ clan-app.runtimeDeps;
shellHook = ''
export CLAN_CORE_PATH=$(git rev-parse --show-toplevel)
shellHook =
''
export CLAN_CORE_PATH=$(git rev-parse --show-toplevel)
## Clan app
pushd "$CLAN_CORE_PATH/pkgs/clan-app"
## Clan app
pushd "$CLAN_CORE_PATH/pkgs/clan-app"
# Add clan-app command to PATH
export PATH="$(pwd)/bin":"$PATH"
# Add clan-app command to PATH
export PATH="$(pwd)/bin":"$PATH"
# Add current package to PYTHONPATH
export PYTHONPATH="$(pwd)''${PYTHONPATH:+:$PYTHONPATH:}"
popd
# Add current package to PYTHONPATH
export PYTHONPATH="$(pwd)''${PYTHONPATH:+:$PYTHONPATH:}"
popd
# Add clan-cli to the python path so that we can import it without building it in nix first
export PYTHONPATH="$CLAN_CORE_PATH/pkgs/clan-cli":"$PYTHONPATH"
# Add clan-cli to the python path so that we can import it without building it in nix first
export PYTHONPATH="$CLAN_CORE_PATH/pkgs/clan-cli":"$PYTHONPATH"
export XDG_DATA_DIRS=$GSETTINGS_SCHEMAS_PATH:$XDG_DATA_DIRS
export WEBVIEW_LIB_DIR=${webview-lib}/lib
export XDG_DATA_DIRS=$GSETTINGS_SCHEMAS_PATH:$XDG_DATA_DIRS
export WEBVIEW_LIB_DIR=${webview-lib}/lib
## Webview UI
# Add clan-app-ui scripts to PATH
pushd "$CLAN_CORE_PATH/pkgs/clan-app/ui"
export NODE_PATH="$(pwd)/node_modules"
export PATH="$NODE_PATH/.bin:$(pwd)/bin:$PATH"
cp -r ${self'.packages.fonts} .fonts
chmod -R +w .fonts
mkdir -p api
cp -r ${clan-ts-api}/* api
chmod -R +w api
popd
## Webview UI
# Add clan-app-ui scripts to PATH
pushd "$CLAN_CORE_PATH/pkgs/clan-app/ui"
export NODE_PATH="$(pwd)/node_modules"
export PATH="$NODE_PATH/.bin:$(pwd)/bin:$PATH"
cp -r ${self'.packages.fonts} .fonts
chmod -R +w .fonts
mkdir -p api
cp -r ${clan-ts-api}/* api
chmod -R +w api
popd
# configure playwright for storybook snapshot testing
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export PLAYWRIGHT_BROWSERS_PATH=${
playwright-driver.browsers.override {
withFfmpeg = false;
withFirefox = false;
withChromium = false;
withChromiumHeadlessShell = true;
}
}
export PLAYWRIGHT_HOST_PLATFORM_OVERRIDE="ubuntu-24.04"
# configure process-compose
if test -f "$GIT_ROOT/pkgs/clan-app/.local.env"; then
source "$GIT_ROOT/pkgs/clan-app/.local.env"
fi
export PC_CONFIG_FILES="$CLAN_CORE_PATH/pkgs/clan-app/process-compose.yaml"
# configure process-compose
if test -f "$GIT_ROOT/pkgs/clan-app/.local.env"; then
source "$GIT_ROOT/pkgs/clan-app/.local.env"
fi
export PC_CONFIG_FILES="$CLAN_CORE_PATH/pkgs/clan-app/process-compose.yaml"
echo -e "${GREEN}To launch a qemu VM for testing, run:\n start-vm <number of VMs>${NC}"
'';
echo -e "${GREEN}To launch a qemu VM for testing, run:\n start-vm <number of VMs>${NC}"
''
+
# todo darwin support needs some work
(lib.optionalString stdenv.hostPlatform.isLinux ''
# configure playwright for storybook snapshot testing
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export PLAYWRIGHT_BROWSERS_PATH=${
playwright-driver.browsers.override {
withFfmpeg = false;
withFirefox = false;
withChromium = false;
withChromiumHeadlessShell = true;
}
}
export PLAYWRIGHT_HOST_PLATFORM_OVERRIDE="ubuntu-24.04"
'');
}