diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 60459fa612d095fa28ca8b31d8622896c9aea92f..814db9cca9d3b8ead6525c805a08d9fa0b6196ed 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 b5ab63fe72c4840657f09d940208704184ce84fe..624d9ac904ad8ca9435ab9ed9e2095ac37196517 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 e16770760ff8c8f9be884a67ca887493165caee1..bd86f5c89a71befa50669d636e0d47d39ccd751e 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 }