diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index fb1b9dacb66..2e0d83187cf 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -129,7 +129,7 @@ rspec-all frontend_fixture: needs: - !reference [.frontend-fixtures-base, needs] - "compile-test-assets" - parallel: 5 + parallel: 7 # Builds FOSS fixtures in the EE project, with the `ee/` folder removed (due to `as-if-foss`). rspec-all frontend_fixture as-if-foss: @@ -200,7 +200,7 @@ jest: - tmp/tests/frontend/ reports: junit: junit_jest.xml - parallel: 5 + parallel: 7 jest predictive: extends: @@ -218,7 +218,7 @@ jest as-if-foss: - .frontend:rules:jest:as-if-foss - .as-if-foss needs: ["rspec-all frontend_fixture as-if-foss"] - parallel: 2 + parallel: 4 jest predictive as-if-foss: extends: diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml index 44b28d28734..884c792ebb2 100644 --- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml @@ -620,7 +620,7 @@ e2e-test-report: - .rules:report:allure-report stage: report variables: - GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN + GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE ALLURE_PROJECT_PATH: $CI_PROJECT_PATH ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID ALLURE_JOB_NAME: e2e-package-and-test @@ -654,7 +654,7 @@ relate-test-failures: variables: QA_FAILURES_REPORTING_PROJECT: gitlab-org/gitlab QA_FAILURES_MAX_DIFF_RATIO: "0.15" - GITLAB_QA_ACCESS_TOKEN: $GITLAB_QA_PRODUCTION_ACCESS_TOKEN + GITLAB_QA_ACCESS_TOKEN: $QA_GITLAB_CI_TOKEN when: on_failure script: - | diff --git a/.gitlab/ci/review-apps/qa.gitlab-ci.yml b/.gitlab/ci/review-apps/qa.gitlab-ci.yml index 912df0ede29..b04c42d1b16 100644 --- a/.gitlab/ci/review-apps/qa.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/qa.gitlab-ci.yml @@ -143,7 +143,7 @@ e2e-test-report: ALLURE_PROJECT_PATH: $CI_PROJECT_PATH ALLURE_RESULTS_GLOB: qa/tmp/allure-results ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID - GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN + GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE GIT_STRATEGY: none allow_failure: true when: always diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index c26dd45ae93..ebc8cd49968 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -559,6 +559,7 @@ - "{,ee/,jh/}Gemfile.lock" # This should include gitlab-styles, rubocop itself, and any plugins we might be using - "lib/gitlab_edition.rb" # This is required in RuboCop::CodeReuseHelpers - ".gitlab/ci/static-analysis.gitlab-ci.yml" + - "config/feature_categories.yml" # Used by RSpec/InvalidFeatureCategory .danger-patterns: &danger-patterns - "Dangerfile" diff --git a/.rubocop_todo/performance/concurrent_monotonic_time.yml b/.rubocop_todo/performance/concurrent_monotonic_time.yml deleted file mode 100644 index 0e55eaf4a18..00000000000 --- a/.rubocop_todo/performance/concurrent_monotonic_time.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Cop supports --autocorrect. -Performance/ConcurrentMonotonicTime: - Details: grace period - Exclude: - - 'lib/gitlab/database/connection_timer.rb' diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index cd471c37947..097cbd127df 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -ed85386e4a808bab0023c28b9b1d7e103b50050e +54a1400cccb31b1869a7a9b735bad1cfb047d3bb diff --git a/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue b/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue new file mode 100644 index 00000000000..293fbfcf7a7 --- /dev/null +++ b/app/assets/javascripts/ci/runner/admin_new_runner/admin_new_runner_app.vue @@ -0,0 +1,48 @@ + + + diff --git a/app/assets/javascripts/ci/runner/admin_new_runner/index.js b/app/assets/javascripts/ci/runner/admin_new_runner/index.js new file mode 100644 index 00000000000..502d9d33b4d --- /dev/null +++ b/app/assets/javascripts/ci/runner/admin_new_runner/index.js @@ -0,0 +1,32 @@ +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createDefaultClient from '~/lib/graphql'; +import AdminNewRunnerApp from './admin_new_runner_app.vue'; + +Vue.use(VueApollo); + +export const initAdminNewRunner = (selector = '#js-admin-new-runner') => { + const el = document.querySelector(selector); + + if (!el) { + return null; + } + + const { legacyRegistrationToken } = el.dataset; + + const apolloProvider = new VueApollo({ + defaultClient: createDefaultClient(), + }); + + return new Vue({ + el, + apolloProvider, + render(h) { + return h(AdminNewRunnerApp, { + props: { + legacyRegistrationToken, + }, + }); + }, + }); +}; diff --git a/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue b/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue index 6f351d91165..17766b4d162 100644 --- a/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue +++ b/app/assets/javascripts/jobs/components/table/cells/actions_cell.vue @@ -8,9 +8,11 @@ import { ACTIONS_UNSCHEDULE, ACTIONS_PLAY, ACTIONS_RETRY, + ACTIONS_RUN_AGAIN, CANCEL, GENERIC_ERROR, JOB_SCHEDULED, + JOB_SUCCESS, PLAY_JOB_CONFIRMATION_MESSAGE, RUN_JOB_NOW_HEADER_TITLE, FILE_TYPE_ARCHIVE, @@ -107,6 +109,9 @@ export default { shouldDisplayArtifacts() { return this.canReadArtifacts && this.hasArtifacts; }, + retryButtonTitle() { + return this.job.status === JOB_SUCCESS ? ACTIONS_RUN_AGAIN : ACTIONS_RETRY; + }, }, methods: { async postJobAction(name, mutation, redirect = false) { @@ -223,8 +228,8 @@ export default {