*/
// IMPORTANT: any change in this file requires restart of the dev server
const grid = 8;
+const baseFontSizeRaw = 13;
module.exports = {
colors: {
sizes: {
gridSize: `${grid}px`,
- baseFontSize: '13px',
+ baseFontSize: `${baseFontSizeRaw}px`,
verySmallFontSize: '10px',
smallFontSize: '12px',
mediumFontSize: '14px',
rawSizes: {
grid,
+ baseFontSizeRaw,
globalNavHeightRaw: 6 * grid,
globalNavContentHeightRaw: 4 * grid,
contextNavHeightRaw: 9 * grid
} = props;
return (
- <div className="abs-width-600">
- <p className="big-spacer-bottom">
- <SentenceWithHighlights
- highlightKeys={['all_set']}
- translationKey="onboarding.tutorial.ci_outro.all_set"
- />
- </p>
- <div className="display-flex-row big-spacer-bottom">
- <div>
- <img
- alt="" // Should be ignored by screen readers
- className="big-spacer-right"
- width={30}
- src={`${getBaseUrl()}/images/tutorials/commit.svg`}
+ <>
+ <div className="abs-width-600">
+ <p className="big-spacer-bottom">
+ <SentenceWithHighlights
+ highlightKeys={['all_set']}
+ translationKey="onboarding.tutorial.ci_outro.all_set"
/>
+ </p>
+ <div className="display-flex-row big-spacer-bottom">
+ <div>
+ <img
+ alt="" // Should be ignored by screen readers
+ className="big-spacer-right"
+ width={30}
+ src={`${getBaseUrl()}/images/tutorials/commit.svg`}
+ />
+ </div>
+ <div>
+ <p className="little-spacer-bottom">
+ <strong>{translate('onboarding.tutorial.ci_outro.commit')}</strong>
+ </p>
+ <p>
+ {branchesEnabled
+ ? translate('onboarding.tutorial.ci_outro.commit.why', alm)
+ : translate('onboarding.tutorial.ci_outro.commit.why.no_branches')}
+ </p>
+ </div>
</div>
- <div>
- <p className="little-spacer-bottom">
- <strong>{translate('onboarding.tutorial.ci_outro.commit')}</strong>
- </p>
- <p>
- {branchesEnabled
- ? translate('onboarding.tutorial.ci_outro.commit.why', alm)
- : translate('onboarding.tutorial.ci_outro.commit.why.no_branches')}
- </p>
+ <div className="display-flex-row">
+ <div>
+ <img
+ alt="" // Should be ignored by screen readers
+ className="big-spacer-right"
+ width={30}
+ src={`${getBaseUrl()}/images/tutorials/refresh.svg`}
+ />
+ </div>
+ <div>
+ <p className="little-spacer-bottom">
+ <strong>{translate('onboarding.tutorial.ci_outro.refresh')}</strong>
+ </p>
+ <p>{translate('onboarding.tutorial.ci_outro.refresh.why')}</p>
+ </div>
</div>
</div>
- <div className="display-flex-row huge-spacer-bottom">
- <div>
- <img
- alt="" // Should be ignored by screen readers
- className="big-spacer-right"
- width={30}
- src={`${getBaseUrl()}/images/tutorials/refresh.svg`}
- />
- </div>
- <div>
- <p className="little-spacer-bottom">
- <strong>{translate('onboarding.tutorial.ci_outro.refresh')}</strong>
- </p>
- <p>{translate('onboarding.tutorial.ci_outro.refresh.why')}</p>
- </div>
+ <div className="huge-spacer-bottom huge-spacer-top big-padded-top text-muted display-flex-center display-flex-justify-center">
+ <i className="spinner spacer-right" />
+ {translate('onboarding.tutorial.ci_outro.waiting_for_fist_analysis')}
</div>
- </div>
+ </>
);
}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2021 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import * as React from 'react';
+import { translate } from 'sonar-ui-common/helpers/l10n';
+import { AlmKeys } from '../../../types/alm-settings';
+import AllSet from './AllSet';
+import Step from './Step';
+
+export interface AllSetStepProps {
+ alm: AlmKeys;
+ open: boolean;
+ stepNumber: number;
+}
+
+export default function AllSetStep(props: AllSetStepProps) {
+ const { alm, open, stepNumber } = props;
+ return (
+ <Step
+ finished={false}
+ open={open}
+ renderForm={() => (
+ <div className="boxed-group-inner">
+ <AllSet alm={alm} />
+ </div>
+ )}
+ stepNumber={stepNumber}
+ stepTitle={translate('onboarding.tutorial.ci_outro.all_set.title')}
+ />
+ );
+}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2021 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+import { shallow } from 'enzyme';
+import * as React from 'react';
+import { AlmKeys } from '../../../../types/alm-settings';
+import { renderStepContent } from '../../test-utils';
+import AllSetStep, { AllSetStepProps } from '../AllSetStep';
+
+it('should render correctly', () => {
+ expect(shallowRender()).toMatchSnapshot('default');
+ expect(renderStepContent(shallowRender())).toMatchSnapshot('step content');
+});
+
+function shallowRender(props: Partial<AllSetStepProps> = {}) {
+ return shallow<AllSetStepProps>(
+ <AllSetStep alm={AlmKeys.Azure} open={true} stepNumber={1} {...props} />
+ );
+}
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`should render correctly 1`] = `
-<div
- className="abs-width-600"
->
- <p
- className="big-spacer-bottom"
- >
- <SentenceWithHighlights
- highlightKeys={
- Array [
- "all_set",
- ]
- }
- translationKey="onboarding.tutorial.ci_outro.all_set"
- />
- </p>
+<Fragment>
<div
- className="display-flex-row big-spacer-bottom"
+ className="abs-width-600"
>
- <div>
- <img
- alt=""
- className="big-spacer-right"
- src="/images/tutorials/commit.svg"
- width={30}
+ <p
+ className="big-spacer-bottom"
+ >
+ <SentenceWithHighlights
+ highlightKeys={
+ Array [
+ "all_set",
+ ]
+ }
+ translationKey="onboarding.tutorial.ci_outro.all_set"
/>
+ </p>
+ <div
+ className="display-flex-row big-spacer-bottom"
+ >
+ <div>
+ <img
+ alt=""
+ className="big-spacer-right"
+ src="/images/tutorials/commit.svg"
+ width={30}
+ />
+ </div>
+ <div>
+ <p
+ className="little-spacer-bottom"
+ >
+ <strong>
+ onboarding.tutorial.ci_outro.commit
+ </strong>
+ </p>
+ <p>
+ onboarding.tutorial.ci_outro.commit.why.github
+ </p>
+ </div>
</div>
- <div>
- <p
- className="little-spacer-bottom"
- >
- <strong>
- onboarding.tutorial.ci_outro.commit
- </strong>
- </p>
- <p>
- onboarding.tutorial.ci_outro.commit.why.github
- </p>
+ <div
+ className="display-flex-row"
+ >
+ <div>
+ <img
+ alt=""
+ className="big-spacer-right"
+ src="/images/tutorials/refresh.svg"
+ width={30}
+ />
+ </div>
+ <div>
+ <p
+ className="little-spacer-bottom"
+ >
+ <strong>
+ onboarding.tutorial.ci_outro.refresh
+ </strong>
+ </p>
+ <p>
+ onboarding.tutorial.ci_outro.refresh.why
+ </p>
+ </div>
</div>
</div>
<div
- className="display-flex-row huge-spacer-bottom"
+ className="huge-spacer-bottom huge-spacer-top big-padded-top text-muted display-flex-center display-flex-justify-center"
>
- <div>
- <img
- alt=""
- className="big-spacer-right"
- src="/images/tutorials/refresh.svg"
- width={30}
- />
- </div>
- <div>
- <p
- className="little-spacer-bottom"
- >
- <strong>
- onboarding.tutorial.ci_outro.refresh
- </strong>
- </p>
- <p>
- onboarding.tutorial.ci_outro.refresh.why
- </p>
- </div>
+ <i
+ className="spinner spacer-right"
+ />
+ onboarding.tutorial.ci_outro.waiting_for_fist_analysis
</div>
-</div>
+</Fragment>
`;
exports[`should render correctly: without branch 1`] = `
-<div
- className="abs-width-600"
->
- <p
- className="big-spacer-bottom"
- >
- <SentenceWithHighlights
- highlightKeys={
- Array [
- "all_set",
- ]
- }
- translationKey="onboarding.tutorial.ci_outro.all_set"
- />
- </p>
+<Fragment>
<div
- className="display-flex-row big-spacer-bottom"
+ className="abs-width-600"
>
- <div>
- <img
- alt=""
- className="big-spacer-right"
- src="/images/tutorials/commit.svg"
- width={30}
+ <p
+ className="big-spacer-bottom"
+ >
+ <SentenceWithHighlights
+ highlightKeys={
+ Array [
+ "all_set",
+ ]
+ }
+ translationKey="onboarding.tutorial.ci_outro.all_set"
/>
+ </p>
+ <div
+ className="display-flex-row big-spacer-bottom"
+ >
+ <div>
+ <img
+ alt=""
+ className="big-spacer-right"
+ src="/images/tutorials/commit.svg"
+ width={30}
+ />
+ </div>
+ <div>
+ <p
+ className="little-spacer-bottom"
+ >
+ <strong>
+ onboarding.tutorial.ci_outro.commit
+ </strong>
+ </p>
+ <p>
+ onboarding.tutorial.ci_outro.commit.why.no_branches
+ </p>
+ </div>
</div>
- <div>
- <p
- className="little-spacer-bottom"
- >
- <strong>
- onboarding.tutorial.ci_outro.commit
- </strong>
- </p>
- <p>
- onboarding.tutorial.ci_outro.commit.why.no_branches
- </p>
+ <div
+ className="display-flex-row"
+ >
+ <div>
+ <img
+ alt=""
+ className="big-spacer-right"
+ src="/images/tutorials/refresh.svg"
+ width={30}
+ />
+ </div>
+ <div>
+ <p
+ className="little-spacer-bottom"
+ >
+ <strong>
+ onboarding.tutorial.ci_outro.refresh
+ </strong>
+ </p>
+ <p>
+ onboarding.tutorial.ci_outro.refresh.why
+ </p>
+ </div>
</div>
</div>
<div
- className="display-flex-row huge-spacer-bottom"
+ className="huge-spacer-bottom huge-spacer-top big-padded-top text-muted display-flex-center display-flex-justify-center"
>
- <div>
- <img
- alt=""
- className="big-spacer-right"
- src="/images/tutorials/refresh.svg"
- width={30}
- />
- </div>
- <div>
- <p
- className="little-spacer-bottom"
- >
- <strong>
- onboarding.tutorial.ci_outro.refresh
- </strong>
- </p>
- <p>
- onboarding.tutorial.ci_outro.refresh.why
- </p>
- </div>
+ <i
+ className="spinner spacer-right"
+ />
+ onboarding.tutorial.ci_outro.waiting_for_fist_analysis
</div>
-</div>
+</Fragment>
`;
--- /dev/null
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`should render correctly: default 1`] = `
+<Step
+ finished={false}
+ open={true}
+ renderForm={[Function]}
+ stepNumber={1}
+ stepTitle="onboarding.tutorial.ci_outro.all_set.title"
+/>
+`;
+
+exports[`should render correctly: step content 1`] = `
+<div
+ className="boxed-group-inner"
+>
+ <Connect(withAppState(AllSet))
+ alm="azure"
+ />
+</div>
+`;
AlmSettingsInstance,
ProjectAlmBindingResponse
} from '../../../types/alm-settings';
+import AllSetStep from '../components/AllSetStep';
import JenkinsfileStep from './JenkinsfileStep';
import MultiBranchPipelineStep from './MultiBranchPipelineStep';
import PipelineStep from './PipelineStep';
PreRequisites = 1,
MultiBranchPipeline = 2,
Webhook = 3,
- Jenkinsfile = 4
+ Jenkinsfile = 4,
+ AllSet = 5
}
const USER_SETTING_SKIP_BITBUCKET_PREREQS = 'tutorials.jenkins.skipBitbucketPreReqs';
/>
<JenkinsfileStep
- alm={alm}
component={component}
baseUrl={baseUrl}
+ finished={step > Steps.Jenkinsfile}
+ onDone={() => setStep(Steps.AllSet)}
+ onOpen={() => setStep(Steps.Jenkinsfile)}
open={step === Steps.Jenkinsfile}
/>
+
+ <AllSetStep alm={alm} open={step === Steps.AllSet} stepNumber={4} />
</>
)}
</>
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
+import { Button } from 'sonar-ui-common/components/controls/buttons';
+import ChevronRightIcon from 'sonar-ui-common/components/icons/ChevronRightIcon';
import { Alert } from 'sonar-ui-common/components/ui/Alert';
import { translate } from 'sonar-ui-common/helpers/l10n';
-import { AlmKeys } from '../../../types/alm-settings';
+import { rawSizes } from '../../../app/theme';
import { withCLanguageFeature } from '../../hoc/withCLanguageFeature';
-import AllSet from '../components/AllSet';
import RenderOptions from '../components/RenderOptions';
import Step from '../components/Step';
import { BuildTools } from '../types';
import Other from './buildtool-steps/Other';
export interface JenkinsfileStepProps {
- alm: AlmKeys;
baseUrl: string;
component: T.Component;
hasCLanguageFeature: boolean;
+ finished: boolean;
+ onDone: () => void;
+ onOpen: () => void;
open: boolean;
}
};
export function JenkinsfileStep(props: JenkinsfileStepProps) {
- const { alm, component, hasCLanguageFeature, baseUrl, open } = props;
+ const { component, hasCLanguageFeature, baseUrl, finished, open } = props;
const [buildTool, setBuildTool] = React.useState<BuildTools>();
const buildToolOrder = Object.keys(BUILDTOOL_COMPONENT_MAP);
if (!hasCLanguageFeature) {
}
return (
<Step
- finished={false}
+ finished={finished}
+ onOpen={props.onOpen}
open={open}
renderForm={() => (
<div className="boxed-group-inner">
React.createElement(BUILDTOOL_COMPONENT_MAP[buildTool], { component, baseUrl })}
</ol>
{buildTool !== undefined && (
- <>
- <hr className="huge-spacer-top huge-spacer-bottom" />
- <AllSet alm={alm} />
- </>
+ <Button className="big-spacer-top" onClick={props.onDone}>
+ {translate('tutorials.finish')}
+ <ChevronRightIcon size={rawSizes.baseFontSizeRaw} />
+ </Button>
)}
</div>
)}
*/
import * as React from 'react';
import { Button } from 'sonar-ui-common/components/controls/buttons';
+import ChevronRightIcon from 'sonar-ui-common/components/icons/ChevronRightIcon';
import { translate } from 'sonar-ui-common/helpers/l10n';
+import { rawSizes } from '../../../app/theme';
import {
AlmKeys,
AlmSettingsInstance,
/>
</li>
</ol>
- <Button onClick={props.onDone}>{translate('continue')}</Button>
+ <Button className="big-spacer-top" onClick={props.onDone}>
+ {translate('continue')}
+ <ChevronRightIcon size={rawSizes.baseFontSizeRaw} />
+ </Button>
</div>
)}
stepNumber={1}
*/
import * as React from 'react';
import { Button } from 'sonar-ui-common/components/controls/buttons';
+import ChevronRightIcon from 'sonar-ui-common/components/icons/ChevronRightIcon';
import { translate } from 'sonar-ui-common/helpers/l10n';
+import { rawSizes } from '../../../app/theme';
import { AlmKeys } from '../../../types/alm-settings';
import LabelActionPair from '../components/LabelActionPair';
import SentenceWithHighlights from '../components/SentenceWithHighlights';
/>
</li>
</ol>
- <Button onClick={props.onDone}>{translate('continue')}</Button>
+ <Button className="big-spacer-top" onClick={props.onDone}>
+ {translate('continue')}
+ <ChevronRightIcon size={rawSizes.baseFontSizeRaw} />
+ </Button>
</div>
)}
stepNumber={1}
import { Link } from 'react-router';
import { Button } from 'sonar-ui-common/components/controls/buttons';
import Checkbox from 'sonar-ui-common/components/controls/Checkbox';
+import ChevronRightIcon from 'sonar-ui-common/components/icons/ChevronRightIcon';
+import { Alert } from 'sonar-ui-common/components/ui/Alert';
import { translate } from 'sonar-ui-common/helpers/l10n';
+import { rawSizes } from '../../../app/theme';
import { AlmKeys } from '../../../types/alm-settings';
import SentenceWithHighlights from '../components/SentenceWithHighlights';
import Step from '../components/Step';
open={open}
renderForm={() => (
<div className="boxed-group-inner">
- <p className="big-spacer-bottom">
+ <Alert className="big-spacer-bottom" variant="warning">
<SentenceWithHighlights
- highlightKeys={['must_have']}
+ highlightKeys={['installed', 'configured']}
translationKey="onboarding.tutorial.with.jenkins.prereqs.intro"
/>
- </p>
+ </Alert>
<ul className="list-styled big-spacer-bottom">
{branchesEnabled && (
<li>
onCheck={props.onChangeSkipNextTime}
/>
</p>
- <Button onClick={props.onDone}>
+ <Button className="big-spacer-top" onClick={props.onDone}>
{translate('onboarding.tutorial.with.jenkins.prereqs.done')}
+ <ChevronRightIcon size={rawSizes.baseFontSizeRaw} />
</Button>
</div>
)}
import * as React from 'react';
import { FormattedMessage } from 'react-intl';
import { Button, ButtonLink } from 'sonar-ui-common/components/controls/buttons';
+import ChevronRightIcon from 'sonar-ui-common/components/icons/ChevronRightIcon';
import { translate } from 'sonar-ui-common/helpers/l10n';
+import { rawSizes } from '../../../app/theme';
import {
AlmKeys,
AlmSettingsInstance,
/>
</p>
<ol className="list-styled">{renderAlmSpecificInstructions(props)}</ol>
- <Button onClick={props.onDone}>{translate('continue')}</Button>
+ <Button className="big-spacer-top" onClick={props.onDone}>
+ {translate('continue')}
+ <ChevronRightIcon size={rawSizes.baseFontSizeRaw} />
+ </Button>
</div>
)}
stepNumber={2}
) : (
<SentenceWithHighlights
highlightKeys={['create']}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ translationKey="onboarding.tutorial.with.jenkins.webhook.bitbucket.step3"
/>
)}
</li>
</li>
<li>
<SentenceWithHighlights
- highlightKeys={['create']}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ highlightKeys={['add_webhook']}
+ translationKey="onboarding.tutorial.with.jenkins.webhook.github.step3"
/>
</li>
</>
import { shallow, ShallowWrapper } from 'enzyme';
import * as React from 'react';
import { mockComponent } from '../../../../helpers/testMocks';
-import { AlmKeys } from '../../../../types/alm-settings';
import RenderOptions from '../../components/RenderOptions';
import Step from '../../components/Step';
import { renderStepContent } from '../../test-utils';
function shallowRender(props: Partial<JenkinsfileStepProps> = {}) {
return shallow<JenkinsfileStepProps>(
<JenkinsfileStep
- alm={AlmKeys.BitbucketCloud}
baseUrl="nice_url"
component={mockComponent()}
hasCLanguageFeature={false}
+ finished={false}
+ onDone={jest.fn()}
+ onOpen={jest.fn()}
open={true}
{...props}
/>
}
/>
<Connect(withCLanguageFeature(JenkinsfileStep))
- alm="bitbucket"
baseUrl=""
component={
Object {
"tags": Array [],
}
}
+ finished={false}
+ onDone={[Function]}
+ onOpen={[Function]}
+ open={false}
+ />
+ <AllSetStep
+ alm="bitbucket"
open={false}
+ stepNumber={4}
/>
</Fragment>
`;
}
/>
<Connect(withCLanguageFeature(JenkinsfileStep))
- alm="bitbucket"
baseUrl=""
component={
Object {
"tags": Array [],
}
}
+ finished={false}
+ onDone={[Function]}
+ onOpen={[Function]}
+ open={false}
+ />
+ <AllSetStep
+ alm="bitbucket"
open={false}
+ stepNumber={4}
/>
</Fragment>
`;
}
/>
</ol>
- <React.Fragment>
- <hr
- className="huge-spacer-top huge-spacer-bottom"
- />
- <Connect(withAppState(AllSet))
- alm="bitbucketcloud"
+ <Button
+ className="big-spacer-top"
+ onClick={[MockFunction]}
+ >
+ tutorials.finish
+ <ChevronRightIcon
+ size={13}
/>
- </React.Fragment>
+ </Button>
</div>
`;
}
/>
</ol>
- <React.Fragment>
- <hr
- className="huge-spacer-top huge-spacer-bottom"
- />
- <Connect(withAppState(AllSet))
- alm="bitbucketcloud"
+ <Button
+ className="big-spacer-top"
+ onClick={[MockFunction]}
+ >
+ tutorials.finish
+ <ChevronRightIcon
+ size={13}
/>
- </React.Fragment>
+ </Button>
</div>
`;
}
/>
</ol>
- <React.Fragment>
- <hr
- className="huge-spacer-top huge-spacer-bottom"
- />
- <Connect(withAppState(AllSet))
- alm="bitbucketcloud"
+ <Button
+ className="big-spacer-top"
+ onClick={[MockFunction]}
+ >
+ tutorials.finish
+ <ChevronRightIcon
+ size={13}
/>
- </React.Fragment>
+ </Button>
</div>
`;
}
/>
</ol>
- <React.Fragment>
- <hr
- className="huge-spacer-top huge-spacer-bottom"
- />
- <Connect(withAppState(AllSet))
- alm="bitbucketcloud"
+ <Button
+ className="big-spacer-top"
+ onClick={[MockFunction]}
+ >
+ tutorials.finish
+ <ChevronRightIcon
+ size={13}
/>
- </React.Fragment>
+ </Button>
</div>
`;
exports[`should render correctly: Step wrapper 1`] = `
<Step
finished={false}
+ onOpen={[MockFunction]}
open={true}
renderForm={[Function]}
stepNumber={3}
exports[`should render correctly: Step wrapper with C 1`] = `
<Step
finished={false}
+ onOpen={[MockFunction]}
open={true}
renderForm={[Function]}
stepNumber={3}
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
</li>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
<div
className="boxed-group-inner"
>
- <p
+ <Alert
className="big-spacer-bottom"
+ variant="warning"
>
<SentenceWithHighlights
highlightKeys={
Array [
- "must_have",
+ "installed",
+ "configured",
]
}
translationKey="onboarding.tutorial.with.jenkins.prereqs.intro"
/>
- </p>
+ </Alert>
<ul
className="list-styled big-spacer-bottom"
>
/>
</p>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
onboarding.tutorial.with.jenkins.prereqs.done
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
<div
className="boxed-group-inner"
>
- <p
+ <Alert
className="big-spacer-bottom"
+ variant="warning"
>
<SentenceWithHighlights
highlightKeys={
Array [
- "must_have",
+ "installed",
+ "configured",
]
}
translationKey="onboarding.tutorial.with.jenkins.prereqs.intro"
/>
- </p>
+ </Alert>
<ul
className="list-styled big-spacer-bottom"
>
/>
</p>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
onboarding.tutorial.with.jenkins.prereqs.done
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
<div
className="boxed-group-inner"
>
- <p
+ <Alert
className="big-spacer-bottom"
+ variant="warning"
>
<SentenceWithHighlights
highlightKeys={
Array [
- "must_have",
+ "installed",
+ "configured",
]
}
translationKey="onboarding.tutorial.with.jenkins.prereqs.intro"
/>
- </p>
+ </Alert>
<ul
className="list-styled big-spacer-bottom"
>
/>
</p>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
onboarding.tutorial.with.jenkins.prereqs.done
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
className="list-styled"
/>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
/>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
/>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
/>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
/>
</ol>
<Button
+ className="big-spacer-top"
onClick={[MockFunction]}
>
continue
+ <ChevronRightIcon
+ size={13}
+ />
</Button>
</div>
`;
"create",
]
}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ translationKey="onboarding.tutorial.with.jenkins.webhook.bitbucket.step3"
/>
</li>
</Fragment>
"create",
]
}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ translationKey="onboarding.tutorial.with.jenkins.webhook.bitbucket.step3"
/>
</li>
</Fragment>
"create",
]
}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ translationKey="onboarding.tutorial.with.jenkins.webhook.bitbucket.step3"
/>
</li>
</Fragment>
<SentenceWithHighlights
highlightKeys={
Array [
- "create",
+ "add_webhook",
]
}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ translationKey="onboarding.tutorial.with.jenkins.webhook.github.step3"
/>
</li>
</Fragment>
<SentenceWithHighlights
highlightKeys={
Array [
- "create",
+ "add_webhook",
]
}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ translationKey="onboarding.tutorial.with.jenkins.webhook.github.step3"
/>
</li>
</Fragment>
<SentenceWithHighlights
highlightKeys={
Array [
- "create",
+ "add_webhook",
]
}
- translationKey="onboarding.tutorial.with.jenkins.webhook.step3"
+ translationKey="onboarding.tutorial.with.jenkins.webhook.github.step3"
/>
</li>
</Fragment>
onboarding.analysis.dotnetcore.global.text.path=Make sure dotnet tools folder is in your path. See dotnet global tools documentation for more information.
onboarding.tutorial.return_to_list=Choose another option
+onboarding.tutorial.ci_outro.all_set.title=You're all set!
onboarding.tutorial.ci_outro.all_set.sentence={all_set} and ready to improve the quality and security of your code!
onboarding.tutorial.ci_outro.all_set.sentence.all_set=You're all set
onboarding.tutorial.ci_outro.commit=Commit and push your code to start the analysis.
onboarding.tutorial.ci_outro.commit.why.azure=Each new push you make on your branches or pull requests will trigger a new analysis in SonarQube. We will decorate pull requests directly on Azure for you.
onboarding.tutorial.ci_outro.commit.why.no_branches=Each new push you make on your main branch will trigger a new analysis in SonarQube.
onboarding.tutorial.ci_outro.refresh=This page will then refresh with your analysis results.
-onboarding.tutorial.ci_outro.refresh.why=If the page doesn't refresh after a while, please double-check the analysis configuration.
+onboarding.tutorial.ci_outro.refresh.why=If the page doesn't refresh after a while, please double-check the analysis configuration, and check your logs.
+onboarding.tutorial.ci_outro.waiting_for_fist_analysis=Waiting for the first analysis to come in...
onboarding.tutorial.other.project_key.sentence=Create a {file} file in your repository and paste the following code:
onboarding.tutorial.cfamilly.compilation_database_info=If you have trouble using the build wrapper, you can try using a {link}
onboarding.tutorial.cfamilly.compilation_database_info.link=compilation database
onboarding.tutorial.with.jenkins.title=Analyze your project with Jenkins
onboarding.tutorial.with.jenkins.alm_selection.title=Select your DevOps platform
onboarding.tutorial.with.jenkins.prereqs.title=Prerequisites
-onboarding.tutorial.with.jenkins.prereqs.intro.sentence=To run your project analyses with Jenkins, the following plugins {must_have}
-onboarding.tutorial.with.jenkins.prereqs.intro.sentence.must_have=must be installed and configured:
+onboarding.tutorial.with.jenkins.prereqs.intro.sentence=To run your project analyses with Jenkins, the following plugins must be {installed} and {configured}.
+onboarding.tutorial.with.jenkins.prereqs.intro.sentence.installed=installed
+onboarding.tutorial.with.jenkins.prereqs.intro.sentence.configured=configured
onboarding.tutorial.with.jenkins.prereqs.plugins.branch_source.bitbucket=Bitbucket Branch Source plugin for Jenkins - version 2.7 or later
onboarding.tutorial.with.jenkins.prereqs.plugins.branch_source.bitbucketcloud=Bitbucket Branch Source plugin for Jenkins - version 2.7 or later
onboarding.tutorial.with.jenkins.prereqs.plugins.branch_source.github=GitHub Branch Source plugin for Jenkins - version 2.7.1 or later
onboarding.tutorial.with.jenkins.webhook.github.step2.pr=Pull Requests
onboarding.tutorial.with.jenkins.webhook.gitlab.step2.repo=Push events
onboarding.tutorial.with.jenkins.webhook.gitlab.step2.mr=Merge request events
-onboarding.tutorial.with.jenkins.webhook.step3.sentence=Click {create}.
-onboarding.tutorial.with.jenkins.webhook.step3.sentence.create=Create
+onboarding.tutorial.with.jenkins.webhook.github.step3.sentence=Click {add_webhook}.
+onboarding.tutorial.with.jenkins.webhook.github.step3.sentence.add_webhook=Add webhook
onboarding.tutorial.with.jenkins.webhook.bitbucketcloud.step3.sentence=Click {save}.
onboarding.tutorial.with.jenkins.webhook.bitbucketcloud.step3.sentence.save=Save
+onboarding.tutorial.with.jenkins.webhook.bitbucket.step3.sentence=Click {create}.
+onboarding.tutorial.with.jenkins.webhook.bitbucket.step3.sentence.create=Create
onboarding.tutorial.with.jenkins.webhook.gitlab.step3.sentence=Click {add_webhook}.
onboarding.tutorial.with.jenkins.webhook.gitlab.step3.sentence.add_webhook=Add webhook
onboarding.tutorial.with.jenkins.jenkinsfile.title=Create a Jenkinsfile