diff options
Diffstat (limited to '.gitlab')
-rw-r--r-- | .gitlab/ci/build-and-deploy.gitlab-ci.yml | 73 | ||||
-rw-r--r-- | .gitlab/ci/rules.gitlab-ci.yml | 19 |
2 files changed, 61 insertions, 31 deletions
diff --git a/.gitlab/ci/build-and-deploy.gitlab-ci.yml b/.gitlab/ci/build-and-deploy.gitlab-ci.yml index 1cb64675..dc89fc96 100644 --- a/.gitlab/ci/build-and-deploy.gitlab-ci.yml +++ b/.gitlab/ci/build-and-deploy.gitlab-ci.yml @@ -7,6 +7,24 @@ extends: - .retry - .bundle_and_yarn + artifacts: + paths: + - public + expire_in: 1d + +# Common setup for review apps +.review-environment: + image: registry.gitlab.com/gitlab-org/gitlab-build-images:www-gitlab-com-debian-bullseye-ruby-3.0-node-16 + environment: + name: review/$CI_COMMIT_REF_SLUG$REVIEW_SLUG + url: https://$CI_COMMIT_REF_SLUG$REVIEW_SLUG.docs.gitlab-review.app + on_stop: review_stop + auto_stop_in: 30 days + +# +# The script lines for compiling and minifying the site +# +.compile-and-minify-scripts: script: - bundle exec rake default - bundle exec nanoc compile -VV @@ -15,36 +33,29 @@ # Build the Lunr.js search index if needed - if [[ "$ALGOLIA_SEARCH" == "false" ]]; then node scripts/lunr/preindex.js; fi # Calculate sizes before and after minifying/gzipping the static files (HTML, CSS, JS) - - SIZE_BEFORE=$(du -sh public/ | awk '{print $1}') + - SIZE_BEFORE_MINIFY=$(du -sh public/ | awk '{print $1}') # Minify the assets of the resulting site - cd public - ../scripts/minify-assets.sh ./ ./ - cd .. - SIZE_AFTER_MINIFY=$(du -sh public/ | awk '{print $1}') - # Use gzip to compress static content for faster web serving - # https://docs.gitlab.com/ee/user/project/pages/introduction.html#serving-compressed-assets - - find public/ -type f \( -iname "*.html" -o -iname "*.js" -o -iname "*.css" -o -iname "*.svg" -o -iname "*.json" \) -exec gzip --keep --best --force --verbose {} \; - - SIZE_AFTER_GZIP=$(du -sh public/ | awk '{print $1}') # Print size results - - echo "Minify and compress the static assets (HTML, CSS, JS)" - - echo - - echo -e "Size before minifying and gzipping ..... $SIZE_BEFORE\nSize after minifying ................... $SIZE_AFTER_MINIFY\nSize after adding gzipped versions ..... $SIZE_AFTER_GZIP" - artifacts: - paths: - - public - expire_in: 1d + - echo -e "Size before minifying ......... $SIZE_BEFORE_MINIFY\nSize after minifying ................... $SIZE_AFTER_MINIFY" -# Common setup for review apps -.review-environment: - image: registry.gitlab.com/gitlab-org/gitlab-build-images:www-gitlab-com-debian-bullseye-ruby-3.0-node-16 - environment: - name: review/$CI_COMMIT_REF_SLUG$REVIEW_SLUG - url: https://$CI_COMMIT_REF_SLUG$REVIEW_SLUG.docs.gitlab-review.app - on_stop: review_stop - auto_stop_in: 30 days +# +# The script lines for gzipping the site (not used in upstream review apps, to speed up pipelines) +# +.gzip-scripts: + script: + # Use gzip to compress static content for faster web serving. Keep uncompressed files for browsers that don't support + # compressed files: https://docs.gitlab.com/ee/user/project/pages/introduction.html#serving-compressed-assets + - find public/ -type f \( -iname "*.html" -o -iname "*.js" -o -iname "*.css" -o -iname "*.svg" -o -iname "*.json" \) -exec gzip --keep --best --force --verbose {} \; + - SIZE_AFTER_GZIP=$(du -sh public/ | awk '{print $1}') + # Print size results + - echo -e "Size after adding gzipped versions ..... $SIZE_AFTER_GZIP" # -# Compile only on the default and stable branches +# Compile "prod" only on the default and stable branches # compile_prod: extends: @@ -53,9 +64,12 @@ compile_prod: variables: ALGOLIA_SEARCH: 'true' NANOC_ENV: 'production' + script: + - !reference [".compile-and-minify-scripts", "script"] + - !reference [".gzip-scripts", "script"] # -# Compile on all branches except the default branch +# Compile "dev" for all MRs in `gitlab-docs` # compile_dev: extends: @@ -63,6 +77,21 @@ compile_dev: - .build_base variables: ALGOLIA_SEARCH: 'false' + script: + - !reference [".compile-and-minify-scripts", "script"] + - !reference [".gzip-scripts", "script"] + +# +# Compile but skip gzip step for review apps from upstream projects +# +compile_upstream_review_app: + extends: + - .rules_upstream_review_app + - .build_base + variables: + ALGOLIA_SEARCH: 'false' + script: + - !reference [".compile-and-minify-scripts", "script"] ############################################### # Review Apps # diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 09c9d5e9..02b1aa12 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -126,6 +126,16 @@ default: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - if: '$CI_COMMIT_BRANCH =~ /^\d{1,2}\.\d{1,2}$/' +.rules_dev: + rules: + - if: '$CI_MERGE_REQUEST_ID' + - if: '$CI_COMMIT_BRANCH =~ /docs-preview/' # TODO: Remove once no projects create such branch + - if: '$CI_PIPELINE_SOURCE == "schedule" && $CHORES_PIPELINE == "true"' + +.rules_upstream_review_app: + rules: + - if: '$CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "trigger"' + .rules_pages: rules: - if: $CHORES_PIPELINE == "true" || $CLEAN_REVIEW_APPS_DAYS @@ -134,12 +144,3 @@ default: - if: '$CI_PIPELINE_SOURCE == "pipeline"|| $CI_PIPELINE_SOURCE == "trigger"' when: never - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - -.rules_dev: - rules: - - if: '$CLEAN_REVIEW_APPS_DAYS' - when: never - - if: '$CI_MERGE_REQUEST_ID' - - if: '$CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "trigger"' - - if: '$CI_COMMIT_BRANCH =~ /docs-preview/' # TODO: Remove once no projects create such branch - - if: '$CI_PIPELINE_SOURCE == "schedule" && $CHORES_PIPELINE == "true"' |