diff --git a/.eslintrc.js b/.eslintrc.js index 521071dd93a..2447cd03f22 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -46,6 +46,7 @@ module.exports = { files: [ '.eslintrc.js', '.prettierrc.js', + 'bin/*.js', 'packages/-build-infra/src/**/*.js', 'packages/*/ember-cli-build.js', 'packages/*/index.js', diff --git a/.tmp b/.tmp deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.travis.yml b/.travis.yml index a214704721f..4c8f84afdfc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -118,6 +118,7 @@ before_install: install: - yarn install + - node ./bin/packages-for-commit.js script: - yarn test:try-one $EMBER_TRY_SCENARIO --skip-cleanup diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4d575d04a4b..680eea399a4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,290 +4,283 @@ # https://aka.ms/yaml trigger: -- master -- beta -- release + - master + - beta + - release jobs: -- job: Lint + - job: Lint - pool: - vmImage: 'macOS-10.14' - - steps: - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing + pool: + vmImage: 'macOS-10.14' - - script: | - yarn - yarn lint:features - yarn lint:js - displayName: 'Lint' + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing -- job: Basic_Ember_Data_tests - dependsOn: Lint + - script: | + yarn + yarn lint:features + yarn lint:js + displayName: 'Lint' + + - job: Basic_Ember_Data_tests + dependsOn: Lint + + pool: + vmImage: 'macOS-10.14' - pool: - vmImage: 'macOS-10.14' + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + yarn + brew update + brew cask install google-chrome + + - script: | + yarn test + displayName: 'Basic Tests' + + - job: Ember_Data_builds_tests + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + brew update + brew cask install google-chrome + yarn + + - script: | + yarn test:enabled-in-progress-features + displayName: 'In progress features' + + - script: | + yarn test:production + displayName: 'Production' - steps: - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - yarn - brew update - brew cask install google-chrome - - - script: | - yarn test - displayName: 'Basic Tests' - - -- job: Ember_Data_builds_tests - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'macOS-10.14' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - brew update - brew cask install google-chrome - yarn - - - script: | - yarn test:enabled-in-progress-features - displayName: 'In progress features' - - - script: | - yarn test:production - displayName: 'Production' - - - script: | - TARGET_IE11=true yarn test - displayName: 'Max transpilation Tests' - - - script: | - yarn test:node - displayName: 'Node Tests' - -- job: Windows_tests - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'windows-2019' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - yarn - displayName: 'Yarn install' - - - script: | - yarn test - displayName: 'Basic Tests' - - - script: | - yarn test:enabled-in-progress-features - displayName: 'In progress features' - - - script: | - yarn test:production - displayName: 'Production' - - -- job: Floating_dependencies - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'macOS-10.14' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - brew update - brew cask install google-chrome - yarn install --no-lockfile --non-interactive - - - script: | - yarn test - displayName: 'Basic Tests' - -- job: Ember_LTS_tests - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'macOS-10.14' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - brew update - brew cask install google-chrome - yarn - - - script: | - yarn test:try-one ember-lts-3.4 - displayName: 'Ember LTS test 3.4' - - - script: | - yarn test:try-one ember-lts-3.8 - displayName: 'Ember LTS test 3.8' - - - script: | - yarn test:try-one ember-release - displayName: 'Ember Release' - - - script: | - yarn test:try-one ember-beta - displayName: 'Ember Beta' - - - script: | - yarn test:try-one ember-canary - displayName: 'Ember Canary' - -- job: External_Partner_tests_ilios - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'macOS-10.14' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - brew update - brew cask install firefox - yarn - - - script: | - yarn test-external:ilios-frontend - displayName: 'External: ilios-frontend' - -- job: External_Partner_tests_travis - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'macOS-10.14' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - brew update - brew cask install google-chrome - brew cask install firefox - yarn - - - script: | - yarn test-external:travis-web - displayName: 'External: travis-web' - -- job: External_Partner_tests_ember_observer - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'macOS-10.14' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - brew update - brew cask install google-chrome - brew cask install firefox - yarn - - - script: | - yarn test-external:ember-observer - displayName: 'External: ember-observer' - - -- job: External_Partner_tests_other - dependsOn: Basic_Ember_Data_tests - - pool: - vmImage: 'macOS-10.14' - - steps: - - - task: NodeTool@0 - displayName: Node install - inputs: - versionSpec: '10.x' # The version we're installing - - - script: | - brew update - brew cask install google-chrome - brew cask install firefox - yarn - - - script: | - yarn test-external:storefront - displayName: 'External: storefront' - -# - script: | -# yarn test-external:factory-guy -# displayName: 'External: factory-guy' - - - script: | - yarn test-external:ember-resource-metadata - displayName: 'External: ember-resource-metadata' - - - script: | - yarn test-external:ember-data-relationship-tracker - displayName: 'External: ember-data-relationship-tracker' - - - script: | - yarn test-external:model-fragments - displayName: 'External: model-fragments' - - - script: | - yarn test-external:emberaddons.com - displayName: 'External: emberaddons.com' - - - script: | - yarn test-external:ember-data-change-tracker - displayName: 'External: ember-data-change-tracker' - - - script: | - yarn test-external:ember-m3 - displayName: 'External: ember-m3' \ No newline at end of file + - script: | + TARGET_IE11=true yarn test + displayName: 'Max transpilation Tests' + + - script: | + yarn test:node + displayName: 'Node Tests' + + - job: Windows_tests + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'windows-2019' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + yarn + displayName: 'Yarn install' + + - script: | + yarn test + displayName: 'Basic Tests' + + - script: | + yarn test:enabled-in-progress-features + displayName: 'In progress features' + + - script: | + yarn test:production + displayName: 'Production' + + - job: Floating_dependencies + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + brew update + brew cask install google-chrome + yarn install --no-lockfile --non-interactive + + - script: | + yarn test + displayName: 'Basic Tests' + + - job: Ember_LTS_tests + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + brew update + brew cask install google-chrome + yarn + + - script: | + yarn test:try-one ember-lts-3.4 + displayName: 'Ember LTS test 3.4' + + - script: | + yarn test:try-one ember-lts-3.8 + displayName: 'Ember LTS test 3.8' + + - script: | + yarn test:try-one ember-release + displayName: 'Ember Release' + + - script: | + yarn test:try-one ember-beta + displayName: 'Ember Beta' + + - script: | + yarn test:try-one ember-canary + displayName: 'Ember Canary' + + - job: External_Partner_tests_ilios + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + brew update + brew cask install firefox + yarn + node ./bin/packages-for-commit.js + + - script: | + yarn test-external:ilios-frontend + displayName: 'External: ilios-frontend' + + - job: External_Partner_tests_travis + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + brew update + brew cask install google-chrome + brew cask install firefox + yarn + node ./bin/packages-for-commit.js + + - script: | + yarn test-external:travis-web + displayName: 'External: travis-web' + + - job: External_Partner_tests_ember_observer + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + brew update + brew cask install google-chrome + brew cask install firefox + yarn + node ./bin/packages-for-commit.js + + - script: | + yarn test-external:ember-observer + displayName: 'External: ember-observer' + + - job: External_Partner_tests_other + dependsOn: Basic_Ember_Data_tests + + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + displayName: Node install + inputs: + versionSpec: '10.x' # The version we're installing + + - script: | + brew update + brew cask install google-chrome + brew cask install firefox + yarn + node ./bin/packages-for-commit.js + + - script: | + yarn test-external:storefront + displayName: 'External: storefront' + + # - script: | + # yarn test-external:factory-guy + # displayName: 'External: factory-guy' + + - script: | + yarn test-external:ember-resource-metadata + displayName: 'External: ember-resource-metadata' + + - script: | + yarn test-external:ember-data-relationship-tracker + displayName: 'External: ember-data-relationship-tracker' + + - script: | + yarn test-external:model-fragments + displayName: 'External: model-fragments' + + - script: | + yarn test-external:emberaddons.com + displayName: 'External: emberaddons.com' + + - script: | + yarn test-external:ember-data-change-tracker + displayName: 'External: ember-data-change-tracker' + + - script: | + yarn test-external:ember-m3 + displayName: 'External: ember-m3' diff --git a/bin/-tarball-info.js b/bin/-tarball-info.js new file mode 100644 index 00000000000..1750dc03417 --- /dev/null +++ b/bin/-tarball-info.js @@ -0,0 +1,124 @@ +'use strict'; + +/* + This file generates meta information about what packages + are included in the project and the tarballs we would produce + for them were we to pack them using packages-for-commit. + + It exports that meta-information alongside a util helper + that can be used to insert the locations of our tarballs + into any package.json + + Example Package Meta: + + Given a project named `data` located in the folder `projects` + containing a package named `@ember-data/-example` + located at `projects/data/packages/-example` + with a `package.json` specifying a version of `3.0.0` + + e.g. + + /projects + /data + /packages + /-example + /package.json + + We would generate meta looking like the following: + + { + // the path to the directory for the package + location: "/path/to/projects/data/packages/-example", + + // the location of the package.json file for the package + fileLocation: "/path/to/projects/data/packages/some-package-directory/package.json", + + // the directory name of the package + localName: "-example", + + // the file location a generated tarball for this package would be placed + tarballLocation: "/path/to/projects/__tarball-cache/ember-data--example-3.0.0.tgz", + + // useful for making edits to add tarball paths to the contents + packageInfo: , + + // useful for restoring original state of a package.json after edits + originalPackageInfo: , + } + + We export this info for all packages from this module as `PackageInfos` + + Additionally, we export a util `insertTarballsToPackageJson(pathToPackageJson)` + + This util will discover any dependencies or devDependencies of the given + package.json that match the package names of the packges in PackageInfos + and rewrite the file replacing their version with the file path of the + tarball we would generate. + + E.g. + { + dependencies: { + "@ember-data/-example": "3.0.0" + } + } + + would become: + + { + dependencies: { + "@ember-data/-example": "file:/path/to/projects/__tarball-cache/ember-data--example-3.0.0.tgz" + } + } +*/ + +/* eslint-disable no-console, node/no-extraneous-require, node/no-unpublished-require */ +const fs = require('fs'); +const path = require('path'); + +const projectRoot = path.resolve(__dirname, '../'); +// we share this for the build +const tarballDir = path.join(projectRoot, '../__tarball-cache'); +const packagesDir = path.join(projectRoot, './packages'); +const packages = fs.readdirSync(packagesDir); +const OurPackages = {}; + +function convertPackageNameToTarballName(str) { + str = str.replace('@', ''); + str = str.replace('/', '-'); + return str; +} + +packages.forEach(localName => { + const pkgDir = path.join(packagesDir, localName); + const pkgPath = path.join(pkgDir, 'package.json'); + const pkgInfo = require(pkgPath); + const tarballName = `${convertPackageNameToTarballName(pkgInfo.name)}-${pkgInfo.version}.tgz`; + OurPackages[pkgInfo.name] = { + location: pkgDir, + fileLocation: pkgPath, + localName: localName, + tarballLocation: path.join(tarballDir, tarballName), + packageInfo: pkgInfo, + originalPackageInfo: fs.readFileSync(pkgPath), + }; +}); + +const AllPackages = Object.keys(OurPackages); + +function insertTarballsToPackageJson(fileLocation) { + const pkgInfo = require(fileLocation); + AllPackages.forEach(packageName => { + const pkg = OurPackages[packageName]; + if (pkgInfo.dependencies && pkgInfo.dependencies[packageName] !== undefined) { + pkgInfo.dependencies[packageName] = `file:${pkg.tarballLocation}`; + } else if (pkgInfo.devDependencies && pkgInfo.devDependencies[packageName] !== undefined) { + pkgInfo.devDependencies[packageName] = `file:${pkg.tarballLocation}`; + } + }); + fs.writeFileSync(fileLocation, JSON.stringify(pkgInfo, null, 2)); +} + +module.exports = { + PackageInfos: OurPackages, + insertTarballsToPackageJson, +}; diff --git a/bin/packages-for-commit.js b/bin/packages-for-commit.js new file mode 100644 index 00000000000..c724f07921a --- /dev/null +++ b/bin/packages-for-commit.js @@ -0,0 +1,60 @@ +#!/usr/bin/env node + +/* + This script generates tarballs for the current state of each package + in the project, placing them into a cache one level above the project. + + This is useful for being able to test a specific commit against another + project without publishing the commit to a registry. + + The tarballs produced will reference each other appropriately. For instance + if `@ember-data/store` has a dependency on `@ember-data/-build-infra` the + tarball for `@ember-data/store` will have a package.json file whose version + of `@ember-data/-build-infra` is the tarball for the commit for that package. +*/ + +'use strict'; +/* eslint-disable no-console, node/no-extraneous-require, node/no-unpublished-require */ +const fs = require('fs'); +const path = require('path'); +const { shellSync } = require('execa'); +// apparently violates no-extraneous require? /shrug +const debug = require('debug')('test-external'); +const chalk = require('chalk'); + +const projectRoot = path.resolve(__dirname, '../'); +// we share this for the build +const tarballDir = path.join(projectRoot, '../__tarball-cache'); +const OurPackages = require('./-tarball-info').PackageInfos; +const insertTarballsToPackageJson = require('./-tarball-info').insertTarballsToPackageJson; + +function execWithLog(command, force) { + debug(chalk.cyan('Executing: ') + chalk.yellow(command)); + if (debug.enabled || force) { + return shellSync(command, { stdio: [0, 1, 2] }); + } + + return shellSync(command); +} + +if (!fs.existsSync(tarballDir)) { + debug(`Ensuring Tarball Cache at: ${tarballDir}`); + fs.mkdirSync(tarballDir); +} else { + debug(`Tarball Cache Exists at: ${tarballDir}`); +} + +const AllPackages = Object.keys(OurPackages); +AllPackages.forEach(packageName => { + const pkg = OurPackages[packageName]; + + insertTarballsToPackageJson(pkg.fileLocation); + + execWithLog(` + cd ${tarballDir}; + npm pack ${pkg.location} + `); + + // cleanup + fs.writeFileSync(pkg.fileLocation, pkg.originalPackageInfo); +}); diff --git a/packages/-build-infra/bin/test-external-partner-project.js b/bin/test-external-partner-project.js similarity index 69% rename from packages/-build-infra/bin/test-external-partner-project.js rename to bin/test-external-partner-project.js index 1498a05b5f7..27736432444 100755 --- a/packages/-build-infra/bin/test-external-partner-project.js +++ b/bin/test-external-partner-project.js @@ -8,14 +8,17 @@ const { shellSync } = require('execa'); // apparently violates no-extraneous require? /shrug const debug = require('debug')('test-external'); const rimraf = require('rimraf'); +const chalk = require('chalk'); const projectRoot = path.resolve(__dirname, '../'); const externalProjectName = process.argv[2]; const gitUrl = process.argv[3]; const skipSmokeTest = process.argv[4] && process.argv[4] === '--skip-smoke-test'; -const cachePath = '../../../__external-test-cache'; +// we share this for the build +const cachePath = '../__external-test-cache'; const tempDir = path.join(projectRoot, cachePath); const projectTempDir = path.join(tempDir, externalProjectName); +const insertTarballsToPackageJson = require('./-tarball-info').insertTarballsToPackageJson; if (!gitUrl) { throw new Error( @@ -32,11 +35,12 @@ console.log( ); function execExternal(command, force) { - command = `cd ${cachePath}/${externalProjectName} && ${command}`; + command = `cd ${projectTempDir} && ${command}`; return execWithLog(command, force); } function execWithLog(command, force) { + debug(chalk.cyan('Executing: ') + chalk.yellow(command)); if (debug.enabled || force) { return shellSync(command, { stdio: [0, 1, 2] }); } @@ -47,16 +51,20 @@ function execWithLog(command, force) { if (!fs.existsSync(tempDir)) { debug(`Ensuring Cache Root at: ${tempDir}`); fs.mkdirSync(tempDir); +} else { + debug(`Cache Root Exists at: ${tempDir}`); } if (fs.existsSync(projectTempDir)) { debug(`Cleaning Cache at: ${projectTempDir}`); rimraf.sync(projectTempDir); +} else { + debug(`No pre-existing cache present at: ${projectTempDir}`); } // install the project try { - execWithLog(`git clone --depth=1 ${gitUrl} ${cachePath}/${externalProjectName}`); + execWithLog(`git clone --depth=1 ${gitUrl} ${projectTempDir}`); } catch (e) { debug(e); throw new Error( @@ -65,42 +73,7 @@ try { } const useYarn = fs.existsSync(path.join(projectTempDir, 'yarn.lock')); - -const npmLink = ` -npm link; -cd ../adapter; -npm link @ember-data/-build-infra; -npm link; -cd ../store; -npm link @ember-data/-build-infra; -npm link @ember-data/adapter; -npm link; -cd ../serializer; -npm link @ember-data/-build-infra; -npm link @ember-data/store; -npm link; -cd ../model; -npm link @ember-data/-build-infra; -npm link @ember-data/store; -npm link; -cd ../-ember-data; -npm link @ember-data/-build-infra; -npm link @ember-data/adapter; -npm link @ember-data/store; -npm link @ember-data/serializer; -npm link @ember-data/model; -npm link; -`; -// install project dependencies and link our local version of ember-data -try { - execWithLog(`${useYarn ? 'yarn link' : npmLink}`); - execExternal(`${useYarn ? 'yarn' : 'npm install'}`); -} catch (e) { - debug(e); - throw new Error( - `Unable to complete install of dependencies for external project ${externalProjectName}` - ); -} +const packageJsonLocation = path.join(projectTempDir, 'package.json'); // run project tests console.log(`Running tests for ${externalProjectName}`); @@ -113,6 +86,14 @@ try { debug('Skipping Smoke Test'); } else { debug('Running Smoke Test'); + try { + execExternal(`${useYarn ? 'yarn install' : 'npm install'}`); + } catch (e) { + debug(e); + throw new Error( + `Unable to complete install of dependencies for external project ${externalProjectName}` + ); + } execExternal(`ember test`, true); } } catch (e) { @@ -120,12 +101,17 @@ try { } try { - execExternal(`${useYarn ? 'yarn link ember-data' : 'npm link ember-data'}`); + debug('Preparing Package To Run Tests Against Commit'); + insertTarballsToPackageJson(packageJsonLocation); + // we must use npm because yarn fails to install + // the nested tarballs correctly (just as it fails to pack them correctly) + // we rimraf node_modules first because it was previously + // installed using yarn's resolution algorithm + execExternal(`rm -rf node_modules`); + execExternal(`npm install`); } catch (e) { debug(e); - throw new Error( - `Unable to \`${useYarn ? 'yarn' : 'npm'} link ember-data\` for ${externalProjectName}` - ); + throw new Error(`Unable to npm install tarballs for ember-data\` for ${externalProjectName}`); } try { diff --git a/package.json b/package.json index 7ce4e85872f..c2128f8bdca 100644 --- a/package.json +++ b/package.json @@ -16,17 +16,17 @@ "test:production": "yarn workspace ember-data test:production", "test:try-one": "yarn workspace ember-data test:try-one", "test:enabled-in-progress-features": "yarn workspace ember-data test --enable-in-progress", - "test-external:ember-m3": "test-external-partner ember-m3 https://github.com/hjdivad/ember-m3.git", - "test-external:ember-data-change-tracker": "test-external-partner ember-data-change-tracker https://github.com/danielspaniel/ember-data-change-tracker.git", - "test-external:emberaddons.com": "test-external-partner ember-cli-addon-search https://github.com/gcollazo/ember-cli-addon-search.git", - "test-external:model-fragments": "test-external-partner ember-data-model-fragments https://github.com/lytics/ember-data-model-fragments.git", - "test-external:ember-observer": "test-external-partner ember-observer https://github.com/emberobserver/client.git", - "test-external:travis-web": "test-external-partner travis-web https://github.com/travis-ci/travis-web.git", - "test-external:storefront": "test-external-partner storefront https://github.com/embermap/ember-data-storefront.git", - "test-external:factory-guy": "test-external-partner factory-guy https://github.com/danielspaniel/ember-data-factory-guy.git", - "test-external:ilios-frontend": "test-external-partner ilios-frontend https://github.com/ilios/frontend.git --skip-smoke-test", - "test-external:ember-resource-metadata": "test-external-partner ember-resource-metadata https://github.com/ef4/ember-resource-metadata.git", - "test-external:ember-data-relationship-tracker": "test-external-partner ember-data-relationship-tracker https://github.com/ef4/ember-data-relationship-tracker.git" + "test-external:ember-m3": "./bin/test-external-partner-project.js ember-m3 https://github.com/hjdivad/ember-m3.git", + "test-external:ember-data-change-tracker": "./bin/test-external-partner-project.js ember-data-change-tracker https://github.com/danielspaniel/ember-data-change-tracker.git", + "test-external:emberaddons.com": "./bin/test-external-partner-project.js ember-cli-addon-search https://github.com/gcollazo/ember-cli-addon-search.git", + "test-external:model-fragments": "./bin/test-external-partner-project.js ember-data-model-fragments https://github.com/lytics/ember-data-model-fragments.git", + "test-external:ember-observer": "./bin/test-external-partner-project.js ember-observer https://github.com/emberobserver/client.git", + "test-external:travis-web": "./bin/test-external-partner-project.js travis-web https://github.com/travis-ci/travis-web.git", + "test-external:storefront": "./bin/test-external-partner-project.js storefront https://github.com/embermap/ember-data-storefront.git", + "test-external:factory-guy": "./bin/test-external-partner-project.js factory-guy https://github.com/danielspaniel/ember-data-factory-guy.git", + "test-external:ilios-frontend": "./bin/test-external-partner-project.js ilios-frontend https://github.com/ilios/frontend.git --skip-smoke-test", + "test-external:ember-resource-metadata": "./bin/test-external-partner-project.js ember-resource-metadata https://github.com/ef4/ember-resource-metadata.git", + "test-external:ember-data-relationship-tracker": "./bin/test-external-partner-project.js ember-data-relationship-tracker https://github.com/ef4/ember-data-relationship-tracker.git" }, "devDependencies": { "@babel/plugin-transform-typescript": "^7.2.0", @@ -89,5 +89,9 @@ "rimraf": "^2.6.2", "rsvp": "^4.8.4", "typescript": "~3.4.3" + }, + "bin": { + "test-partner-project": "./bin/test-external-partner-project.js", + "prepare-local-packages": "./bin/packages-for-commit.js" } } diff --git a/packages/-build-infra/package.json b/packages/-build-infra/package.json index 9b1ba2b2f1b..705bbc3b79e 100644 --- a/packages/-build-infra/package.json +++ b/packages/-build-infra/package.json @@ -23,9 +23,6 @@ "npm-git-info": "^1.0.3", "silent-error": "^1.1.1" }, - "bin": { - "test-external-partner": "./bin/test-external-partner-project.js" - }, "engines": { "node": ">= 8.0.0" }