diff --git a/includes/before-script-yarn.yml b/includes/before-script-yarn.yml new file mode 100644 index 0000000000000000000000000000000000000000..fb444094d17b54f1167226ba728d24985709d6a1 --- /dev/null +++ b/includes/before-script-yarn.yml @@ -0,0 +1,6 @@ +.before-script-yarn: + extends: .cache-node-modules + before_script: + - cd $APP_PATH + - if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi + - yarn install --frozen-lockfile diff --git a/includes/cache.yml b/includes/cache.yml index d3ad9f00f9be44ea78ab71d89028a964db5a6cf9..8763e314e4f2bb18b699ff138de8c9bd7da6fad7 100644 --- a/includes/cache.yml +++ b/includes/cache.yml @@ -1,10 +1,23 @@ .cache-node-modules: cache: key: node-modules - # unfortunatly CACHE_FALLBACK_KEY is broken https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27293 - #key: "$CI_COMMIT_REF_SLUG" # we have a fallback configured using CACHE_FALLBACK_KEY policy: pull-push paths: - "$APP_DIR/node_modules/" - - "$APP_DIR/.next/cache/" - - "$CACHE_FOLDER" + +.cache-app-build-node-next: + cache: + - !reference [.cache-node-modules, cache] + - key: next-cache + policy: pull-push + paths: + - "$APP_DIR/.next/cache/" + +# can be used for cypress verify steps +.cache-verify-cypress: + cache: + - !reference [.cache-node-modules, cache] + - key: cypress + policy: pull-push + paths: + - "$CYPRESS_CACHE_FOLDER" diff --git a/includes/docker-build.yml b/includes/docker-build.yml index 9c37c4768114deff0c7c7d2dde3615a11c64b965..e21d7f1cdc2fc7a0645aa79fa9f3fd5ab7abf15b 100644 --- a/includes/docker-build.yml +++ b/includes/docker-build.yml @@ -62,17 +62,13 @@ .storybook-build: extends: - .rules-stoybook - - .cache-node-modules - cache: - policy: pull + - .before-script-yarn stage: build needs: ["setup-build-info"] # don't do it after the semantic release commit, but do it after tag script: - cd $APP_PATH - - if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi - - yarn install --frozen-lockfile - yarn build-storybook -c .storybook -s public -o .storybook-out --quiet artifacts: paths: diff --git a/node-kubernetes.yml b/node-kubernetes.yml index 4f733f505078f424136403175b7826e724940774..27bfcb72bde91ead4f2ee4843e09b070c526eac7 100644 --- a/node-kubernetes.yml +++ b/node-kubernetes.yml @@ -45,13 +45,6 @@ docker-build: - *ensureDocker - ensureDockerfile -.before-script-yarn: - extends: .cache-node-modules - before_script: - - cd $APP_PATH - - if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi - - yarn install --frozen-lockfile - .test-node: stage: test @@ -95,6 +88,7 @@ lint: extends: - .before-script-yarn - .app-build-base + - .cache-app-build-node-next script: - yarn build @@ -106,3 +100,19 @@ lint: app-build: extends: .app-build-node + +# can be used optionaly +.verify-cypress-base: + image: cypress/browsers:node14.16.0-chrome89-ff86 + extends: + - .before-script-yarn + - .cache-verify-cypress + script: + - yarn cypress install + - CYPRESS_BASE_URL=$CI_ENVIRONMENT_URL yarn cypress:run --browser chrome --headless --record --key $CYPRESS_KEY + artifacts: + when: always + paths: + - cypress/videos/**/*.mp4 + - cypress/screenshots/**/*.png + expire_in: 5 day diff --git a/panter-kubernetes-base.yml b/panter-kubernetes-base.yml index 115c6144f552738b2564cac00e705b7776fe0476..7e957914a25a9e1ab2ee76cb99a562cdb9009799 100644 --- a/panter-kubernetes-base.yml +++ b/panter-kubernetes-base.yml @@ -1,4 +1,5 @@ include: + - /includes/before-script-yarn.yml - /includes/env.yml - /includes/retry.yml - /includes/cache.yml @@ -41,7 +42,6 @@ variables: # APP NAME LOCAL TO THE APP NAMESPACEGIT S KUBE_APP_NAME: ${COMPONENT_NAME} - CACHE_FOLDER: "$CI_PROJECT_DIR/.cache" # see https://on.cypress.io/caching CYPRESS_CACHE_FOLDER: "$CI_PROJECT_DIR/.cache/Cypress"