Skip to content

Commit 988cc25

Browse files
authored
♻️ Maintenance: improve production build times (ITISFoundation#3367)
1 parent 6df7211 commit 988cc25

File tree

432 files changed

+81
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

432 files changed

+81
-91
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Makefile @pcrespov @sanderegg
3232
/services/migration/ @pcrespov
3333
/services/static-webserver @GitHK
3434
/services/storage/ @mguidon @pcrespov
35-
/services/web/client/ @odeimaiz
35+
/services/static-webserver/client/ @odeimaiz
3636
/services/web/server/ @pcrespov @sanderegg @GitHK
3737
/tests/environment-setup/ @pcrespov
3838
/tests/performance/ @pcrespov

Makefile

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ SERVICES_LIST := \
4141
storage \
4242
webserver
4343

44-
CLIENT_WEB_OUTPUT := $(CURDIR)/services/web/client/source-output
44+
CLIENT_WEB_OUTPUT := $(CURDIR)/services/static-webserver/client/source-output
4545

4646
# version control
4747
export VCS_URL := $(shell git config --get remote.origin.url)
4848
export VCS_REF := $(shell git rev-parse --short HEAD)
49-
export VCS_REF_CLIENT := $(shell git log --pretty=tformat:"%h" -n1 services/web/client)
49+
export VCS_REF_CLIENT := $(shell git log --pretty=tformat:"%h" -n1 services/static-webserver/client)
5050
export VCS_STATUS_CLIENT:= $(if $(shell git status -s),'modified/untracked','clean')
5151
export BUILD_DATE := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
5252

@@ -131,20 +131,8 @@ endef
131131

132132
rebuild: build-nc # alias
133133
build build-nc: .env ## Builds production images and tags them as 'local/{service-name}:production'. For single target e.g. 'make target=webserver build'
134-
ifeq ($(target),)
135-
# Compiling front-end
136-
$(MAKE_C) services/web/client compile
137-
138-
# Building services
134+
# Building service$(if $(target),,s) $(target)
139135
$(_docker_compose_build)
140-
else
141-
ifeq ($(findstring static-webserver,$(target)),static-webserver)
142-
# Compiling front-end
143-
$(MAKE_C) services/web/client clean compile
144-
endif
145-
# Building service $(target)
146-
$(_docker_compose_build)
147-
endif
148136

149137

150138
build-devel build-devel-nc: .env ## Builds development images and tags them as 'local/{service-name}:development'. For single target e.g. 'make target=webserver build-devel'
@@ -154,7 +142,7 @@ ifeq ($(target),)
154142
else
155143
ifeq ($(findstring static-webserver,$(target)),static-webserver)
156144
# Compiling front-end
157-
$(MAKE_C) services/web/client touch compile-dev
145+
$(MAKE_C) services/static-webserver/client touch compile-dev
158146
endif
159147
# Building service $(target)
160148
@$(_docker_compose_build)
@@ -256,12 +244,12 @@ show-endpoints:
256244

257245
up-devel: .stack-simcore-development.yml .init-swarm $(CLIENT_WEB_OUTPUT) ## Deploys local development stack, qx-compile+watch and ops stack (pass 'make ops_disabled=1 up-...' to disable)
258246
# Start compile+watch front-end container [front-end]
259-
@$(MAKE_C) services/web/client down compile-dev flags=--watch
247+
@$(MAKE_C) services/static-webserver/client down compile-dev flags=--watch
260248
# Deploy stack $(SWARM_STACK_NAME) [back-end]
261249
@docker stack deploy --with-registry-auth -c $< $(SWARM_STACK_NAME)
262250
@$(MAKE) .deploy-ops
263251
@$(_show_endpoints)
264-
@$(MAKE_C) services/web/client follow-dev-logs
252+
@$(MAKE_C) services/static-webserver/client follow-dev-logs
265253

266254

267255
up-prod: .stack-simcore-production.yml .init-swarm ## Deploys local production stack and ops stack (pass 'make ops_disabled=1 up-...' to disable or target=<service-name> to deploy a single service)
@@ -294,7 +282,7 @@ down: ## Stops and removes stack
294282
$(shell docker stack ls --format={{.Name}} | tac),\
295283
docker stack rm $(stack);)
296284
# Removing client containers (if any)
297-
-@$(MAKE_C) services/web/client down
285+
-@$(MAKE_C) services/static-webserver/client down
298286
# Removing generated docker compose configurations, i.e. .stack-*
299287
-@rm $(wildcard .stack-*)
300288
# Removing local registry if any
@@ -380,7 +368,7 @@ devenv: .venv ## create a python virtual environment with dev tools (e.g. linter
380368

381369
devenv-all: devenv ## sets up extra development tools (everything else besides python)
382370
# Upgrading client compiler
383-
@$(MAKE_C) services/web/client upgrade
371+
@$(MAKE_C) services/static-webserver/client upgrade
384372
# Building tools
385373
@$(MAKE_C) scripts/json-schema-to-openapi-schema
386374

@@ -577,7 +565,7 @@ ifeq ($(target),)
577565
$(call show-meta,$(service))\
578566
)
579567
## Client images:
580-
@$(MAKE_C) services/web/client info
568+
@$(MAKE_C) services/static-webserver/client info
581569
else
582570
## $(target) images:
583571
@$(call show-meta,$(target))
@@ -622,8 +610,8 @@ clean-hooks: ## Uninstalls git pre-commit hooks
622610
clean: .check-clean ## cleans all unversioned files in project and temp files create by this makefile
623611
# Cleaning unversioned
624612
@git clean $(_git_clean_args)
625-
# Cleaning web/client
626-
@$(MAKE_C) services/web/client clean-files
613+
# Cleaning static-webserver/client
614+
@$(MAKE_C) services/static-webserver/client clean-files
627615

628616
clean-more: ## cleans containers and unused volumes
629617
# stops and deletes running containers
@@ -636,7 +624,7 @@ clean-images: ## removes all created images
636624
-$(foreach service,$(SERVICES_LIST)\
637625
,docker image rm --force $(shell docker images */$(service):* -q);)
638626
# Cleaning webclient
639-
@$(MAKE_C) services/web/client clean-images
627+
@$(MAKE_C) services/static-webserver/client clean-images
640628
# Cleaning postgres maintenance
641629
@$(MAKE_C) packages/postgres-database/docker clean
642630

ci/github/unit-testing/frontend.bash

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ IFS=$'\n\t'
77

88
install() {
99
npm install
10-
make -C services/web/client clean
10+
make -C services/static-webserver/client clean
1111
npx eslint --version
12-
make -C services/web/client info
12+
make -C services/static-webserver/client info
1313
}
1414

1515
test() {
1616
echo "# Running Linter"
1717
npm run linter
1818

19-
pushd services/web/client
19+
pushd services/static-webserver/client
2020

2121
echo "# Building build version"
2222
make compile
@@ -56,9 +56,9 @@ test() {
5656
# cp -rp docs/webdocroot/* itisfoundation.github.io
5757

5858
# # add our build
59-
# if [ -d services/web/client/build-output ]; then
59+
# if [ -d services/static-webserver/client/build-output ]; then
6060
# rm -rf itisfoundation.github.io/frontend
61-
# cp -rp services/web/client/build-output itisfoundation.github.io/frontend
61+
# cp -rp services/static-webserver/client/build-output itisfoundation.github.io/frontend
6262
# fi
6363
}
6464

docs/img/service-interaction.svg

Lines changed: 1 addition & 1 deletion

docs/img/service-web.svg

Lines changed: 1 addition & 1 deletion

packages/postgres-database/tests/test_classifiers.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import json
77
from pathlib import Path
8-
from typing import Dict
98

109
import psycopg2.errors
1110
import pytest
@@ -20,21 +19,26 @@
2019
@pytest.fixture
2120
def web_client_resource_folder(osparc_simcore_root_dir: Path) -> Path:
2221
wcrf_path = (
23-
osparc_simcore_root_dir / "services" / "web" / "client" / "source" / "resource"
22+
osparc_simcore_root_dir
23+
/ "services"
24+
/ "static-webserver"
25+
/ "client"
26+
/ "source"
27+
/ "resource"
2428
)
2529
assert wcrf_path.exists()
2630
return wcrf_path
2731

2832

2933
@pytest.fixture
30-
def classifiers_bundle(web_client_resource_folder: Path) -> Dict:
34+
def classifiers_bundle(web_client_resource_folder: Path) -> dict:
3135
bundle_path = web_client_resource_folder / "dev" / "classifiers.json"
3236
assert bundle_path.exists()
3337
return json.loads(bundle_path.read_text())
3438

3539

3640
async def test_operations_on_group_classifiers(
37-
pg_engine: Engine, classifiers_bundle: Dict
41+
pg_engine: Engine, classifiers_bundle: dict
3842
):
3943
# NOTE: mostly for TDD
4044
async with pg_engine.acquire() as conn:
@@ -85,6 +89,8 @@ async def test_operations_on_group_classifiers(
8589
assert (
8690
groups_count == 1
8791
), "There should be only the Everyone group in the database!"
92+
assert isinstance(classifiers_count, int)
93+
assert isinstance(groups_count, int)
8894
assert classifiers_count <= groups_count
8995
assert classifiers_count == 0
9096

packages/pytest-simcore/src/pytest_simcore/repository_paths.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def osparc_simcore_scripts_dir(osparc_simcore_root_dir: Path) -> Path:
5757

5858
@pytest.fixture(scope="session")
5959
def osparc_simcore_web_client_dir(services_dir: Path) -> Path:
60-
wbc_dir = services_dir / "web/client"
60+
wbc_dir = services_dir / "static-webserver/client"
6161
assert wbc_dir.exists()
6262
return wbc_dir
6363

services/docker-compose-build.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,14 @@ services:
137137
static-webserver:
138138
image: local/static-webserver:${BUILD_TARGET:?build_target_required}
139139
build:
140-
context: ../
141-
dockerfile: services/static-webserver/Dockerfile
140+
context: ./static-webserver/client
141+
dockerfile: tools/qooxdoo-kit/builder/Dockerfile
142+
args:
143+
- tag=latest
144+
- VCS_REF=${VCS_REF}
145+
- VCS_REF_CLIENT=${VCS_REF_CLIENT}
146+
- VCS_STATUS_CLIENT=${VCS_STATUS_CLIENT}
147+
- VCS_URL=${VCS_URL}
142148
cache_from:
143149
- local/static-webserver:${BUILD_TARGET:?build_target_required}
144150
- ${DOCKER_REGISTRY:-itisfoundation}/static-webserver:master-github-latest

services/docker-compose-ops.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# Nonetheless, notice that minio is a service used from simcore stack. Therefore, disabling ops stack
1616
# is meaningful ONLY when simcore stack is intended to run with the the actual stacks from osparc-ops
1717
#
18-
# NOTE: this stack cannot be called tools because it collides with default network created in services/web/client/tools/docker-compose.yml
18+
# NOTE: this stack cannot be called tools because it collides with default network created in services/static-webserver/client/tools/docker-compose.yml
1919
# IMPORTANT: This stack IS NOT used in the deployed version
2020
version: "3.8"
2121

services/docker-compose.devel.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,14 @@ services:
6363

6464
static-webserver:
6565
volumes:
66-
- ./web/client/source-output:/static-content
66+
- ./static-webserver/client/source-output:/static-content
6767
environment:
6868
- SERVER_LOG_LEVEL=info
6969

7070
webserver:
7171
volumes:
7272
&webserver-volumes-dev
7373
- ./web/server:/devel/services/web/server
74-
- ./web/client/source-output:/devel/services/web/client
7574
- ../packages:/devel/packages
7675
environment:
7776
&webserver-environment-dev

0 commit comments

Comments
 (0)