From 0f16f65d304189f88111cf965799444aef1b3468 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 5 Aug 2024 11:29:14 +0200 Subject: [PATCH] :wrench: Update script names and conditionally build storybook --- .circleci/config.yml | 17 +++++------ frontend/package.json | 30 +++++++++---------- frontend/scripts/build | 13 +++++--- .../{compile.js => build-app-assets.js} | 0 ...storybook.js => build-storybook-assets.js} | 0 5 files changed, 31 insertions(+), 29 deletions(-) rename frontend/scripts/{compile.js => build-app-assets.js} (100%) rename frontend/scripts/{compile-storybook.js => build-storybook-assets.js} (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9f87e4712..09cc658e4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,10 +22,10 @@ jobs: # Download and cache dependencies - restore_cache: - keys: - - v1-dependencies-{{ checksum "backend/deps.edn" }}-{{ checksum "frontend/deps.edn"}}-{{ checksum "common/deps.edn"}} - # fallback to using the latest cache if no exact match is found - - v1-dependencies- + keys: + - v1-dependencies-{{ checksum "backend/deps.edn" }}-{{ checksum "frontend/deps.edn"}}-{{ checksum "common/deps.edn"}} + # fallback to using the latest cache if no exact match is found + - v1-dependencies- - run: cd .clj-kondo && cat config.edn - run: cat .cljfmt.edn @@ -108,7 +108,7 @@ jobs: working_directory: "./frontend" command: | yarn install - yarn run compile + yarn run build:app:assets clojure -M:dev:shadow-cljs release main yarn playwright install --with-deps chromium yarn e2e:test @@ -126,7 +126,6 @@ jobs: PENPOT_TEST_REDIS_URI: "redis://localhost/1" - save_cache: - paths: - - ~/.m2 - key: v1-dependencies-{{ checksum "backend/deps.edn" }}-{{ checksum "frontend/deps.edn"}}-{{ checksum "common/deps.edn"}} - + paths: + - ~/.m2 + key: v1-dependencies-{{ checksum "backend/deps.edn" }}-{{ checksum "frontend/deps.edn"}}-{{ checksum "common/deps.edn"}} diff --git a/frontend/package.json b/frontend/package.json index 84c5df26c..7e816f8c0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,30 +17,28 @@ "@vitejs/plugin-react": "^4.2.0" }, "scripts": { - "fmt:clj:check": "cljfmt check --parallel=false src/ test/", + "build:app:assets": "node ./scripts/build-app-assets.js", + "build:storybook": "yarn run build:storybook:assets && yarn run build:storybook:cljs && storybook build", + "build:storybook:assets": "node ./scripts/build-storybook-assets.js", + "build:storybook:cljs": "clojure -M:dev:shadow-cljs release storybook", + "e2e:server": "node ./scripts/e2e-server.js", + "e2e:test": "playwright test --project default", "fmt:clj": "cljfmt fix --parallel=true src/ test/", - "fmt:js:check": "yarn run prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js", + "fmt:clj:check": "cljfmt check --parallel=false src/ test/", "fmt:js": "yarn run prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js -w", + "fmt:js:check": "yarn run prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js", + "lint:clj": "clj-kondo --parallel --lint src/", "lint:scss": "yarn run prettier -c resources/styles -c src/**/*.scss", "lint:scss:fix": "yarn run prettier -c resources/styles -c src/**/*.scss -w", - "lint:clj": "clj-kondo --parallel --lint src/", + "test": "yarn run test:compile && yarn run test:run", "test:compile": "clojure -M:dev:shadow-cljs compile test --config-merge '{:autorun false}'", "test:run": "node target/tests.cjs", "test:watch": "clojure -M:dev:shadow-cljs watch test", - "test": "yarn run test:compile && yarn run test:run", "translations": "node ./scripts/translations.js", - "translations:find-unused": "node ./scripts/find-unused-translations.js", - "compile": "node ./scripts/compile.js", - "compile:cljs": "clojure -M:dev:shadow-cljs compile main", - "compile:storybook": "node ./scripts/compile-storybook.js", - "watch": "node ./scripts/watch.js", - "watch:storybook": "node ./scripts/watch-storybook.js", - "e2e:server": "node ./scripts/e2e-server.js", - "e2e:test": "playwright test --project default", - "storybook:compile": "yarn run compile:storybook && clojure -M:dev:shadow-cljs release storybook", - "storybook:server": "yarn run storybook dev -p 6006 --no-open", - "storybook:watch": "concurrently \"clojure -M:dev:shadow-cljs watch storybook\" \"yarn run storybook:server\" \"yarn run watch:storybook\"", - "storybook:build": "yarn run storybook:compile && storybook build" + "watch": "yarn run watch:app:assets", + "watch:app:assets": "node ./scripts/watch.js", + "watch:storybook": "concurrently \"clojure -M:dev:shadow-cljs watch storybook\" \"storybook dev -p 6006 --no-open\" \"yarn run watch:storybook:assets\"", + "watch:storybook:assets": "node ./scripts/watch-storybook.js" }, "devDependencies": { "@playwright/test": "1.44.1", diff --git a/frontend/scripts/build b/frontend/scripts/build index 98ce7c06b..60d685fd2 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -4,6 +4,8 @@ set -ex +export INCLUDE_STORYBOOK=${BUILD_STORYBOOK:-no}; + export CURRENT_VERSION=$1; export BUILD_DATE=$(date -R); export CURRENT_HASH=${CURRENT_HASH:-$(git rev-parse --short HEAD)}; @@ -20,13 +22,16 @@ rm -rf target/dist; clojure -M:dev:shadow-cljs release main --config-merge "{:release-version \"${CURRENT_HASH}-${TS}\"}" $EXTRA_PARAMS || exit 1 -yarn run compile || exit 1; +yarn run build:app:assets || exit 1; + mkdir -p target/dist; rsync -avr resources/public/ target/dist/ sed -i -re "s/\%version\%/$CURRENT_VERSION/g" ./target/dist/index.html; sed -i -re "s/\%buildDate\%/$BUILD_DATE/g" ./target/dist/index.html; -# build storybook -yarn run storybook:build || exit 1; -rsync -avr storybook-static/ target/dist/storybook-static +if [ "$INCLUDE_STORYBOOK" = "yes"]; then + # build storybook + yarn run build:storybook || exit 1; + rsync -avr storybook-static/ target/dist/storybook-static; +fi diff --git a/frontend/scripts/compile.js b/frontend/scripts/build-app-assets.js similarity index 100% rename from frontend/scripts/compile.js rename to frontend/scripts/build-app-assets.js diff --git a/frontend/scripts/compile-storybook.js b/frontend/scripts/build-storybook-assets.js similarity index 100% rename from frontend/scripts/compile-storybook.js rename to frontend/scripts/build-storybook-assets.js