Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Read <eread@gitlab.com>2022-11-23 14:01:36 +0300
committerAchilleas Pipinellis <axil@gitlab.com>2022-11-23 14:01:36 +0300
commit65ef7ea35904397ef0aa8a1cf69b443b32c3e145 (patch)
treefc0485d82a32ddd6f09cc959bca84332c5c5d93f
parentf16d3590d93f434fd944f00d1d3572d1faee3737 (diff)
Skip compressing the site in review app pipelines for upstream projects
-rw-r--r--.gitlab/ci/build-and-deploy.gitlab-ci.yml73
-rw-r--r--.gitlab/ci/rules.gitlab-ci.yml19
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"'