diff options
-rw-r--r-- | .circleci/config.yml | 187 | ||||
-rwxr-xr-x | .circleci/scripts/firefox-download.sh | 13 | ||||
-rwxr-xr-x | .circleci/scripts/firefox-install | 29 | ||||
-rwxr-xr-x | .circleci/scripts/firefox-install.sh | 8 | ||||
-rw-r--r-- | .circleci/scripts/firefox.cfg | 13 |
5 files changed, 99 insertions, 151 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 6d4bf270c..c9d8cdf6a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,6 @@ workflows: full_test: jobs: - prep-deps-npm - - prep-deps-firefox - prep-build: requires: - prep-deps-npm @@ -28,7 +27,6 @@ workflows: - test-e2e-firefox: requires: - prep-deps-npm - - prep-deps-firefox - prep-build - test-e2e-beta-chrome: requires: @@ -37,7 +35,6 @@ workflows: - test-e2e-beta-firefox: requires: - prep-deps-npm - - prep-deps-firefox - prep-build - test-unit: requires: @@ -49,7 +46,6 @@ workflows: - test-integration-mascara-firefox: requires: - prep-deps-npm - - prep-deps-firefox - prep-scss - test-integration-flat-chrome: requires: @@ -58,7 +54,6 @@ workflows: - test-integration-flat-firefox: requires: - prep-deps-npm - - prep-deps-firefox - prep-scss - all-tests-pass: requires: @@ -103,46 +98,34 @@ jobs: - restore_cache: keys: - v1.0-dependency-cache-{{ checksum "package-lock.json" }} - # fallback to using the latest cache if no exact match is found - - v1.0-dependency-cache- - run: name: Install npm 6 + deps via npm command: | - sudo npm install -g npm@6.1.0 && npm install --no-save + sudo npm install -g npm@6 && npm install --no-save + - persist_to_workspace: + root: . + paths: + - node_modules - save_cache: key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} paths: - node_modules - prep-deps-firefox: - docker: - - image: circleci/node:8.11.3-browsers - steps: - - checkout - - restore_cache: - key: v1.0-dependency-cache-firefox- - - run: - name: Download Firefox If needed - command: ./.circleci/scripts/firefox-download.sh - - save_cache: - key: v1.0-dependency-cache-firefox- - paths: - - firefox prep-build: docker: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} + - attach_workspace: + at: . - run: name: build:dist command: npm run dist - run: name: build:debug command: find dist/ -type f -exec md5sum {} \; | sort -k 2 - - save_cache: - key: build-cache-{{ .Revision }} + - persist_to_workspace: + root: . paths: - dist - builds @@ -152,23 +135,23 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} + - attach_workspace: + at: . - run: name: build:dist command: npm run doc - - save_cache: - key: docs-cache-{{ .Revision }} + - persist_to_workspace: + root: . paths: - - docs/jsdoc + - docs/jsdocs prep-scss: docker: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} + - attach_workspace: + at: . - run: name: Get Scss Cache key # this allows us to checksum against a whole directory @@ -176,8 +159,8 @@ jobs: - run: name: Build for integration tests command: npm run test:integration:build - - save_cache: - key: scss-cache-{{ checksum "scss_checksum" }} + - persist_to_workspace: + root: . paths: - ui/app/css/output @@ -186,8 +169,8 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} + - attach_workspace: + at: . - run: name: Test command: npm run lint @@ -197,8 +180,8 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} + - attach_workspace: + at: . - run: name: Test command: npx nsp check @@ -208,10 +191,8 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - restore_cache: - key: build-cache-{{ .Revision }} + - attach_workspace: + at: . - run: name: test:e2e:chrome command: npm run test:e2e:chrome @@ -224,15 +205,11 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-firefox- - run: - name: Install firefox - command: ./.circleci/scripts/firefox-install.sh - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - restore_cache: - key: build-cache-{{ .Revision }} + name: Install Firefox + command: ./.circleci/scripts/firefox-install + - attach_workspace: + at: . - run: name: test:e2e:firefox command: npm run test:e2e:firefox @@ -245,10 +222,8 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - restore_cache: - key: build-cache-{{ .Revision }} + - attach_workspace: + at: . - run: name: test:e2e:chrome:beta command: npm run test:e2e:chrome:beta @@ -261,15 +236,11 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-firefox- - run: - name: Install firefox - command: ./.circleci/scripts/firefox-install.sh - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - restore_cache: - key: build-cache-{{ .Revision }} + name: Install Firefox + command: ./.circleci/scripts/firefox-install + - attach_workspace: + at: . - run: name: test:e2e:firefox:beta command: npm run test:e2e:firefox:beta @@ -282,15 +253,13 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - restore_cache: - key: build-cache-{{ .Revision }} + - attach_workspace: + at: . - run: name: Test command: npm run test:screens - - save_cache: - key: job-screens-{{ .Revision }} + - persist_to_workspace: + root: . paths: - test-artifacts @@ -299,12 +268,8 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - restore_cache: - key: build-cache-{{ .Revision }} - - restore_cache: - key: job-screens-{{ .Revision }} + - attach_workspace: + at: . - store_artifacts: path: dist/mascara destination: builds/mascara @@ -326,14 +291,8 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - restore_cache: - key: build-cache-{{ .Revision }} - - restore_cache: - key: docs-cache-{{ .Revision }} - - restore_cache: - key: job-screens-{{ .Revision }} + - attach_workspace: + at: . - run: name: sentry sourcemaps upload command: npm run sentry:publish @@ -349,32 +308,22 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} + - attach_workspace: + at: . - run: name: test:coverage command: npm run test:coverage test-integration-flat-firefox: - environment: - browsers: '["Firefox"]' docker: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-firefox- + - attach_workspace: + at: . - run: - name: Install firefox - command: ./.circleci/scripts/firefox-install.sh - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - run: - name: Get Scss Cache key - # this allows us to checksum against a whole directory - command: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - - restore_cache: - key: scss-cache-{{ checksum "scss_checksum" }} + name: Install Firefox + command: ./.circleci/scripts/firefox-install - run: name: test:integration:flat command: npm run test:flat @@ -386,38 +335,22 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - run: - name: Get Scss Cache key - # this allows us to checksum against a whole directory - command: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - - restore_cache: - key: scss-cache-{{ checksum "scss_checksum" }} + - attach_workspace: + at: . - run: name: test:integration:flat command: npm run test:flat test-integration-mascara-firefox: - environment: - browsers: '["Firefox"]' docker: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-firefox- + - attach_workspace: + at: . - run: - name: Install firefox - command: ./.circleci/scripts/firefox-install.sh - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - run: - name: Get Scss Cache key - # this allows us to checksum against a whole directory - command: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - - restore_cache: - key: scss-cache-{{ checksum "scss_checksum" }} + name: Install Firefox + command: ./.circleci/scripts/firefox-install - run: name: test:integration:mascara command: npm run test:mascara @@ -429,14 +362,8 @@ jobs: - image: circleci/node:8.11.3-browsers steps: - checkout - - restore_cache: - key: v1.0-dependency-cache-{{ checksum "package-lock.json" }} - - run: - name: Get Scss Cache key - # this allows us to checksum against a whole directory - command: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - - restore_cache: - key: scss-cache-{{ checksum "scss_checksum" }} + - attach_workspace: + at: . - run: name: test:integration:mascara command: npm run test:mascara @@ -447,4 +374,4 @@ jobs: steps: - run: name: All Tests Passed - command: echo 'weew - everything passed!'
\ No newline at end of file + command: echo 'weew - everything passed!' diff --git a/.circleci/scripts/firefox-download.sh b/.circleci/scripts/firefox-download.sh deleted file mode 100755 index 64f0c74e3..000000000 --- a/.circleci/scripts/firefox-download.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -echo "Checking if firefox was already downloaded" -if [ -d "firefox" ] -then - echo "Firefox found. No need to download" -else - FIREFOX_VERSION="61.0.1" - FIREFOX_BINARY="firefox-$FIREFOX_VERSION.tar.bz2" - echo "Downloading firefox..." - wget "https://ftp.mozilla.org/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/$FIREFOX_BINARY" \ - && tar xjf "$FIREFOX_BINARY" - echo "firefox download complete" -fi diff --git a/.circleci/scripts/firefox-install b/.circleci/scripts/firefox-install new file mode 100755 index 000000000..1d8e62d76 --- /dev/null +++ b/.circleci/scripts/firefox-install @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +FIREFOX_VERSION='61.0.2' +FIREFOX_BINARY="firefox-${FIREFOX_VERSION}.tar.bz2" +FIREFOX_BINARY_URL="https://ftp.mozilla.org/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/${FIREFOX_BINARY}" +FIREFOX_PATH='/opt/firefox' + +printf '%s\n' "Removing old Firefox installation" + +sudo rm -r "${FIREFOX_PATH}" + +printf '%s\n' "Downloading & installing Firefox ${FIREFOX_VERSION}" + +wget --quiet --show-progress -O- "${FIREFOX_BINARY_URL}" | sudo tar xj -C /opt + +printf '%s\n' "Firefox ${FIREFOX_VERSION} installed" + +{ + printf '%s\n' 'pref("general.config.filename", "firefox.cfg");' + printf '%s\n' 'pref("general.config.obscure_value", 0);' +} | sudo tee "${FIREFOX_PATH}/defaults/pref/autoconfig.js" + +sudo cp .circleci/scripts/firefox.cfg "${FIREFOX_PATH}" + +printf '%s\n' "Firefox ${FIREFOX_VERSION} configured" diff --git a/.circleci/scripts/firefox-install.sh b/.circleci/scripts/firefox-install.sh deleted file mode 100755 index 1c60f4de9..000000000 --- a/.circleci/scripts/firefox-install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -echo "Installing firefox..." -sudo rm -r /opt/firefox -sudo mv firefox /opt/firefox61 -sudo mv /usr/bin/firefox /usr/bin/firefox-old -sudo ln -s /opt/firefox61/firefox /usr/bin/firefox -echo "Firefox installed." diff --git a/.circleci/scripts/firefox.cfg b/.circleci/scripts/firefox.cfg new file mode 100644 index 000000000..68dd285f2 --- /dev/null +++ b/.circleci/scripts/firefox.cfg @@ -0,0 +1,13 @@ +// IMPORTANT: Start your code on the 2nd line + +lockPref("app.update.enabled", false); +lockPref("app.update.auto", false); +lockPref("app.update.mode", 0); +lockPref("app.update.service.enabled", false); + +pref("browser.rights.3.shown", true); + +pref("browser.startup.homepage_override.mstone","ignore"); + +lockPref("plugins.hide_infobar_for_outdated_plugin", true); +clearPref("plugins.update.url"); |