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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-05 21:09:06 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-05 21:09:06 +0300
commitb042382bbf5a4977c5b5c6b0a9a33f4e8ca8d16d (patch)
treede31671ab7c6ca8c2a3721cbabd1f2a42b3d0194 /spec/javascripts
parenteabf8fd774fef6a54903e5141138f47bdafeb331 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/javascripts')
-rw-r--r--spec/javascripts/jobs/components/job_app_spec.js593
-rw-r--r--spec/javascripts/jobs/mock_data.js1193
2 files changed, 2 insertions, 1784 deletions
diff --git a/spec/javascripts/jobs/components/job_app_spec.js b/spec/javascripts/jobs/components/job_app_spec.js
deleted file mode 100644
index 31b49c45908..00000000000
--- a/spec/javascripts/jobs/components/job_app_spec.js
+++ /dev/null
@@ -1,593 +0,0 @@
-import Vue from 'vue';
-import MockAdapter from 'axios-mock-adapter';
-import { mountComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
-import { waitForMutation } from 'spec/helpers/vue_test_utils_helper';
-import axios from '~/lib/utils/axios_utils';
-import jobApp from '~/jobs/components/job_app.vue';
-import createStore from '~/jobs/store';
-import * as types from '~/jobs/store/mutation_types';
-import job from '../mock_data';
-
-describe('Job App ', () => {
- const delayedJobFixture = getJSONFixture('jobs/delayed.json');
- const Component = Vue.extend(jobApp);
- let store;
- let vm;
- let mock;
-
- const initSettings = {
- endpoint: `${gl.TEST_HOST}jobs/123.json`,
- pagePath: `${gl.TEST_HOST}jobs/123`,
- logState:
- 'eyJvZmZzZXQiOjE3NDUxLCJuX29wZW5fdGFncyI6MCwiZmdfY29sb3IiOm51bGwsImJnX2NvbG9yIjpudWxsLCJzdHlsZV9tYXNrIjowfQ%3D%3D',
- };
-
- const props = {
- runnerHelpUrl: 'help/runner',
- deploymentHelpUrl: 'help/deployment',
- runnerSettingsUrl: 'settings/ci-cd/runners',
- variablesSettingsUrl: 'settings/ci-cd/variables',
- terminalPath: 'jobs/123/terminal',
- projectPath: 'user-name/project-name',
- subscriptionsMoreMinutesUrl: 'https://customers.gitlab.com/buy_pipeline_minutes',
- };
-
- const waitForJobReceived = () => waitForMutation(store, types.RECEIVE_JOB_SUCCESS);
- const setupAndMount = ({ jobData = {}, traceData = {} } = {}) => {
- mock.onGet(initSettings.endpoint).replyOnce(200, { ...job, ...jobData });
- mock.onGet(`${initSettings.pagePath}/trace.json`).reply(200, traceData);
-
- store.dispatch('init', initSettings);
-
- vm = mountComponentWithStore(Component, { props, store });
-
- return waitForJobReceived();
- };
-
- beforeEach(() => {
- mock = new MockAdapter(axios);
- store = createStore();
- });
-
- afterEach(() => {
- vm.$destroy();
- mock.restore();
- });
-
- describe('while loading', () => {
- beforeEach(() => {
- setupAndMount();
- });
-
- it('renders loading icon', () => {
- expect(vm.$el.querySelector('.js-job-loading')).not.toBeNull();
- expect(vm.$el.querySelector('.js-job-sidebar')).toBeNull();
- expect(vm.$el.querySelector('.js-job-content')).toBeNull();
- });
- });
-
- describe('with successful request', () => {
- describe('Header section', () => {
- describe('job callout message', () => {
- it('should not render the reason when reason is absent', done => {
- setupAndMount()
- .then(() => {
- expect(vm.shouldRenderCalloutMessage).toBe(false);
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('should render the reason when reason is present', done => {
- setupAndMount({
- jobData: {
- callout_message: 'There is an unkown failure, please try again',
- },
- })
- .then(() => {
- expect(vm.shouldRenderCalloutMessage).toBe(true);
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('triggered job', () => {
- beforeEach(done => {
- const aYearAgo = new Date();
- aYearAgo.setFullYear(aYearAgo.getFullYear() - 1);
-
- setupAndMount({ jobData: { started: aYearAgo.toISOString() } })
- .then(done)
- .catch(done.fail);
- });
-
- it('should render provided job information', () => {
- expect(
- vm.$el
- .querySelector('.header-main-content')
- .textContent.replace(/\s+/g, ' ')
- .trim(),
- ).toContain('passed Job #4757 triggered 1 year ago by Root');
- });
-
- it('should render new issue link', () => {
- expect(vm.$el.querySelector('.js-new-issue').getAttribute('href')).toEqual(
- job.new_issue_path,
- );
- });
- });
-
- describe('created job', () => {
- it('should render created key', done => {
- setupAndMount()
- .then(() => {
- expect(
- vm.$el
- .querySelector('.header-main-content')
- .textContent.replace(/\s+/g, ' ')
- .trim(),
- ).toContain('passed Job #4757 created 3 weeks ago by Root');
- })
- .then(done)
- .catch(done.fail);
- });
- });
- });
-
- describe('stuck block', () => {
- describe('without active runners availabl', () => {
- it('renders stuck block when there are no runners', done => {
- setupAndMount({
- jobData: {
- status: {
- group: 'pending',
- icon: 'status_pending',
- label: 'pending',
- text: 'pending',
- details_path: 'path',
- },
- stuck: true,
- runners: {
- available: false,
- online: false,
- },
- tags: [],
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-stuck')).not.toBeNull();
- expect(
- vm.$el.querySelector('.js-job-stuck .js-stuck-no-active-runner'),
- ).not.toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('when available runners can not run specified tag', () => {
- it('renders tags in stuck block when there are no runners', done => {
- setupAndMount({
- jobData: {
- status: {
- group: 'pending',
- icon: 'status_pending',
- label: 'pending',
- text: 'pending',
- details_path: 'path',
- },
- stuck: true,
- runners: {
- available: false,
- online: false,
- },
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-stuck').textContent).toContain(job.tags[0]);
- expect(vm.$el.querySelector('.js-job-stuck .js-stuck-with-tags')).not.toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('when runners are offline and build has tags', () => {
- it('renders message about job being stuck because of no runners with the specified tags', done => {
- setupAndMount({
- jobData: {
- status: {
- group: 'pending',
- icon: 'status_pending',
- label: 'pending',
- text: 'pending',
- details_path: 'path',
- },
- stuck: true,
- runners: {
- available: true,
- online: true,
- },
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-stuck').textContent).toContain(job.tags[0]);
- expect(vm.$el.querySelector('.js-job-stuck .js-stuck-with-tags')).not.toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- it('does not renders stuck block when there are no runners', done => {
- setupAndMount({
- jobData: {
- runners: { available: true },
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-stuck')).toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('unmet prerequisites block', () => {
- it('renders unmet prerequisites block when there is an unmet prerequisites failure', done => {
- setupAndMount({
- jobData: {
- status: {
- group: 'failed',
- icon: 'status_failed',
- label: 'failed',
- text: 'failed',
- details_path: 'path',
- illustration: {
- content: 'Retry this job in order to create the necessary resources.',
- image: 'path',
- size: 'svg-430',
- title: 'Failed to create resources',
- },
- },
- failure_reason: 'unmet_prerequisites',
- has_trace: false,
- runners: {
- available: true,
- },
- tags: [],
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-failed')).not.toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('environments block', () => {
- it('renders environment block when job has environment', done => {
- setupAndMount({
- jobData: {
- deployment_status: {
- environment: {
- environment_path: '/path',
- name: 'foo',
- },
- },
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-environment')).not.toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('does not render environment block when job has environment', done => {
- setupAndMount()
- .then(() => {
- expect(vm.$el.querySelector('.js-job-environment')).toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('erased block', () => {
- it('renders erased block when `erased` is true', done => {
- setupAndMount({
- jobData: {
- erased_by: {
- username: 'root',
- web_url: 'gitlab.com/root',
- },
- erased_at: '2016-11-07T11:11:16.525Z',
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-erased-block')).not.toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('does not render erased block when `erased` is false', done => {
- setupAndMount({
- jobData: {
- erased_at: null,
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-erased-block')).toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('empty states block', () => {
- it('renders empty state when job does not have trace and is not running', done => {
- setupAndMount({
- jobData: {
- has_trace: false,
- status: {
- group: 'pending',
- icon: 'status_pending',
- label: 'pending',
- text: 'pending',
- details_path: 'path',
- illustration: {
- image: 'path',
- size: '340',
- title: 'Empty State',
- content: 'This is an empty state',
- },
- action: {
- button_title: 'Retry job',
- method: 'post',
- path: '/path',
- },
- },
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-empty-state')).not.toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('does not render empty state when job does not have trace but it is running', done => {
- setupAndMount({
- jobData: {
- has_trace: false,
- status: {
- group: 'running',
- icon: 'status_running',
- label: 'running',
- text: 'running',
- details_path: 'path',
- },
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-empty-state')).toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('does not render empty state when job has trace but it is not running', done => {
- setupAndMount({ jobData: { has_trace: true } })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-empty-state')).toBeNull();
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('displays remaining time for a delayed job', done => {
- const oneHourInMilliseconds = 3600000;
- spyOn(Date, 'now').and.callFake(
- () => new Date(delayedJobFixture.scheduled_at).getTime() - oneHourInMilliseconds,
- );
- setupAndMount({ jobData: delayedJobFixture })
- .then(() => {
- expect(vm.$el.querySelector('.js-job-empty-state')).not.toBeNull();
-
- const title = vm.$el.querySelector('.js-job-empty-state-title');
-
- expect(title).toContainText('01:00:00');
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('sidebar', () => {
- it('has no blank blocks', done => {
- setupAndMount({
- jobData: {
- duration: null,
- finished_at: null,
- erased_at: null,
- queued: null,
- runner: null,
- coverage: null,
- tags: [],
- cancel_path: null,
- },
- })
- .then(() => {
- vm.$el.querySelectorAll('.blocks-container > *').forEach(block => {
- expect(block.textContent.trim()).not.toBe('');
- });
- })
- .then(done)
- .catch(done.fail);
- });
- });
- });
-
- describe('archived job', () => {
- beforeEach(done => {
- setupAndMount({ jobData: { archived: true } })
- .then(done)
- .catch(done.fail);
- });
-
- it('renders warning about job being archived', () => {
- expect(vm.$el.querySelector('.js-archived-job ')).not.toBeNull();
- });
- });
-
- describe('non-archived job', () => {
- beforeEach(done => {
- setupAndMount()
- .then(done)
- .catch(done.fail);
- });
-
- it('does not warning about job being archived', () => {
- expect(vm.$el.querySelector('.js-archived-job ')).toBeNull();
- });
- });
-
- describe('trace output', () => {
- describe('with append flag', () => {
- it('appends the log content to the existing one', done => {
- setupAndMount({
- traceData: {
- html: '<span>More<span>',
- status: 'running',
- state: 'newstate',
- append: true,
- complete: true,
- },
- })
- .then(() => {
- vm.$store.state.trace = 'Update';
-
- return vm.$nextTick();
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-build-trace').textContent.trim()).toContain('Update');
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('without append flag', () => {
- it('replaces the trace', done => {
- setupAndMount({
- traceData: {
- html: '<span>Different<span>',
- status: 'running',
- append: false,
- complete: true,
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-build-trace').textContent.trim()).not.toContain(
- 'Update',
- );
-
- expect(vm.$el.querySelector('.js-build-trace').textContent.trim()).toContain(
- 'Different',
- );
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('truncated information', () => {
- describe('when size is less than total', () => {
- it('shows information about truncated log', done => {
- mock.onGet(`${props.pagePath}/trace.json`).reply(200, {
- html: '<span>Update</span>',
- status: 'success',
- append: false,
- size: 50,
- total: 100,
- complete: true,
- });
-
- setupAndMount({
- traceData: {
- html: '<span>Update</span>',
- status: 'success',
- append: false,
- size: 50,
- total: 100,
- complete: true,
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-truncated-info').textContent.trim()).toContain(
- '50 bytes',
- );
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('when size is equal than total', () => {
- it('does not show the truncated information', done => {
- setupAndMount({
- traceData: {
- html: '<span>Update</span>',
- status: 'success',
- append: false,
- size: 100,
- total: 100,
- complete: true,
- },
- })
- .then(() => {
- expect(vm.$el.querySelector('.js-truncated-info').textContent.trim()).not.toContain(
- '50 bytes',
- );
- })
- .then(done)
- .catch(done.fail);
- });
- });
- });
-
- describe('trace controls', () => {
- beforeEach(done => {
- setupAndMount({
- traceData: {
- html: '<span>Update</span>',
- status: 'success',
- append: false,
- size: 50,
- total: 100,
- complete: true,
- },
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('should render scroll buttons', () => {
- expect(vm.$el.querySelector('.js-scroll-top')).not.toBeNull();
- expect(vm.$el.querySelector('.js-scroll-bottom')).not.toBeNull();
- });
-
- it('should render link to raw ouput', () => {
- expect(vm.$el.querySelector('.js-raw-link-controller')).not.toBeNull();
- });
-
- it('should render link to erase job', () => {
- expect(vm.$el.querySelector('.js-erase-link')).not.toBeNull();
- });
- });
- });
-});
diff --git a/spec/javascripts/jobs/mock_data.js b/spec/javascripts/jobs/mock_data.js
index 3d40e94d219..f0ba46c058a 100644
--- a/spec/javascripts/jobs/mock_data.js
+++ b/spec/javascripts/jobs/mock_data.js
@@ -1,1191 +1,2 @@
-import { TEST_HOST } from 'spec/test_constants';
-
-const threeWeeksAgo = new Date();
-threeWeeksAgo.setDate(threeWeeksAgo.getDate() - 21);
-
-export const stages = [
- {
- name: 'build',
- title: 'build: running',
- groups: [
- {
- name: 'build:linux',
- size: 1,
- status: {
- icon: 'status_pending',
- text: 'pending',
- label: 'pending',
- group: 'pending',
- tooltip: 'pending',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
- illustration: {
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
- title: 'This job has not started yet',
- content: 'This job is in pending state and is waiting to be picked by a runner',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_pending-5bdf338420e5221ca24353b6bff1c9367189588750632e9a871b7af09ff6a2ae.png',
- action: {
- icon: 'cancel',
- title: 'Cancel',
- path: '/gitlab-org/gitlab-shell/-/jobs/1180/cancel',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 1180,
- name: 'build:linux',
- started: false,
- build_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
- cancel_path: '/gitlab-org/gitlab-shell/-/jobs/1180/cancel',
- playable: false,
- created_at: '2018-09-28T11:09:57.229Z',
- updated_at: '2018-09-28T11:09:57.503Z',
- status: {
- icon: 'status_pending',
- text: 'pending',
- label: 'pending',
- group: 'pending',
- tooltip: 'pending',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
- illustration: {
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
- title: 'This job has not started yet',
- content: 'This job is in pending state and is waiting to be picked by a runner',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_pending-5bdf338420e5221ca24353b6bff1c9367189588750632e9a871b7af09ff6a2ae.png',
- action: {
- icon: 'cancel',
- title: 'Cancel',
- path: '/gitlab-org/gitlab-shell/-/jobs/1180/cancel',
- method: 'post',
- },
- },
- },
- ],
- },
- {
- name: 'build:osx',
- size: 1,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/444',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/444/retry',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 444,
- name: 'build:osx',
- started: '2018-05-18T05:32:20.655Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/444',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/444/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.364Z',
- updated_at: '2018-05-18T15:32:54.364Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/444',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/444/retry',
- method: 'post',
- },
- },
- },
- ],
- },
- ],
- status: {
- icon: 'status_running',
- text: 'running',
- label: 'running',
- group: 'running',
- tooltip: 'running',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/pipelines/27#build',
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_running-9c635b2419a8e1ec991c993061b89cc5aefc0743bb238ecd0c381e7741a70e8c.png',
- },
- path: '/gitlab-org/gitlab-shell/pipelines/27#build',
- dropdown_path: '/gitlab-org/gitlab-shell/pipelines/27/stage.json?stage=build',
- },
- {
- name: 'test',
- title: 'test: passed with warnings',
- groups: [
- {
- name: 'jenkins',
- size: 1,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: null,
- group: 'success',
- tooltip: null,
- has_details: false,
- details_path: null,
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- },
- jobs: [
- {
- id: 459,
- name: 'jenkins',
- started: '2018-05-18T09:32:20.658Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/459',
- playable: false,
- created_at: '2018-05-18T15:32:55.330Z',
- updated_at: '2018-05-18T15:32:55.330Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: null,
- group: 'success',
- tooltip: null,
- has_details: false,
- details_path: null,
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- },
- },
- ],
- },
- {
- name: 'rspec:linux',
- size: 3,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: false,
- details_path: null,
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- },
- jobs: [
- {
- id: 445,
- name: 'rspec:linux 0 3',
- started: '2018-05-18T07:32:20.655Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/445',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/445/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.425Z',
- updated_at: '2018-05-18T15:32:54.425Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/445',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/445/retry',
- method: 'post',
- },
- },
- },
- {
- id: 446,
- name: 'rspec:linux 1 3',
- started: '2018-05-18T07:32:20.655Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/446',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/446/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.506Z',
- updated_at: '2018-05-18T15:32:54.506Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/446',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/446/retry',
- method: 'post',
- },
- },
- },
- {
- id: 447,
- name: 'rspec:linux 2 3',
- started: '2018-05-18T07:32:20.656Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/447',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/447/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.572Z',
- updated_at: '2018-05-18T15:32:54.572Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/447',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/447/retry',
- method: 'post',
- },
- },
- },
- ],
- },
- {
- name: 'rspec:osx',
- size: 1,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/452',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/452/retry',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 452,
- name: 'rspec:osx',
- started: '2018-05-18T07:32:20.657Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/452',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/452/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.920Z',
- updated_at: '2018-05-18T15:32:54.920Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/452',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/452/retry',
- method: 'post',
- },
- },
- },
- ],
- },
- {
- name: 'rspec:windows',
- size: 3,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: false,
- details_path: null,
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- },
- jobs: [
- {
- id: 448,
- name: 'rspec:windows 0 3',
- started: '2018-05-18T07:32:20.656Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/448',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/448/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.639Z',
- updated_at: '2018-05-18T15:32:54.639Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/448',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/448/retry',
- method: 'post',
- },
- },
- },
- {
- id: 449,
- name: 'rspec:windows 1 3',
- started: '2018-05-18T07:32:20.656Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/449',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/449/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.703Z',
- updated_at: '2018-05-18T15:32:54.703Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/449',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/449/retry',
- method: 'post',
- },
- },
- },
- {
- id: 451,
- name: 'rspec:windows 2 3',
- started: '2018-05-18T07:32:20.657Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/451',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/451/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.853Z',
- updated_at: '2018-05-18T15:32:54.853Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/451',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/451/retry',
- method: 'post',
- },
- },
- },
- ],
- },
- {
- name: 'spinach:linux',
- size: 1,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/453',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/453/retry',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 453,
- name: 'spinach:linux',
- started: '2018-05-18T07:32:20.657Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/453',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/453/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.993Z',
- updated_at: '2018-05-18T15:32:54.993Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/453',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/453/retry',
- method: 'post',
- },
- },
- },
- ],
- },
- {
- name: 'spinach:osx',
- size: 1,
- status: {
- icon: 'status_warning',
- text: 'failed',
- label: 'failed (allowed to fail)',
- group: 'failed-with-warnings',
- tooltip: 'failed - (unknown failure) (allowed to fail)',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/454',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/454/retry',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 454,
- name: 'spinach:osx',
- started: '2018-05-18T07:32:20.657Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/454',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/454/retry',
- playable: false,
- created_at: '2018-05-18T15:32:55.053Z',
- updated_at: '2018-05-18T15:32:55.053Z',
- status: {
- icon: 'status_warning',
- text: 'failed',
- label: 'failed (allowed to fail)',
- group: 'failed-with-warnings',
- tooltip: 'failed - (unknown failure) (allowed to fail)',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/454',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/454/retry',
- method: 'post',
- },
- },
- callout_message: 'There is an unknown failure, please try again',
- recoverable: true,
- },
- ],
- },
- ],
- status: {
- icon: 'status_warning',
- text: 'passed',
- label: 'passed with warnings',
- group: 'success-with-warnings',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/pipelines/27#test',
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- },
- path: '/gitlab-org/gitlab-shell/pipelines/27#test',
- dropdown_path: '/gitlab-org/gitlab-shell/pipelines/27/stage.json?stage=test',
- },
- {
- name: 'deploy',
- title: 'deploy: running',
- groups: [
- {
- name: 'production',
- size: 1,
- status: {
- icon: 'status_created',
- text: 'created',
- label: 'created',
- group: 'created',
- tooltip: 'created',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/457',
- illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
- title: 'This job has not been triggered yet',
- content:
- 'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_created-4b975aa976d24e5a3ea7cd9a5713e6ce2cd9afd08b910415e96675de35f64955.png',
- action: {
- icon: 'cancel',
- title: 'Cancel',
- path: '/gitlab-org/gitlab-shell/-/jobs/457/cancel',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 457,
- name: 'production',
- started: false,
- build_path: '/gitlab-org/gitlab-shell/-/jobs/457',
- cancel_path: '/gitlab-org/gitlab-shell/-/jobs/457/cancel',
- playable: false,
- created_at: '2018-05-18T15:32:55.259Z',
- updated_at: '2018-09-28T11:09:57.454Z',
- status: {
- icon: 'status_created',
- text: 'created',
- label: 'created',
- group: 'created',
- tooltip: 'created',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/457',
- illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
- title: 'This job has not been triggered yet',
- content:
- 'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_created-4b975aa976d24e5a3ea7cd9a5713e6ce2cd9afd08b910415e96675de35f64955.png',
- action: {
- icon: 'cancel',
- title: 'Cancel',
- path: '/gitlab-org/gitlab-shell/-/jobs/457/cancel',
- method: 'post',
- },
- },
- },
- ],
- },
- {
- name: 'staging',
- size: 1,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/455',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/455/retry',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 455,
- name: 'staging',
- started: '2018-05-18T09:32:20.658Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/455',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/455/retry',
- playable: false,
- created_at: '2018-05-18T15:32:55.119Z',
- updated_at: '2018-05-18T15:32:55.119Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/455',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/455/retry',
- method: 'post',
- },
- },
- },
- ],
- },
- {
- name: 'stop staging',
- size: 1,
- status: {
- icon: 'status_created',
- text: 'created',
- label: 'created',
- group: 'created',
- tooltip: 'created',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/456',
- illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
- title: 'This job has not been triggered yet',
- content:
- 'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_created-4b975aa976d24e5a3ea7cd9a5713e6ce2cd9afd08b910415e96675de35f64955.png',
- action: {
- icon: 'cancel',
- title: 'Cancel',
- path: '/gitlab-org/gitlab-shell/-/jobs/456/cancel',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 456,
- name: 'stop staging',
- started: false,
- build_path: '/gitlab-org/gitlab-shell/-/jobs/456',
- cancel_path: '/gitlab-org/gitlab-shell/-/jobs/456/cancel',
- playable: false,
- created_at: '2018-05-18T15:32:55.205Z',
- updated_at: '2018-09-28T11:09:57.396Z',
- status: {
- icon: 'status_created',
- text: 'created',
- label: 'created',
- group: 'created',
- tooltip: 'created',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/456',
- illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
- title: 'This job has not been triggered yet',
- content:
- 'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_created-4b975aa976d24e5a3ea7cd9a5713e6ce2cd9afd08b910415e96675de35f64955.png',
- action: {
- icon: 'cancel',
- title: 'Cancel',
- path: '/gitlab-org/gitlab-shell/-/jobs/456/cancel',
- method: 'post',
- },
- },
- },
- ],
- },
- ],
- status: {
- icon: 'status_running',
- text: 'running',
- label: 'running',
- group: 'running',
- tooltip: 'running',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/pipelines/27#deploy',
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_running-9c635b2419a8e1ec991c993061b89cc5aefc0743bb238ecd0c381e7741a70e8c.png',
- },
- path: '/gitlab-org/gitlab-shell/pipelines/27#deploy',
- dropdown_path: '/gitlab-org/gitlab-shell/pipelines/27/stage.json?stage=deploy',
- },
- {
- name: 'notify',
- title: 'notify: manual action',
- groups: [
- {
- name: 'slack',
- size: 1,
- status: {
- icon: 'status_manual',
- text: 'manual',
- label: 'manual play action',
- group: 'manual',
- tooltip: 'manual action',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/458',
- illustration: {
- image: 'illustrations/manual_action.svg',
- size: 'svg-394',
- title: 'This job requires a manual action',
- content:
- 'This job depends on a user to trigger its process. Often they are used to deploy code to production environments',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_manual-829a0804612cef47d9efc1618dba38325483657c847dba0546c3b9f0295bb36c.png',
- action: {
- icon: 'play',
- title: 'Play',
- path: '/gitlab-org/gitlab-shell/-/jobs/458/play',
- method: 'post',
- },
- },
- jobs: [
- {
- id: 458,
- name: 'slack',
- started: null,
- build_path: '/gitlab-org/gitlab-shell/-/jobs/458',
- play_path: '/gitlab-org/gitlab-shell/-/jobs/458/play',
- playable: true,
- created_at: '2018-05-18T15:32:55.303Z',
- updated_at: '2018-05-18T15:34:08.535Z',
- status: {
- icon: 'status_manual',
- text: 'manual',
- label: 'manual play action',
- group: 'manual',
- tooltip: 'manual action',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/458',
- illustration: {
- image: 'illustrations/manual_action.svg',
- size: 'svg-394',
- title: 'This job requires a manual action',
- content:
- 'This job depends on a user to trigger its process. Often they are used to deploy code to production environments',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_manual-829a0804612cef47d9efc1618dba38325483657c847dba0546c3b9f0295bb36c.png',
- action: {
- icon: 'play',
- title: 'Play',
- path: '/gitlab-org/gitlab-shell/-/jobs/458/play',
- method: 'post',
- },
- },
- },
- ],
- },
- ],
- status: {
- icon: 'status_manual',
- text: 'manual',
- label: 'manual action',
- group: 'manual',
- tooltip: 'manual action',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/pipelines/27#notify',
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_manual-829a0804612cef47d9efc1618dba38325483657c847dba0546c3b9f0295bb36c.png',
- },
- path: '/gitlab-org/gitlab-shell/pipelines/27#notify',
- dropdown_path: '/gitlab-org/gitlab-shell/pipelines/27/stage.json?stage=notify',
- },
-];
-
-export default {
- id: 4757,
- name: 'test',
- build_path: '/root/ci-mock/-/jobs/4757',
- retry_path: '/root/ci-mock/-/jobs/4757/retry',
- cancel_path: '/root/ci-mock/-/jobs/4757/cancel',
- new_issue_path: '/root/ci-mock/issues/new',
- playable: false,
- created_at: threeWeeksAgo.toISOString(),
- updated_at: threeWeeksAgo.toISOString(),
- finished_at: threeWeeksAgo.toISOString(),
- queued: 9.54,
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- has_details: true,
- details_path: `${TEST_HOST}/root/ci-mock/-/jobs/4757`,
- favicon:
- '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/root/ci-mock/-/jobs/4757/retry',
- method: 'post',
- },
- },
- coverage: 20,
- erased_at: threeWeeksAgo.toISOString(),
- erased: false,
- duration: 6.785563,
- tags: ['tag'],
- user: {
- name: 'Root',
- username: 'root',
- id: 1,
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
- web_url: 'http://localhost:3000/root',
- },
- erase_path: '/root/ci-mock/-/jobs/4757/erase',
- artifacts: [null],
- runner: {
- id: 1,
- description: 'local ci runner',
- edit_path: '/root/ci-mock/runners/1/edit',
- },
- pipeline: {
- id: 140,
- user: {
- name: 'Root',
- username: 'root',
- id: 1,
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
- web_url: 'http://localhost:3000/root',
- },
- active: false,
- coverage: null,
- source: 'unknown',
- created_at: '2017-05-24T09:59:58.634Z',
- updated_at: '2017-06-01T17:32:00.062Z',
- path: '/root/ci-mock/pipelines/140',
- flags: {
- latest: true,
- stuck: false,
- yaml_errors: false,
- retryable: false,
- cancelable: false,
- },
- details: {
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- has_details: true,
- details_path: '/root/ci-mock/pipelines/140',
- favicon:
- '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png',
- },
- duration: 6,
- finished_at: '2017-06-01T17:32:00.042Z',
- stages: [
- {
- dropdown_path: '/jashkenas/underscore/pipelines/16/stage.json?stage=build',
- name: 'build',
- path: '/jashkenas/underscore/pipelines/16#build',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- },
- title: 'build: passed',
- },
- {
- dropdown_path: '/jashkenas/underscore/pipelines/16/stage.json?stage=test',
- name: 'test',
- path: '/jashkenas/underscore/pipelines/16#test',
- status: {
- icon: 'status_warning',
- text: 'passed',
- label: 'passed with warnings',
- group: 'success-with-warnings',
- },
- title: 'test: passed with warnings',
- },
- ],
- },
- ref: {
- name: 'abc',
- path: '/root/ci-mock/commits/abc',
- tag: false,
- branch: true,
- },
- commit: {
- id: 'c58647773a6b5faf066d4ad6ff2c9fbba5f180f6',
- short_id: 'c5864777',
- title: 'Add new file',
- created_at: '2017-05-24T10:59:52.000+01:00',
- parent_ids: ['798e5f902592192afaba73f4668ae30e56eae492'],
- message: 'Add new file',
- author_name: 'Root',
- author_email: 'admin@example.com',
- authored_date: '2017-05-24T10:59:52.000+01:00',
- committer_name: 'Root',
- committer_email: 'admin@example.com',
- committed_date: '2017-05-24T10:59:52.000+01:00',
- author: {
- name: 'Root',
- username: 'root',
- id: 1,
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
- web_url: 'http://localhost:3000/root',
- },
- author_gravatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
- commit_url:
- 'http://localhost:3000/root/ci-mock/commit/c58647773a6b5faf066d4ad6ff2c9fbba5f180f6',
- commit_path: '/root/ci-mock/commit/c58647773a6b5faf066d4ad6ff2c9fbba5f180f6',
- },
- },
- metadata: {
- timeout_human_readable: '1m 40s',
- timeout_source: 'runner',
- },
- merge_request: {
- iid: 2,
- path: '/root/ci-mock/merge_requests/2',
- },
- raw_path: '/root/ci-mock/builds/4757/raw',
- has_trace: true,
-};
-
-export const jobsInStage = {
- name: 'build',
- title: 'build: running',
- latest_statuses: [
- {
- id: 1180,
- name: 'build:linux',
- started: false,
- build_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
- cancel_path: '/gitlab-org/gitlab-shell/-/jobs/1180/cancel',
- playable: false,
- created_at: '2018-09-28T11:09:57.229Z',
- updated_at: '2018-09-28T11:09:57.503Z',
- status: {
- icon: 'status_pending',
- text: 'pending',
- label: 'pending',
- group: 'pending',
- tooltip: 'pending',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
- illustration: {
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
- title: 'This job has not started yet',
- content: 'This job is in pending state and is waiting to be picked by a runner',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_pending-5bdf338420e5221ca24353b6bff1c9367189588750632e9a871b7af09ff6a2ae.png',
- action: {
- icon: 'cancel',
- title: 'Cancel',
- path: '/gitlab-org/gitlab-shell/-/jobs/1180/cancel',
- method: 'post',
- },
- },
- },
- {
- id: 444,
- name: 'build:osx',
- started: '2018-05-18T05:32:20.655Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/444',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/444/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.364Z',
- updated_at: '2018-05-18T15:32:54.364Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/444',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/444/retry',
- method: 'post',
- },
- },
- },
- ],
- retried: [
- {
- id: 443,
- name: 'build:linux',
- started: '2018-05-18T06:32:20.655Z',
- build_path: '/gitlab-org/gitlab-shell/-/jobs/443',
- retry_path: '/gitlab-org/gitlab-shell/-/jobs/443/retry',
- playable: false,
- created_at: '2018-05-18T15:32:54.296Z',
- updated_at: '2018-05-18T15:32:54.296Z',
- status: {
- icon: 'status_success',
- text: 'passed',
- label: 'passed',
- group: 'success',
- tooltip: 'passed (retried)',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/-/jobs/443',
- illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
- title: 'This job does not have a trace.',
- },
- favicon:
- '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
- action: {
- icon: 'retry',
- title: 'Retry',
- path: '/gitlab-org/gitlab-shell/-/jobs/443/retry',
- method: 'post',
- },
- },
- },
- ],
- status: {
- icon: 'status_running',
- text: 'running',
- label: 'running',
- group: 'running',
- tooltip: 'running',
- has_details: true,
- details_path: '/gitlab-org/gitlab-shell/pipelines/27#build',
- illustration: null,
- favicon:
- '/assets/ci_favicons/favicon_status_running-9c635b2419a8e1ec991c993061b89cc5aefc0743bb238ecd0c381e7741a70e8c.png',
- },
- path: '/gitlab-org/gitlab-shell/pipelines/27#build',
- dropdown_path: '/gitlab-org/gitlab-shell/pipelines/27/stage.json?stage=build',
-};
+export { default } from '../../frontend/jobs/mock_data';
+export * from '../../frontend/jobs/mock_data';