From a450e83d1a69b0ba07463a8466ec960474829e46 Mon Sep 17 00:00:00 2001 From: Kev Kloss <kkloss@gitlab.com> Date: Wed, 11 Sep 2024 12:01:50 +0000 Subject: [PATCH] Upload graphql schema in master pipelines --- .gitlab/ci/frontend.gitlab-ci.yml | 15 +++++++++++++++ .gitlab/ci/rules.gitlab-ci.yml | 10 ++++++++++ scripts/gitlab_component_helpers.sh | 10 ++++++++++ 3 files changed, 35 insertions(+) diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 60459fa612d09..814db9cca9d3b 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -228,6 +228,21 @@ graphql-schema-dump: - tmp/tests/graphql/gitlab_schema.graphql - tmp/tests/graphql/gitlab_schema.json +upload-graphql-schema-dump: + stage: fixtures + variables: + SETUP_DB: "false" + extends: + - .default-retry + - .ruby-cache + - .default-before_script + - .frontend:rules:upload-graphql-schema-dump + - .with-graphql-schema-dump-needs + script: + - source scripts/gitlab_component_helpers.sh + - create_and_upload_graphql_schema_package + + .frontend-test-base: extends: - .default-retry diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index b5ab63fe72c48..624d9ac904ad8 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -195,6 +195,9 @@ .if-dot-com-gitlab-org-default-branch: &if-dot-com-gitlab-org-default-branch if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE != "merge_request_event"' +.if-not-dot-com-gitlab-org-default-branch: &if-not-dot-com-gitlab-org-default-branch + if: '$CI_SERVER_HOST != "gitlab.com" || $CI_PROJECT_NAMESPACE != "gitlab-org" || $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH || $CI_PIPELINE_SOURCE == "merge_request_event"' + .if-dot-com-gitlab-org-merge-request: &if-dot-com-gitlab-org-merge-request if: '($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_EVENT_TYPE != "merge_train") && $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"' @@ -1303,6 +1306,13 @@ - <<: *if-default-refs changes: *docs-patterns + +.frontend:rules:upload-graphql-schema-dump: + rules: + - <<: *if-not-dot-com-gitlab-org-default-branch + when: never + - !reference [.frontend:rules:default-frontend-jobs-with-docs-changes, rules] + # .frontend:rules:default-frontend-jobs, with a additional rules when MR is not approved .frontend:rules:frontend_fixture: rules: diff --git a/scripts/gitlab_component_helpers.sh b/scripts/gitlab_component_helpers.sh index e16770760ff8c..bd86f5c89a71b 100644 --- a/scripts/gitlab_component_helpers.sh +++ b/scripts/gitlab_component_helpers.sh @@ -47,6 +47,11 @@ export GITLAB_WORKHORSE_TREE=${GITLAB_WORKHORSE_TREE:-$(git rev-parse HEAD:workh export GITLAB_WORKHORSE_PACKAGE="workhorse-${GITLAB_WORKHORSE_TREE}.tar.gz" export GITLAB_WORKHORSE_PACKAGE_URL="${API_PACKAGES_BASE_URL}/${GITLAB_WORKHORSE_FOLDER}/${GITLAB_WORKHORSE_TREE}/${GITLAB_WORKHORSE_PACKAGE}" +# Graphql Schema dump constants +export GRAPHQL_SCHEMA_PACKAGE="graphql-schema.tar.gz" +export GRAPHQL_SCHEMA_PATH="tmp/tests/graphql/" +export GRAPHQL_SCHEMA_PACKAGE_URL="${API_PACKAGES_BASE_URL}/graphql-schema/master/${GRAPHQL_SCHEMA_PACKAGE}" + # Assets constants export GITLAB_ASSETS_PATHS_LIST="cached-assets-hash.txt app/assets/javascripts/locale/**/app.js public/assets/" export GITLAB_ASSETS_PACKAGE_VERSION="v2" # bump this version each time GITLAB_ASSETS_PATHS_LIST is changed @@ -174,6 +179,11 @@ function create_fixtures_package() { create_package "${FIXTURES_PACKAGE}" "${FIXTURES_PATH}" } +function create_and_upload_graphql_schema_package() { + create_package "${GRAPHQL_SCHEMA_PACKAGE}" "${GRAPHQL_SCHEMA_PATH}" + upload_package "${GRAPHQL_SCHEMA_PACKAGE}" "${GRAPHQL_SCHEMA_PACKAGE_URL}" +} + function download_and_extract_fixtures() { read_curl_package "${FIXTURES_PACKAGE_URL}" | extract_package } -- GitLab