Skip to content

Commit

Permalink
feat: dont open urls when CLI is running in CI
Browse files Browse the repository at this point in the history
Updated the CLI not to open browser window when running in CI mode

re #5973
  • Loading branch information
yuth committed Jan 28, 2021
1 parent 39dfd27 commit 6d98cce
Show file tree
Hide file tree
Showing 38 changed files with 99 additions and 81 deletions.
4 changes: 2 additions & 2 deletions packages/amplify-category-analytics/lib/kinesis-helper.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const open = require('open');
const { utils } = require('amplify-cli-core');
const constants = require('./constants');

function console(context) {
Expand All @@ -10,7 +10,7 @@ function console(context) {
if (kinesisApp) {
const { Id } = kinesisApp;
const consoleUrl = `https://${region}.console.aws.amazon.com/kinesis/home?region=${region}#/streams/details?streamName=${Id}&tab=details`;
open(consoleUrl, { wait: false });
utils.openIfNotCI(consoleUrl, { wait: false });
} else {
context.print.error('Kinesis is not enabled in the cloud.');
}
Expand Down
4 changes: 2 additions & 2 deletions packages/amplify-category-analytics/lib/pinpoint-helper.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const open = require('open');
const { utils } = require('amplify-cli-core');
const constants = require('./constants');

function console(context) {
Expand All @@ -10,7 +10,7 @@ function console(context) {
if (pinpointApp) {
const { Id, Region } = pinpointApp;
const consoleUrl = `https://${Region}.console.aws.amazon.com/pinpoint/home/?region=${Region}#/apps/${Id}/analytics/overview`;
open(consoleUrl, { wait: false });
utils.openIfNotCI(consoleUrl, { wait: false });
} else {
context.print.error('Neither analytics nor notifications is enabled in the cloud.');
}
Expand Down
1 change: 0 additions & 1 deletion packages/amplify-category-analytics/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"amplify-cli-core": "1.14.1",
"fs-extra": "^8.1.0",
"inquirer": "^7.3.3",
"open": "^7.0.0",
"uuid": "^3.4.0"
}
}
1 change: 0 additions & 1 deletion packages/amplify-category-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
"graphql-relational-schema-transformer": "2.16.1",
"graphql-transformer-core": "6.25.1",
"inquirer": "^7.3.3",
"open": "^7.0.0",
"ora": "^4.0.3",
"uuid": "^3.4.0"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ import path from 'path';
import fs from 'fs-extra';
import os from 'os';
import uuid from 'uuid';
import open from 'open';
import { rootAssetDir } from '../aws-constants';
import { checkForPathOverlap, validatePathName, formatCFNPathParamsForExpressJs } from '../utils/rest-api-path-utils';
import { ResourceDoesNotExistError, exitOnNextTick, $TSContext, stateManager } from 'amplify-cli-core';
import { ResourceDoesNotExistError, exitOnNextTick, $TSContext, stateManager, utils } from 'amplify-cli-core';

// keep in sync with ServiceName in amplify-category-function, but probably it will not change
const FunctionServiceNameLambdaFunction = 'Lambda';
Expand Down Expand Up @@ -862,7 +861,7 @@ export const openConsole = async (context: $TSContext) => {
}
}

open(url, { wait: false });
utils.openIfNotCI(url, { wait: false });
} else {
context.print.error('There are no REST APIs pushed to the cloud');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { dataStoreLearnMore } from '../sync-conflict-handler-assets/syncAssets';
import inquirer from 'inquirer';
import fs from 'fs-extra';
import path from 'path';
import open from 'open';
import { rootAssetDir } from '../aws-constants';
import { collectDirectivesByTypeNames, readProjectConfiguration, ConflictHandlerType } from 'graphql-transformer-core';
import { category } from '../../../category-constants';
Expand All @@ -19,6 +18,7 @@ import {
exitOnNextTick,
stateManager,
$TSContext,
utils,
} from 'amplify-cli-core';

const serviceName = 'AppSync';
Expand Down Expand Up @@ -129,7 +129,7 @@ export const openConsole = async (context: $TSContext) => {
}
}

open(url, { wait: false });
utils.openIfNotCI(url, { wait: false });
} else {
context.print.error('AppSync API is not pushed in the cloud.');
}
Expand Down
1 change: 0 additions & 1 deletion packages/amplify-category-auth/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
"inquirer": "^7.3.3",
"lodash": "^4.17.19",
"mime-types": "^2.1.26",
"open": "^7.0.0",
"ora": "^4.0.3",
"promise-sequential": "^1.1.1",
"uuid": "^3.4.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
const inquirer = require('inquirer');
const open = require('open');
const _ = require('lodash');
const { stateManager } = require('amplify-cli-core');
const { stateManager, utils } = require('amplify-cli-core');
const { getAuthResourceName } = require('../../utils/getAuthResourceName');
const { copyCfnTemplate, saveResourceParameters } = require('./utils/synthesize-resources');
const { ENV_SPECIFIC_PARAMS, AmplifyAdmin, UserPool, IdentityPool, BothPools, privateKeys } = require('./constants');
Expand Down Expand Up @@ -371,20 +370,20 @@ async function openAdminUI(context, appId, region) {
const providerPlugin = require(context.amplify.getProviderPlugins(context).awscloudformation);
const baseUrl = providerPlugin.adminBackendMap[region].amplifyAdminUrl;
const adminUrl = `${baseUrl}/admin/${appId}/${envName}/auth`;
await open(adminUrl, { wait: false });
await utils.openIfNotCI(adminUrl, { wait: false });
context.print.success(adminUrl);
}

async function openUserPoolConsole(context, region, userPoolId) {
const userPoolConsoleUrl = `https://${region}.console.aws.amazon.com/cognito/users/?region=${region}#/pool/${userPoolId}/details`;
await open(userPoolConsoleUrl, { wait: false });
await utils.openIfNotCI(userPoolConsoleUrl, { wait: false });
context.print.info('User Pool console:');
context.print.success(userPoolConsoleUrl);
}

async function openIdentityPoolConsole(context, region, identityPoolId) {
const identityPoolConsoleUrl = `https://${region}.console.aws.amazon.com/cognito/pool/?region=${region}&id=${identityPoolId}`;
await open(identityPoolConsoleUrl, { wait: false });
await utils.openIfNotCI(identityPoolConsoleUrl, { wait: false });
context.print.info('Identity Pool console:');
context.print.success(identityPoolConsoleUrl);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { openConsole, isMockable } from '../../../provider-utils/awscloudformation';
import { ServiceName } from '../../../provider-utils/awscloudformation/utils/constants';
import open from 'open';
import { utils } from 'amplify-cli-core';

jest.mock('open');
jest.mock('amplify-cli-core');

describe('awscloudformation function provider', () => {
it('opens the correct service console', () => {
Expand All @@ -18,7 +18,7 @@ describe('awscloudformation function provider', () => {
},
};
openConsole(contextStub, ServiceName.LambdaFunction);
const openMock = open as any;
const openMock = utils.openIfNotCI as any;
expect(openMock.mock.calls.length).toBe(1);
expect(openMock.mock.calls[0][0]).toMatchSnapshot();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ import _ from 'lodash';
import { merge, convertToComplete, isComplete } from './utils/funcParamsUtils';
import fs from 'fs-extra';
import path from 'path';
import open from 'open';
import { IsMockableResponse } from '../..';
import { JSONUtilities } from 'amplify-cli-core';
import { JSONUtilities, utils } from 'amplify-cli-core';

/**
* Entry point for creating a new function
Expand Down Expand Up @@ -402,7 +401,7 @@ export function openConsole(context, service: ServiceName) {
const region = amplifyMeta.providers[provider].Region;
const selection = service === ServiceName.LambdaFunction ? 'functions' : 'layers';
const url = `https://${region}.console.aws.amazon.com/lambda/home?region=${region}#/${selection}`;
open(url, { wait: false });
utils.openIfNotCI(url, { wait: false });
}

export function isMockable(service: ServiceName): IsMockableResponse {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
jest.mock('fs-extra');
jest.mock('open');
jest.mock('amplify-cli-core');

jest.mock('../../../lib/S3AndCloudFront/configuration-manager');
jest.mock('../../../lib/S3AndCloudFront/helpers/file-uploader');
jest.mock('../../../lib/S3AndCloudFront/helpers/cloudfront-manager');

const fs = require('fs-extra');
const path = require('path');
const open = require('open');
const { utils } = require('amplify-cli-core');
const inquirer = require('inquirer');
const mockirer = require('mockirer');

Expand All @@ -20,8 +21,6 @@ const internalParametersContents = require('../../../lib/S3AndCloudFront/paramet
const mockTemplate = require('../../../__mocks__/mockTemplate');
const mockParameters = require('../../../__mocks__/mockParameters');

const serviceName = 'S3AndCloudFront';
const providerPlugin = 'awscloudformation';
const templateFileName = 'template.json';
const parametersFileName = 'parameters.json';

Expand Down Expand Up @@ -101,6 +100,7 @@ describe('s3IndexModule', () => {
options: {},
},
};

beforeAll(() => {
mockirer(inquirer, mockAnswers);
fs.ensureDirSync = jest.fn();
Expand Down Expand Up @@ -154,12 +154,12 @@ describe('s3IndexModule', () => {
await s3IndexModule.publish(mockContext, { distributionDirPath: 'dist' });
expect(fileUPloader.run).toBeCalled();
expect(cloudFrontManager.invalidateCloudFront).toBeCalled();
expect(open).toBeCalled();
expect(utils.openIfNotCI).toBeCalled();
});

test('console', async () => {
await s3IndexModule.console(mockContext);
expect(open).toBeCalled();
expect(utils.openIfNotCI).toBeCalled();
});

test('migrate', async () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
const fs = require('fs-extra');
const inquirer = require('inquirer');
const path = require('path');
const open = require('open');
const chalk = require('chalk');
const { utils } = require('amplify-cli-core');
const configManager = require('./configuration-manager');
const fileUPloader = require('./helpers/file-uploader');
const cloudFrontManager = require('./helpers/cloudfront-manager');
Expand Down Expand Up @@ -124,7 +124,7 @@ function publish(context, args) {
const { WebsiteURL } = context.exeInfo.serviceMeta.output;
context.print.info('Your app is published successfully.');
context.print.info(chalk.green(WebsiteURL));
open(WebsiteURL, { wait: false });
utils.openIfNotCI(WebsiteURL, { wait: false });
}
})
.catch(e => {
Expand All @@ -137,7 +137,7 @@ function console(context) {
const { HostingBucketName: bucket, Region: region } = amplifyMeta[constants.CategoryName][serviceName].output;
const consoleUrl = `https://s3.console.aws.amazon.com/s3/buckets/${bucket}/?region=${region}&tab=overview`;
context.print.info(chalk.green(consoleUrl));
open(consoleUrl, { wait: false });
utils.openIfNotCI(consoleUrl, { wait: false });
}

async function migrate(context) {
Expand Down
2 changes: 1 addition & 1 deletion packages/amplify-category-hosting/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@
"test": "jest --coverage"
},
"dependencies": {
"amplify-cli-core": "1.14.1",
"chalk": "^3.0.0",
"fs-extra": "^8.1.0",
"inquirer": "^7.3.3",
"mime-types": "^2.1.26",
"minimatch": "^3.0.4",
"moment": "^2.24.0",
"open": "^7.0.0",
"ora": "^4.0.3",
"promise-sequential": "^1.1.1"
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const open = require('open');
const ora = require('ora');
const inquirer = require('inquirer');
const { utils } = require('amplify-cli-core');

const constants = require('./constants');
const authHelper = require('./auth-helper');
Expand Down Expand Up @@ -240,7 +240,7 @@ function console(context) {
if (pinpointApp) {
const { Id, Region } = pinpointApp;
const consoleUrl = `https://${Region}.console.aws.amazon.com/pinpoint/home/?region=${Region}#/apps/${Id}/settings`;
open(consoleUrl, { wait: false });
utils.openIfNotCI(consoleUrl, { wait: false });
} else {
context.print.error('Neither notifications nor analytics is enabled in the cloud.');
}
Expand Down
1 change: 0 additions & 1 deletion packages/amplify-category-notifications/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
"dependencies": {
"fs-extra": "^8.1.0",
"inquirer": "^7.3.3",
"open": "^7.0.0",
"ora": "^4.0.3",
"promise-sequential": "^1.1.1"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/amplify-category-predictions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
"aws"
],
"dependencies": {
"amplify-cli-core": "1.14.1",
"aws-sdk": "^2.765.0",
"chalk": "^3.0.0",
"fs-extra": "^8.1.0",
"inquirer": "^7.3.3",
"open": "^7.0.0",
"uuid": "^3.4.0"
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import open from 'open';

const path = require('path');
const chalk = require('chalk');
const { NotImplementedError, ResourceDoesNotExistError, exitOnNextTick } = require('amplify-cli-core');
const { NotImplementedError, ResourceDoesNotExistError, exitOnNextTick, utils } = require('amplify-cli-core');
const parametersFileName = 'parameters.json';
const prefixForAdminTrigger = 'protected/predictions/index-faces/admin';

Expand Down Expand Up @@ -57,7 +55,7 @@ async function console(context, resourceObj, amplifyMeta) {

async function openEndpointDetails(context, region, endpointName) {
const endpointConsoleUrl = `https://${region}.console.aws.amazon.com/sagemaker/home?region=${region}#/endpoints/${endpointName}`;
await open(endpointConsoleUrl, { wait: false });
await utils.openIfNotCI(endpointConsoleUrl, { wait: false });
context.print.info('Endpoint Console:');
context.print.success(endpointConsoleUrl);
}
Expand Down Expand Up @@ -123,7 +121,7 @@ async function openRekognitionUploadUrl(context, bucketName, region, folderPolic
? `https://s3.console.aws.amazon.com/s3/buckets/${bucketName}/${prefixForAdminTrigger}/admin/?region=${region}`
: `https://s3.console.aws.amazon.com/s3/buckets/${bucketName}/${prefixForAdminTrigger}/?region=${region}`;
if (!printOnlyURL) {
await open(URL, { wait: false });
await utils.openIfNotCI(URL, { wait: false });
}
context.print.info(
chalk`Rekognition endpoint to upload Images: {blue.underline ${URL}} (Amazon Rekognition only supports uploading PNG and JPEG files)`,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import open from 'open';
import inferAssets from '../assets/inferQuestions';
import getAllDefaults from '../default-values/infer-defaults';
import regionMapper from '../assets/regionMapping';
import { ResourceAlreadyExistsError, ResourceDoesNotExistError, exitOnNextTick } from 'amplify-cli-core';
import { ResourceAlreadyExistsError, ResourceDoesNotExistError, exitOnNextTick, utils } from 'amplify-cli-core';
const inquirer = require('inquirer');
const path = require('path');
const fs = require('fs-extra');
Expand Down Expand Up @@ -235,7 +234,7 @@ async function getEndpoints(context, questionObj, params) {

async function createEndpoint(context, defaultValues) {
const endpointConsoleUrl = `https://${defaultValues.region}.console.aws.amazon.com/sagemaker/home?region=${defaultValues.region}#/endpoints/create`;
await open(endpointConsoleUrl, { wait: false });
await utils.openIfNotCI(endpointConsoleUrl, { wait: false });
context.print.info('SageMaker Console:');
context.print.success(endpointConsoleUrl);
await inquirer.prompt({
Expand Down
4 changes: 2 additions & 2 deletions packages/amplify-category-xr/lib/xr-manager.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const fs = require('fs-extra');
const path = require('path');
const inquirer = require('inquirer');
const open = require('open');
const chalk = require('chalk');
const { URL } = require('url');

const constants = require('./constants');
const authHelper = require('./auth-helper');
const { utils } = require('amplify-cli-core');

const SUMERIAN_CONSOLE_URL = 'https://console.aws.amazon.com/sumerian/home/start';

Expand Down Expand Up @@ -235,7 +235,7 @@ async function remove(context) {

function console(context) {
context.print.info(chalk.green(SUMERIAN_CONSOLE_URL));
open(SUMERIAN_CONSOLE_URL, { wait: false });
utils.openIfNotCI(SUMERIAN_CONSOLE_URL, { wait: false });
}

function getProjectNameFromPath(urlPath) {
Expand Down
4 changes: 2 additions & 2 deletions packages/amplify-category-xr/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
"test-watch": "jest --watch"
},
"dependencies": {
"amplify-cli-core": "1.14.1",
"chalk": "^3.0.0",
"fs-extra": "^8.1.0",
"inquirer": "^7.3.3",
"open": "^7.0.0"
"inquirer": "^7.3.3"
},
"jest": {
"collectCoverage": true,
Expand Down
4 changes: 3 additions & 1 deletion packages/amplify-cli-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@
"dependencies": {
"ajv": "^6.12.3",
"amplify-cli-logger": "1.1.0",
"ci-info":"^2.0.0",
"dotenv": "^8.2.0",
"fs-extra": "^8.1.0",
"hjson": "^3.2.1",
"lodash": "^4.17.19"
"lodash": "^4.17.19",
"open": "^7.3.1"
},
"devDependencies": {
"@types/fs-extra": "^8.0.1",
Expand Down
Loading

0 comments on commit 6d98cce

Please sign in to comment.