From f84ea5da72eb95e28bb6ef1b2df48f11fa45f354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Popovics=20Andr=C3=A1s?= Date: Mon, 22 Feb 2021 09:57:08 +0100 Subject: [PATCH] [AAE-4608] Use smartrunner version 2 and add SuperCache (workspaces + S3 combo)! (#6704) * [AAE-4608] Use smartrunner version 2 * Fix npm installing and do not depend on develop cache * Add Travis workspaces the simplest way * Add missing dependencies * Remove unnecessary npm install on lint * Fix travis indentation * Fix e2e missing adf packages * Trying to fix Travis * Remove debug information * Use Travis workspaces for smartrunner and built artefacts caching instead of S3 * Implement nuclear caching for node_modules * Quiet snyk running, since the log length kills Travis * Maybe with -q * Quieting snyk * Why displaying the added packages?????? * Fix S3 persister/retriever scripts * Restore back parallel build and lint, to gain 10 minutes --- .travis.yml | 108 +++++- e2e/protractor.conf.js | 18 +- e2e/smartrunner-factory.js | 14 + package-lock.json | 466 +++++++++++++------------ package.json | 5 +- scripts/ci/job_hooks/after_e2e.sh | 3 - scripts/ci/job_hooks/before_e2e.sh | 19 +- scripts/ci/job_hooks/before_install.sh | 52 ++- scripts/ci/job_hooks/install.sh | 32 ++ scripts/ci/utils/artifact-from-s3.sh | 18 +- scripts/ci/utils/artifact-to-s3.sh | 2 +- scripts/lint.sh | 5 - scripts/travis/build/build.sh | 2 - 13 files changed, 457 insertions(+), 287 deletions(-) create mode 100644 e2e/smartrunner-factory.js create mode 100755 scripts/ci/job_hooks/install.sh diff --git a/.travis.yml b/.travis.yml index 9b8a0a436b..64289f65a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,11 +9,15 @@ node_js: - '12.18.4' before_install: . ./scripts/ci/job_hooks/before_install.sh -install: - echo "no install" +install: ./scripts/ci/job_hooks/install.sh env: global: + - S3_DBP_PATH="s3://alfresco-travis-builds/adf" + - DEMO_SHELL_DIR="./dist/demo-shell" + - BUILT_LIBS_DIR="./lib/dist" + - NODE_MODULES_DIR="./node_modules" + - SMART_RUNNER_DIRECTORY=".protractor-smartrunner" #E2E VARIABLES - SAVE_SCREENSHOT=true - REDIRECT_URI=/ @@ -30,7 +34,8 @@ branches: - /.*beta.*/ stages: - - name: Lint & Build Dist & Release + - name: Setup + - name: "Lint & Build Dist & Release" if: tag IS blank - name: Check bundle if: type = push AND tag IS blank @@ -54,43 +59,73 @@ services: jobs: include: + # Setup ====================== + - stage: Setup + name: "Node modules cache preparation" + script: echo "Only here for setting up the shared node_modules" + workspaces: + create: + name: node_modules_cache + paths: + - "$NODE_MODULES_DIR" + use: node_modules_cache + # Run Only for any PR - - stage: Lint & Build Dist & Release + - stage: "Lint & Build Dist & Release" name: Build script: - ./scripts/travis/build/build.sh - ./scripts/travis/release/release-npm.sh - ./scripts/travis/release/release-docker.sh + workspaces: + create: + name: built_artefacts_cache + paths: + - "$DEMO_SHELL_DIR" + - "$BUILT_LIBS_DIR" + use: node_modules_cache - after_success: - - ./scripts/ci/utils/artifact-to-s3.sh -a ./dist/demo-shell -o "$S3_DBP_FOLDER/alfresco-demoshell.tar.bz2" - - ./scripts/ci/utils/artifact-to-s3.sh -a ./lib/dist -o "$S3_DBP_FOLDER/alfresco-libs.tar.bz2" - - - stage: Lint & Build Dist & Release - name: Lint - script: - - ./scripts/lint.sh + - stage: "Lint & Build Dist & Release" + name: "Lint" + script: ./scripts/lint.sh + workspaces: + use: node_modules_cache - stage: Unit test name: Unit test content script: ./scripts/travis/unit-test/content.sh + workspaces: + use: node_modules_cache + - stage: Unit test name: Unit test core extension demo script: ./scripts/travis/unit-test/core-extension.sh + workspaces: + use: node_modules_cache + - stage: Unit test name: Unit test process insights script: ./scripts/travis/unit-test/process.sh + workspaces: + use: node_modules_cache + - stage: Unit test name: Unit test process-cloud script: ./scripts/travis/unit-test/process-cloud.sh + workspaces: + use: node_modules_cache - stage: Trigger Alpha ADF child build name: Trigger Alpha ADF child build script: ./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GITHUB_TOKEN -v alpha + workspaces: + use: node_modules_cache - stage: Trigger Beta ADF child build name: Trigger Beta ADF child build script: ./scripts/travis/update/update-project.sh -p $TRAVIS_BUILD_NUMBER -t $GITHUB_TOKEN -v beta + workspaces: + use: node_modules_cache - stage: Release tag script: ./scripts/travis/release/git-tag.sh @@ -103,6 +138,15 @@ jobs: - ./scripts/ci/check-env/check-ps-env.sh || travis_terminate 1 script: ./scripts/travis/e2e/core-e2e.sh after_script: ./scripts/ci/job_hooks/after_e2e.sh + workspaces: + create: + name: smartrunner-cache-core + paths: + - "$SMART_RUNNER_DIRECTORY" + use: + - node_modules_cache + - built_artefacts_cache + - smartrunner-cache-core - stage: e2e Test name: content @@ -111,6 +155,15 @@ jobs: - ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1 script: ./scripts/travis/e2e/content-services-e2e.sh after_script: ./scripts/ci/job_hooks/after_e2e.sh + workspaces: + create: + name: smartrunner-cache-content + paths: + - "$SMART_RUNNER_DIRECTORY" + use: + - node_modules_cache + - built_artefacts_cache + - smartrunner-cache-content - stage: e2e Test name: search @@ -119,6 +172,15 @@ jobs: - ./scripts/ci/check-env/check-cs-env.sh || travis_terminate 1 script: ./scripts/travis/e2e/search-e2e.sh after_script: ./scripts/ci/job_hooks/after_e2e.sh + workspaces: + create: + name: smartrunner-cache-search + paths: + - "$SMART_RUNNER_DIRECTORY" + use: + - node_modules_cache + - built_artefacts_cache + - smartrunner-cache-search - stage: e2e Test name: process @@ -128,6 +190,15 @@ jobs: - ./scripts/ci/check-env/check-external-cs-env.sh || travis_terminate 1 script: ./scripts/travis/e2e/process-services-e2e.sh after_script: ./scripts/ci/job_hooks/after_e2e.sh + workspaces: + create: + name: smartrunner-cache-process + paths: + - "$SMART_RUNNER_DIRECTORY" + use: + - node_modules_cache + - built_artefacts_cache + - smartrunner-cache-process - stage: e2e Test name: process Cloud @@ -137,11 +208,22 @@ jobs: - ./scripts/ci/check-env/check-ps-cloud-env.sh || travis_terminate 1 script: ./scripts/travis/e2e/process-services-cloud-e2e.sh after_script: ./scripts/ci/job_hooks/after_e2e.sh + workspaces: + create: + name: smartrunner-cache-process-cloud + paths: + - "$SMART_RUNNER_DIRECTORY" + use: + - node_modules_cache + - built_artefacts_cache + - smartrunner-cache-process-cloud - stage: Check bundle script: - ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version) - ./scripts/travis/build/npm-check-bundles.sh -v ${ADF_VERSION} + workspaces: + use: node_modules_cache notifications: slack: @@ -156,6 +238,6 @@ notifications: - "Message: %{message}" cache: + npm: true directories: - - node_modules - tmp diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js index c74b02806c..b5600c9ff9 100644 --- a/e2e/protractor.conf.js +++ b/e2e/protractor.conf.js @@ -1,13 +1,13 @@ const {LocalStorageUtil, Logger} = require('@alfresco/adf-testing'); const path = require('path'); const {SpecReporter} = require('jasmine-spec-reporter'); -const retry = require('protractor-retry').retry; +const retry = require('protractor-retry-angular-cli').retry; const tsConfig = require('./tsconfig.e2e.json'); const testConfig = require('./test.config'); const RESOURCES = require('./util/resources'); -const SmartRunner = require('protractor-smartrunner'); const resolve = require('path').resolve; const fs = require('fs'); +const smartRunnerFactory = require('./smartrunner-factory'); const {uploadScreenshot} = require('./protractor/save-remote'); const argv = require('yargs').argv; @@ -166,9 +166,7 @@ exports.config = { includeStackTrace: true, print: () => { }, - ...SmartRunner.withOptionalExclusions( - resolve(__dirname, './protractor.excludes.json') - ) + ...(process.env.CI ? smartRunnerFactory.applyExclusionFilter() : {} ) }, /** @@ -200,11 +198,7 @@ exports.config = { async onPrepare() { if (process.env.CI) { retry.onPrepare(); - const repoHash = process.env.GIT_HASH || ''; - const outputDirectory = process.env.SMART_RUNNER_DIRECTORY; - console.log(`SmartRunner's repoHash: "${repoHash}"`); - console.log(`SmartRunner's outputDirectory: "${outputDirectory}"`); - SmartRunner.apply({outputDirectory, repoHash}); + smartRunnerFactory.getInstance().onPrepare(); } jasmine.DEFAULT_TIMEOUT_INTERVAL = TIMEOUT; @@ -282,7 +276,7 @@ exports.config = { }, - afterLaunch: async function () { + afterLaunch: async function (statusCode) { if (SAVE_SCREENSHOT) { console.log(`Save screenshot enabled`); @@ -299,7 +293,7 @@ exports.config = { console.log(`Save screenshot disabled`); } - return retry.afterLaunch(MAX_RETRIES); + return retry.afterLaunch(MAX_RETRIES, statusCode); } }; diff --git a/e2e/smartrunner-factory.js b/e2e/smartrunner-factory.js new file mode 100644 index 0000000000..5e9af4a872 --- /dev/null +++ b/e2e/smartrunner-factory.js @@ -0,0 +1,14 @@ +const SmartRunnerFactory = require('protractor-smartrunner').SmartRunnerFactory; +const resolve = require('path').resolve; + +const outputDirectory = process.env.SMART_RUNNER_DIRECTORY; +const repoHash = process.env.GIT_HASH; + +console.log(`SmartRunner's repoHash: "${repoHash}"`); +console.log(`SmartRunner's outputDirectory: "${outputDirectory}"`); + +module.exports = new SmartRunnerFactory({ + repoHash, + ...(outputDirectory ? { outputDirectory: resolve(__dirname, '..', outputDirectory) } : {}), + exclusionPath: resolve(__dirname, 'protractor.excludes.json') +}); diff --git a/package-lock.json b/package-lock.json index d26279c078..6d8cf73fba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8600,23 +8600,6 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "chai": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", - "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true, - "requires": { - "assertion-error": "^1.0.1", - "deep-eql": "^0.1.3", - "type-detect": "^1.0.0" - } - }, - "chai-as-promised": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-5.3.0.tgz", - "integrity": "sha1-CdekApCKpw39vq1T5YU/x50+8hw=", - "dev": true - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -8676,6 +8659,12 @@ "color-name": "^1.0.0" } }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, "child-process": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/child-process/-/child-process-1.0.2.tgz", @@ -10585,23 +10574,6 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", - "dev": true, - "requires": { - "type-detect": "0.1.1" - }, - "dependencies": { - "type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true - } - } - }, "deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", @@ -12819,6 +12791,12 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, "get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -19913,6 +19891,12 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, "pbkdf2": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", @@ -21327,199 +21311,101 @@ } } }, - "protractor-retry": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/protractor-retry/-/protractor-retry-1.2.13.tgz", - "integrity": "sha512-xKUuYhFt6mhvd5Zd6v3Tpua36xfAdLyPpbGZ1lLR0RChvbmKXqGXlfLyC5Uqey9/dkSGMxm2SQrrDYOfJhK/4w==", + "protractor-retry-angular-cli": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/protractor-retry-angular-cli/-/protractor-retry-angular-cli-2.0.2.tgz", + "integrity": "sha512-UcMOvjn4j7OE37VYXmWhKa3xODRaIC0nDpxxMlL1BjOLYiJJeHF0iyD7QVejFq9xrelyHO8kH441dU6h3foRzw==", "dev": true, "requires": { "array-unique": "~0.3.2", - "chai": "3.x", - "chai-as-promised": "5.x", - "debug": "^2.1.1", + "chai": "4.x", + "chai-as-promised": "7.x", + "cross-spawn": "^7.0.2", + "debug": "^4.1.1", "lodash": "^4.17.19", - "mkdirp": "^0.5.1", - "q": "^1.4.1", - "xml2js": "~0.4.17", - "yargs": "^15.4.1" + "mkdirp": "^1.0.3", + "q": "^1.5.1", + "xml2js": "~0.4.23", + "yargs": "^16.1.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "chai": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.0.tgz", + "integrity": "sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { + "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "isexe": "^2.0.0" } } } @@ -21564,9 +21450,9 @@ } }, "protractor-smartrunner": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/protractor-smartrunner/-/protractor-smartrunner-0.1.1.tgz", - "integrity": "sha512-t5L6AM2mRnpOEkg3Ib0C5pLGgWu2rOzjutF/UAEevBgwwil5M1m/E6bv/uUn+kAyImJJCCI000ssrz7JcVP/dw==", + "version": "2.0.0-beta6", + "resolved": "https://registry.npmjs.org/protractor-smartrunner/-/protractor-smartrunner-2.0.0-beta6.tgz", + "integrity": "sha512-VrHZtga960Yiyv0eea4sTWFz5wBWz55KYo0zTcVSNRSK6ZXF0uA+yElfeqJEwVHF+lEC+IZFpuSgHkD2rhQGxw==", "dev": true, "requires": { "filenamify": "4.1.0", @@ -27056,12 +26942,6 @@ "prelude-ls": "~1.1.2" } }, - "type-detect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", - "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", - "dev": true - }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -28059,6 +27939,150 @@ } } }, + "webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", diff --git a/package.json b/package.json index 681176e09c..d863210f73 100644 --- a/package.json +++ b/package.json @@ -160,9 +160,9 @@ "ng-packagr": "^10.1.2", "optimize-css-assets-webpack-plugin": "^5.0.4", "protractor": "^7.0.0", - "protractor-retry": "^1.2.9", + "protractor-retry-angular-cli": "^2.0.2", "protractor-screenshoter-plugin": "0.10.3", - "protractor-smartrunner": "^0.1.1", + "protractor-smartrunner": "^2.0.0-beta6", "remark": "^13.0.0", "remark-frontmatter": "^3.0.0", "rimraf": "^3.0.2", @@ -177,6 +177,7 @@ "typedoc": "^0.20.14", "typescript": "3.9.8", "unist-util-select": "^3.0.2", + "webdriver-manager": "12.1.8", "webpack-cli": "^3.3.12" }, "license": "Apache-2.0", diff --git a/scripts/ci/job_hooks/after_e2e.sh b/scripts/ci/job_hooks/after_e2e.sh index 0e6f14eeb4..2db6597e7a 100755 --- a/scripts/ci/job_hooks/after_e2e.sh +++ b/scripts/ci/job_hooks/after_e2e.sh @@ -1,6 +1,3 @@ #!/usr/bin/env bash -# Upload protractor-smartrunner artifact related to this particular job to S3 -./scripts/ci/utils/artifact-to-s3.sh -a "$SMART_RUNNER_DIRECTORY" -o "$S3_DBP_FOLDER/protractor-smartrunner-$TRAVIS_JOB_ID.tar.bz2" - ./node_modules/@alfresco/adf-cli/bin/adf-cli scan-env --host "$E2E_HOST" -u "$E2E_ADMIN_EMAIL_IDENTITY" -p "$E2E_ADMIN_PASSWORD_IDENTITY" diff --git a/scripts/ci/job_hooks/before_e2e.sh b/scripts/ci/job_hooks/before_e2e.sh index 81de5ddec4..8c98f1f8ff 100755 --- a/scripts/ci/job_hooks/before_e2e.sh +++ b/scripts/ci/job_hooks/before_e2e.sh @@ -1,11 +1,14 @@ #!/usr/bin/env bash +# TODO: This one needs to be cleaned up... Only fixing it like this, because for the current PR it is out of scope +# ======================================= +rm -rf ./node_modules/@alfresco/adf-cli/ && \ +mkdir -p ./node_modules/@alfresco/adf-cli/ && \ +cp -R ./lib/dist/cli/* ./node_modules/@alfresco/adf-cli/ + +rm -rf ./node_modules/@alfresco/adf-testing/ && \ +mkdir -p ./node_modules/@alfresco/adf-testing/ && \ +cp -R ./lib/dist/testing/* ./node_modules/@alfresco/adf-testing/ +# ======================================= + ./node_modules/@alfresco/adf-cli/bin/adf-cli scan-env --host "$E2E_HOST" -u "$E2E_ADMIN_EMAIL_IDENTITY" -p "$E2E_ADMIN_PASSWORD_IDENTITY" - -# Download built application artifact from S3 -./scripts/ci/utils/artifact-from-s3.sh -a "$S3_DBP_FOLDER/alfresco-demoshell.tar.bz2" -o "./dist/demo-shell" -./scripts/ci/utils/artifact-from-s3.sh -a "$S3_DBP_FOLDER/alfresco-libs.tar.bz2" -o "./lib/dist" - -# Download protractor-smartrunner artifact related to this particular job from S3, if exists -./scripts/ci/utils/artifact-from-s3.sh -a "$S3_DBP_FOLDER/protractor-smartrunner-$TRAVIS_JOB_ID.tar.bz2" -o "$SMART_RUNNER_DIRECTORY" - diff --git a/scripts/ci/job_hooks/before_install.sh b/scripts/ci/job_hooks/before_install.sh index b0108b67bd..a3018e8659 100755 --- a/scripts/ci/job_hooks/before_install.sh +++ b/scripts/ci/job_hooks/before_install.sh @@ -1,28 +1,52 @@ #!/usr/bin/env bash -pip install --user awscli +# =================================================================== +# In this hook-file define only dynamic-ish environmental variables. +# Put the static environment variables into the env.yml file +# Command executions or any other installation logic +# is supposed to be in the "install.sh" hook script. +# =================================================================== +PARENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )" # Settings for protractor-smartrunner ------------------------------------------------- -export SMART_RUNNER_DIRECTORY=".protractor-smartrunner" - - -export NODE_OPTIONS="--max_old_space_size=30000" export GIT_HASH=`git rev-parse HEAD` -echo "GIT_HASH: $GIT_HASH" -S3_DBP_PATH="s3://alfresco-travis-builds/adf" -export BASE_HASH="$(git merge-base origin/$BRANCH_NAME HEAD)" -export HEAD_HASH="HEAD" + +# Node settings +export NODE_OPTIONS="--max_old_space_size=30000" + +# Settings for Nx --------------------------------------------------------------------- +export BASE_HASH="$(git wmerge-base origin/$BRANCH_NAME HEAD)" +export HEAD_HASH=${TRAVIS_PULL_REQUEST_SHA:-${TRAVIS_COMMIT}} if [ "${TRAVIS_EVENT_TYPE}" == "push" ]; then - export S3_DBP_FOLDER="$S3_DBP_PATH/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID" + export S3_DBP_ROOT_FOLDER="$S3_DBP_PATH/$TRAVIS_BRANCH" elif [ "${TRAVIS_EVENT_TYPE}" == "pull_request" ]; then - export S3_DBP_FOLDER="$S3_DBP_PATH/$TRAVIS_PULL_REQUEST/$TRAVIS_BUILD_ID" + export S3_DBP_ROOT_FOLDER="$S3_DBP_PATH/$TRAVIS_PULL_REQUEST" export BASE_HASH="origin/$TRAVIS_BRANCH" elif [ "${TRAVIS_EVENT_TYPE}" == "cron" ]; then - export S3_DBP_FOLDER="$S3_DBP_PATH/cron/$TRAVIS_BUILD_ID" + export S3_DBP_ROOT_FOLDER="$S3_DBP_PATH/cron" else - export S3_DBP_FOLDER="$S3_DBP_PATH/api/$TRAVIS_BUILD_ID" + export S3_DBP_ROOT_FOLDER="$S3_DBP_PATH/api" fi -echo "BASE_HASH: $BASE_HASH" +export S3_DBP_FOLDER="$S3_DBP_ROOT_FOLDER/$TRAVIS_BUILD_ID" + +# Cache for node_modules +export NODE_VERSION=`node -v` +export PACKAGE_LOCK_SHASUM=`shasum ./package-lock.json | cut -f 1 -d " "` +# This can change regardless of package-lock.json, so we need to calculate with this one as well +export S3_NODE_MODULES_CACHE_ID=`echo $NODE_VERSION-$PACKAGE_LOCK_SHASUM | shasum | cut -f 1 -d " "` +export S3_NODE_MODULES_CACHE_PATH="$S3_DBP_PATH/cache/node_modules/$S3_NODE_MODULES_CACHE_ID.tar.bz2" + +echo "S3 DBP root folder: $S3_DBP_ROOT_FOLDER" echo "S3 DBP destination: $S3_DBP_FOLDER" +echo "========== Caching settings ==========" +echo "PACKAGE_LOCK_SHASUM: $PACKAGE_LOCK_SHASUM" +echo "NODE_VERSION: $NODE_VERSION" +echo "S3_NODE_MODULES_CACHE_ID: $S3_NODE_MODULES_CACHE_ID" +echo "S3_NODE_MODULES_CACHE_PATH: $S3_NODE_MODULES_CACHE_PATH" +echo "========== Nx settings ==========" +echo "GIT_HASH: $GIT_HASH" +echo "BASE_HASH: $BASE_HASH" +echo "HEAD_HASH: $HEAD_HASH" + diff --git a/scripts/ci/job_hooks/install.sh b/scripts/ci/job_hooks/install.sh new file mode 100755 index 0000000000..e868bfc810 --- /dev/null +++ b/scripts/ci/job_hooks/install.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# =================================================================== +# In this hook-file invoke commands and install dependencies. +# Envinomnent variable declarations are supposed to be +# in the "before_install.sh" hook script or in the env.yml file. +# =================================================================== + +# ========== AWS CLI ========== +echo "Installing awscli (silent install)" +pip install --user awscli -q + +# ========== Install node_modules or restore it from cloud cache ========== +# If the node_modules folder hasn't been restored from Travis workspace +if [[ ! -d $NODE_MODULES_DIR ]]; then + echo -e "\e[31mTravis Workspace doesn't contain $NODE_MODULES_DIR, checking S3...\e[0m" + + aws s3 ls $S3_NODE_MODULES_CACHE_PATH > /dev/null + + # If there is no cache uploaded yet to S3 + if [ "$?" -ne 0 ] + then + echo -e "\e[31mCache entry for current package-lock.json ($S3_NODE_MODULES_CACHE_ID) doesn't exist, doing installation now.\e[0m" + npm ci && scripts/ci/utils/artifact-to-s3.sh -a "$NODE_MODULES_DIR" -o "$S3_NODE_MODULES_CACHE_PATH" + # Otherwise the cache is already on S3 + else + echo -e "\e[32mCache entry for current package-lock.json ($S3_NODE_MODULES_CACHE_ID) exist, downloading...\e[0m" + scripts/ci/utils/artifact-from-s3.sh -a "$S3_NODE_MODULES_CACHE_PATH" -o "$NODE_MODULES_DIR" + fi +else + echo -e "\e[32mThe $NODE_MODULES_DIR folder exists, possibly it was restored from the Travis Workspace...\e[0m" +fi diff --git a/scripts/ci/utils/artifact-from-s3.sh b/scripts/ci/utils/artifact-from-s3.sh index 9b3f664d93..18810a1b7c 100755 --- a/scripts/ci/utils/artifact-from-s3.sh +++ b/scripts/ci/utils/artifact-from-s3.sh @@ -23,9 +23,15 @@ then fi test ! -d $OUTPUT && mkdir -p $OUTPUT -aws s3 cp $ARTIFACT ./s3-artifact.tmp -echo 'artifact download done' -tar -xvf ./s3-artifact.tmp -C $OUTPUT >&/dev/null -echo 'tar the artifact done' -rm ./s3-artifact.tmp -echo 'remove tmp file' + +IS_PRESENT="$(aws s3 ls $ARTIFACT | wc -l | tr -d ' ')" +if [ "${IS_PRESENT}" == "1" ] +then + echo "File ${ARTIFACT} is present. Copying" + aws s3 cp $ARTIFACT ./s3-artifact.tmp + tar -xf ./s3-artifact.tmp -C $OUTPUT + rm ./s3-artifact.tmp +else + echo "File ${ARTIFACT} not present" + exit 1; +fi diff --git a/scripts/ci/utils/artifact-to-s3.sh b/scripts/ci/utils/artifact-to-s3.sh index 523bb528d3..c23da77420 100755 --- a/scripts/ci/utils/artifact-to-s3.sh +++ b/scripts/ci/utils/artifact-to-s3.sh @@ -22,6 +22,6 @@ then exit 1 fi -tar cvfj ./s3-artifact.tmp -C $ARTIFACT `ls $ARTIFACT` +tar cfj ./s3-artifact.tmp -C $ARTIFACT `ls -A $ARTIFACT` aws s3 cp ./s3-artifact.tmp $OUTPUT rm ./s3-artifact.tmp diff --git a/scripts/lint.sh b/scripts/lint.sh index 31f140060d..770752391e 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -8,11 +8,6 @@ if grep "envalfresco" . -R --exclude-dir={node_modules,.history,.idea,scripts,di exit 1 fi -if [ "$CI" == true ]; then - npm install --ignore-scripts -fi - - nx affected:lint --parallel --all --maxParallel=9 && \ npm run lint-e2e && \ npm run stylelint && \ diff --git a/scripts/travis/build/build.sh b/scripts/travis/build/build.sh index 9804a54bbc..60430a5419 100755 --- a/scripts/travis/build/build.sh +++ b/scripts/travis/build/build.sh @@ -23,8 +23,6 @@ then fi node ./scripts/pre-publish.js - - npm install fi; ./scripts/build/build-all-lib.sh