Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use yarn cache on local and RA #279

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env.default
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ IMAGE_REDIS=redis:5-alpine
IMAGE_DRIVER=zenika/alpine-chrome
CLEAR_FRONT_PACKAGES=no
ADD_PHP_EXT=
YARN_CACHE_FOLDER=.cache/yarn
MAIN_DOMAIN_NAME=docker.localhost
DB_URL=sqlite:./../.cache/d8.sqlite
# Faster but data will be lost on php container recreation
Expand Down
18 changes: 10 additions & 8 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
variables:
GIT_DEPTH: "3"
THEME_PATH: "" # Update to enable front jobs (web/themes/custom/XXX)
YARN_CACHE_FOLDER: ".cache/yarn"
STORYBOOK_PATH: "" # Update to enable storybook job (themes/custom/XXX/dist/storybook/index.html)
GIT_STRATEGY: clone # Workaround until git is updated in runner, see https://gitlab.com/gitlab-org/gitlab-foss/issues/60466
REVIEW_DOMAIN: "XXX.XXX.com" # Mandatory, should equal to DNS of available runner server with docker + docker-compose + traefik
Expand All @@ -21,9 +22,18 @@ image: skilldlabs/php:73
- branches

.only_var_theme: &only_var_theme
cache:
key:
files:
# Until https://gitlab.com/gitlab-org/gitlab/issues/118466 lands ...
- web/themes/custom/XXX/package.json # ... this path has to be hardcoded
- web/themes/custom/XXX/yarn.lock # ... this path has to be hardcoded
paths:
- ${THEME_PATH}/${YARN_CACHE_FOLDER}/ # Populated during yarn install
only:
variables:
- $THEME_PATH
- $YARN_CACHE_FOLDER
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line should be removed imho, cause front jobs should be triggered only by theme defined, and nothing else (currently front job will try to run even if theme is not initialized yet, because YARN_CACHE_FOLDER is defined)


before_script:
- date
Expand Down Expand Up @@ -58,14 +68,6 @@ sniffers:front:
script:
- make front-install # Dependencies are required for js imports to pass linters
- make lintval
cache:
key:
files:
# Until https://gitlab.com/gitlab-org/gitlab/issues/118466 lands ...
- web/themes/custom/XXX/package.json # ... this path has to be hardcoded
- web/themes/custom/XXX/yarn.lock # ... this path has to be hardcoded
paths:
- ${THEME_PATH}/node_modules/ # Populated during yarn install
Copy link
Contributor

@davidferlay davidferlay Sep 3, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see reason to move this to "only_var_theme" anchor
Can you please explain motivation ?

artifacts:
name: "$CI_COMMIT_REF_NAME:$CI_COMMIT_SHA:front"
expire_in: 1d
Expand Down
4 changes: 4 additions & 0 deletions scripts/makefile/front.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FRONT_PORT?=65200
frontexec = docker run \
--rm \
--init \
--env YARN_CACHE_FOLDER=/app/$(YARN_CACHE_FOLDER) \
-u $(CUID):$(CGID) \
-v $(CURDIR)/web/themes/custom/$(THEME_NAME):/app \
--workdir /app \
Expand All @@ -13,6 +14,7 @@ frontexec = docker run \
frontexec-with-port = docker run \
--rm \
--init \
--env YARN_CACHE_FOLDER=/app/$(YARN_CACHE_FOLDER) \
-p $(FRONT_PORT):$(FRONT_PORT) \
-u $(CUID):$(CGID) \
-v $(CURDIR)/web/themes/custom/$(THEME_NAME):/app \
Expand All @@ -23,6 +25,7 @@ frontexec-with-port = docker run \
frontexec-with-interactive = docker run \
--rm \
--init \
--env YARN_CACHE_FOLDER=/app/$(YARN_CACHE_FOLDER) \
-u $(CUID):$(CGID) \
-v $(CURDIR)/web/themes/custom/$(THEME_NAME):/app \
--workdir /app \
Expand Down Expand Up @@ -53,6 +56,7 @@ front-build:
docker pull $(IMAGE_FRONT); \
$(call frontexec, node -v); \
$(call frontexec, yarn -v); \
$(call frontexec, yarn install --ignore-optional --check-files --prod); \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bad idea to keep it in the same dir as theme

$(call frontexec, yarn build --verbose); \
else \
echo "- Theme directory defined in .env file was not found. Skipping front-build."; \
Expand Down