diff options
author | David O'Regan <doregan@gitlab.com> | 2022-10-20 01:26:44 +0300 |
---|---|---|
committer | David O'Regan <doregan@gitlab.com> | 2022-10-20 01:26:44 +0300 |
commit | e62989a8be23f97fafb6a4a6a00c36f93918a480 (patch) | |
tree | 869e9294ff8b9bc23937a474cfad34a78146d526 /lib | |
parent | f6a16f98c53cdbaed52bacfd2857523f696d18cb (diff) | |
parent | 9acf3772451af14e4fa0372f4fe1a314822de5cc (diff) |
Merge branch 'sarahg/version-metatag-redo' into 'main'
Set site version in metatag
See merge request https://gitlab.com/gitlab-org/gitlab-docs/-/merge_requests/3195
Merged-by: David O'Regan <doregan@gitlab.com>
Approved-by: David O'Regan <doregan@gitlab.com>
Co-authored-by: Sarah German <sgerman@gitlab.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/helpers/versions.rb | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/lib/helpers/versions.rb b/lib/helpers/versions.rb index 70fa6a67..90b5739b 100644 --- a/lib/helpers/versions.rb +++ b/lib/helpers/versions.rb @@ -15,13 +15,49 @@ module Nanoc::Helpers end # - # Check if the current version is the latest. + # Get online versions from the JSON file. # - def latest? + def get_versions file = File.read('./content/versions.json') parsed = JSON.parse(file) - latest_version = parsed[0]['current'] - ENV['CI_COMMIT_REF_NAME'] == ENV['CI_DEFAULT_BRANCH'] || ENV['CI_COMMIT_REF_NAME'] == latest_version + parsed[0] + end + + # + # Returns the site version using the branch or tag from the CI build. + # + def site_version + if !ENV['CI_COMMIT_REF_NAME'].nil? && stable_version?(ENV['CI_COMMIT_REF_NAME']) + ENV['CI_COMMIT_REF_NAME'] + else + # If this wasn't built on CI, this is a local site that can default to the pre-release version. + get_versions["next"] + end + end + + # + # Returns the site version for Algolia DocSearch. + # + # For DocSearch, we need to pass "main" instead of a version number + # in the case of the pre-release site. + # + def docsearch_version + if get_versions["next"] == site_version + ENV['CI_DEFAULT_BRANCH'] + else + site_version + end + end + + # + # Check if this site version is the latest. + # + # We consider two versions to be "latest": + # 1) The main branch (CI_DEFAULT_BRANCH), which are pre-release docs for the next version. + # 2) The most recent stable release, which is "current" in versions.json. + # + def latest? + ENV['CI_COMMIT_REF_NAME'] == ENV['CI_DEFAULT_BRANCH'] || ENV['CI_COMMIT_REF_NAME'] == get_versions["current"] end # |