ci: Don't cache Firefox install

Two important notes:

1. The time it takes to download is negligble compared to e2e test runs
2. Since we cannot use environment variables in CircleCI cache keys we
   can't cache the download correctly and have it update when we switch
   firefox versions—this isn't the end of the world because of point 1
feature/default_network_editable
Whymarrh Whitby 6 years ago
parent c7f5436143
commit e493efb123
  1. 47
      .circleci/config.yml
  2. 13
      .circleci/scripts/firefox-download.sh
  3. 19
      .circleci/scripts/firefox-install
  4. 8
      .circleci/scripts/firefox-install.sh

@ -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:
@ -113,20 +108,6 @@ jobs:
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:
@ -224,11 +205,9 @@ 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
name: Install Firefox
command: ./.circleci/scripts/firefox-install
- restore_cache:
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- restore_cache:
@ -261,11 +240,9 @@ 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
name: Install Firefox
command: ./.circleci/scripts/firefox-install
- restore_cache:
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- restore_cache:
@ -356,17 +333,13 @@ jobs:
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-
- run:
name: Install firefox
command: ./.circleci/scripts/firefox-install.sh
name: Install Firefox
command: ./.circleci/scripts/firefox-install
- restore_cache:
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- run:
@ -399,17 +372,13 @@ jobs:
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-
- run:
name: Install firefox
command: ./.circleci/scripts/firefox-install.sh
name: Install Firefox
command: ./.circleci/scripts/firefox-install
- restore_cache:
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- run:

@ -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

@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
FIREFOX_VERSION='61.0.1'
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}"
printf '%s\n' "Removing old Firefox installation"
sudo rm -r /opt/firefox
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"

@ -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."
Loading…
Cancel
Save