diff --git a/.codebuild/run_android_modelgen_e2e_test.yml b/.codebuild/run_android_modelgen_e2e_test.yml index e4a4b3ab..0cbc8c1d 100644 --- a/.codebuild/run_android_modelgen_e2e_test.yml +++ b/.codebuild/run_android_modelgen_e2e_test.yml @@ -18,8 +18,7 @@ phases: # Review SDK licenses - yes | sudo sdkmanager --licenses # Accept SDK licenses - - yes | sudo sdkmanager --licenses - - codebuild-breakpoint + - yes | sdkmanager --licenses build: commands: diff --git a/packages/amplify-codegen-e2e-core/src/init/android.ts b/packages/amplify-codegen-e2e-core/src/init/android.ts index 5ba7c135..237d1377 100644 --- a/packages/amplify-codegen-e2e-core/src/init/android.ts +++ b/packages/amplify-codegen-e2e-core/src/init/android.ts @@ -26,3 +26,23 @@ export function androidBuild(cwd: string, settings: Object = {}): Promise }); }); } + +export function acceptLicenses(cwd: string, settings: Object = {}): Promise { + return new Promise((resolve, reject) => { + const s = { ...defaultSettings, ...settings }; + + const chain = spawn('sdkmanager', ['--licenses'], { + cwd, + stripColors: true, + disableCIDetection: s.disableCIDetection + }).wait("Review licenses that have not been accepted (y/N)?").sendLine("y"); + + chain.run((err: Error) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); +} diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-android.test.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-android.test.ts index ae6dc637..e6d49559 100644 --- a/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-android.test.ts +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/build-app-android.test.ts @@ -5,6 +5,7 @@ import { updateApiSchemaWithText, generateModels, androidBuild, + acceptLicenses } from '@aws-amplify/amplify-codegen-e2e-core'; const { schemas } = require('@aws-amplify/graphql-schema-test-library'); import { existsSync, writeFileSync, readdirSync, rmSync } from 'fs'; @@ -24,11 +25,11 @@ describe('build app - Android', () => { }); afterAll(async () => { - rmSync(path.join(projectRoot, 'amplify'), { recursive: true, force: true }); + // rmSync(path.join(projectRoot, 'amplify'), { recursive: true, force: true }); }); afterEach(() => { - rmSync(path.join(projectRoot, modelDir), { recursive: true, force: true }); + // rmSync(path.join(projectRoot, modelDir), { recursive: true, force: true }); }); Object.entries(schemas).forEach(([schemaName, schema]) => { @@ -39,6 +40,7 @@ describe('build app - Android', () => { const schemaText = `input AMPLIFY { globalAuthRule: AuthRule = { allow: public } }\n${schema.sdl}`; updateApiSchemaWithText(projectRoot, apiName, schemaText); await generateModels(projectRoot); + await acceptLicenses(projectRoot); await androidBuild(projectRoot, { ...config }); }; if (skip.has(schemaName)) { @@ -48,11 +50,11 @@ describe('build app - Android', () => { } }); - it('fails build with syntax error', async () => { - // @ts-ignore - updateApiSchemaWithText(projectRoot, apiName, Object.values(schemas)[0].sdl); - await generateModels(projectRoot); - await writeFileSync(path.join(projectRoot, modelDir, 'AmplifyModelProvider.java'), 'foo\nbar'); - await expect(androidBuild(projectRoot, { ...config })).rejects.toThrowError(); - }); + // it('fails build with syntax error', async () => { + // // @ts-ignore + // updateApiSchemaWithText(projectRoot, apiName, Object.values(schemas)[0].sdl); + // await generateModels(projectRoot); + // await writeFileSync(path.join(projectRoot, modelDir, 'AmplifyModelProvider.java'), 'foo\nbar'); + // await expect(androidBuild(projectRoot, { ...config })).rejects.toThrowError(); + // }); });