From 1d471ccb585c84dba4b8b21b84f64ef13d377042 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Wed, 6 Jan 2021 15:31:55 -0500 Subject: [PATCH 01/16] Take a first whack at porting CI to CircleCI. No deployment of docs yet. --- .circleci/config.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..605681be --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,35 @@ +version: 2.1 + +orbs: + browser-tools: circleci/browser-tools@1.1.1 + +jobs: + test_js: + docker: + - image: cimg/node:15.3.0 + environment: + MOZ_HEADLESS: 1 + steps: + - browser-tools/install-firefox: + version: 84.0.1 + - checkout + - run: make -C fathom lint test + - run: make -C fathom coveralls + test_python: + docker: + - image: cimg/python:3.7.9-node + environment: + MOZ_HEADLESS: 1 + steps: + - browser-tools/install-firefox: + version: 84.0.1 + - checkout + - run: make -C cli lint test + - run: make docs + +workflows: + version: 2 + js_python_and_docs: + jobs: + - test_js + - test_python From 7ac8c52a8cb0c3de5cb6d16fd3aa0c1299b0a663 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Wed, 6 Jan 2021 16:24:44 -0500 Subject: [PATCH 02/16] Let see if a newer version of Python (3.9) stops the coring in autograd. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 605681be..2fcd641f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ jobs: - run: make -C fathom coveralls test_python: docker: - - image: cimg/python:3.7.9-node + - image: cimg/python:3.9.1-node environment: MOZ_HEADLESS: 1 steps: From c6d9a59f960b49f33032482c9e600ca46b20e518 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Wed, 6 Jan 2021 16:29:33 -0500 Subject: [PATCH 03/16] No, that made it worse. Now we can't even import torch. `ImportError: libtinfo.so.5: cannot open shared object file: No such file or directory` --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2fcd641f..605681be 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ jobs: - run: make -C fathom coveralls test_python: docker: - - image: cimg/python:3.9.1-node + - image: cimg/python:3.7.9-node environment: MOZ_HEADLESS: 1 steps: From 1e1878b688822bc3556a28dc82153142a4243cb1 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Wed, 6 Jan 2021 17:06:08 -0500 Subject: [PATCH 04/16] JS was failing because webdriver couldn't find geckodriver. Let's see if this helps. `Error: The geckodriver executable could not be found on the current PATH.` --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 605681be..44e2f579 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,7 +13,7 @@ jobs: - browser-tools/install-firefox: version: 84.0.1 - checkout - - run: make -C fathom lint test + - run: PATH=~/project/fathom/node_modules/.bin/:$PATH make -C fathom lint test - run: make -C fathom coveralls test_python: docker: From 5ff0926897e0b628884fa95a1c15d31328a5008c Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Wed, 6 Jan 2021 17:10:32 -0500 Subject: [PATCH 05/16] That didn't help. What about using the `-browsers` image? --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 44e2f579..0e613739 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ orbs: jobs: test_js: docker: - - image: cimg/node:15.3.0 + - image: cimg/node:15.3.0-browsers environment: MOZ_HEADLESS: 1 steps: From f35f85189b1e684b1a06de116da36a3658668ab8 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Wed, 6 Jan 2021 17:13:17 -0500 Subject: [PATCH 06/16] Nope, that didn't help. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0e613739..44e2f579 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ orbs: jobs: test_js: docker: - - image: cimg/node:15.3.0-browsers + - image: cimg/node:15.3.0 environment: MOZ_HEADLESS: 1 steps: From 3ec6ff3e195917b92edfced06fc9fd24aedc78a0 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Thu, 7 Jan 2021 08:28:46 -0500 Subject: [PATCH 07/16] Try installing CircleCI's version of geckodriver. Maybe it needs Java around or something that I'm just taking for granted on my box. Also go back to the -browser image because that's in the example on the browser-tools page. --- .circleci/config.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 44e2f579..44f7d833 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,17 +1,16 @@ version: 2.1 orbs: - browser-tools: circleci/browser-tools@1.1.1 + browser-tools: circleci/browser-tools jobs: test_js: docker: - - image: cimg/node:15.3.0 + - image: cimg/node:15.3.0-browser environment: MOZ_HEADLESS: 1 steps: - - browser-tools/install-firefox: - version: 84.0.1 + - browser-tools/install-browser-tools - checkout - run: PATH=~/project/fathom/node_modules/.bin/:$PATH make -C fathom lint test - run: make -C fathom coveralls From c2c720f824bee34a397969d6d96c3cc204ff1831 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Thu, 7 Jan 2021 08:29:38 -0500 Subject: [PATCH 08/16] Add browser-tools version. It won't run without a version number. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 44f7d833..58581a76 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ version: 2.1 orbs: - browser-tools: circleci/browser-tools + browser-tools: circleci/browser-tools@1.1.1 jobs: test_js: From 57b1ba9996d4bce365814b8841e223caf30e7c52 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Thu, 7 Jan 2021 08:31:45 -0500 Subject: [PATCH 09/16] It's "-browsers". It was wrong in the docs. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 58581a76..c8a2988f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ orbs: jobs: test_js: docker: - - image: cimg/node:15.3.0-browser + - image: cimg/node:15.3.0-browsers environment: MOZ_HEADLESS: 1 steps: From 8a5ef335b0a3a8c833fd86b250757c094fc12309 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Thu, 7 Jan 2021 08:33:32 -0500 Subject: [PATCH 10/16] Try using CircleCI's version of geckodriver. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c8a2988f..ca1a19fc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,7 +12,7 @@ jobs: steps: - browser-tools/install-browser-tools - checkout - - run: PATH=~/project/fathom/node_modules/.bin/:$PATH make -C fathom lint test + - run: make -C fathom lint test - run: make -C fathom coveralls test_python: docker: From 616d582877834ed18f9f3d34cdc75b00d0b83942 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Thu, 4 Mar 2021 16:04:39 -0500 Subject: [PATCH 11/16] Point to the CUDA versions of the PyTorch wheels. We were getting the ROCm versions, as per https://github.com/pytorch/pytorch/issues/52571. Remove the repeat of the `dependency_links` info in the Makefile. --- cli/Makefile | 2 +- cli/setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/Makefile b/cli/Makefile index f8711a5f..8f29ca72 100644 --- a/cli/Makefile +++ b/cli/Makefile @@ -37,7 +37,7 @@ $(VIRTUAL_ENV)/pyvenv.cfg: dev-requirements.txt doc-building-requirements.txt se # We don't path-qualify pip3 because python -m venv on Travis creates a # venv with no pip executable in it. PATH="$(PATH)" pip3 install -r dev-requirements.txt -r doc-building-requirements.txt - PATH="$(PATH)" pip3 install -e . -f https://download.pytorch.org/whl/torch_stable.html + PATH="$(PATH)" pip3 install -e . npm_installed: @$(MAKE) -C ../fathom .npm_installed diff --git a/cli/setup.py b/cli/setup.py index 1de4224a..e74ee555 100644 --- a/cli/setup.py +++ b/cli/setup.py @@ -23,7 +23,7 @@ 'torch>=1.0,<2.0' ], dependency_links=[ - 'https://download.pytorch.org/whl/torch_stable.html' + 'https://download.pytorch.org/whl/cu110/torch_stable.html' ], entry_points={'console_scripts': [ 'fathom = fathom_web.commands:fathom', From 8c3622ba027f4697af59edd865cd208786ecb6db Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Tue, 16 Mar 2021 12:16:57 -0400 Subject: [PATCH 12/16] Update geckodriver to fix JS tests on CircleCI. (Props to glenda and motin!) --- fathom/package-lock.json | 353 +++++++++++++++++++++------------------ fathom/package.json | 2 +- 2 files changed, 196 insertions(+), 159 deletions(-) diff --git a/fathom/package-lock.json b/fathom/package-lock.json index a86c504b..06a6b8cf 100644 --- a/fathom/package-lock.json +++ b/fathom/package-lock.json @@ -25,7 +25,7 @@ "eslint": "^6.7.1", "eslint-plugin-import": "^2.18.2", "eslint-plugin-node": "^10.0.0", - "geckodriver": "^1.16.2", + "geckodriver": "^1.22.2", "jsdoc": "^3.5.4", "mocha": "^6.2.2", "nyc": "^14.1.1", @@ -462,26 +462,49 @@ } }, "node_modules/adm-zip": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", - "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.3.tgz", + "integrity": "sha512-zsoTXEwRNCxBzRHLENFLuecCcwzzXiEhWo1r3GP68iwi8Q/hW2RrqgeY1nfJ/AhNQNWnZq/4v0TbfMsUkI+TYw==", "dev": true, "engines": { - "node": ">=0.3.0" + "node": ">=6.0" } }, "node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { - "es6-promisify": "^5.0.0" + "debug": "4" }, "engines": { - "node": ">= 4.0.0" + "node": ">= 6.0.0" } }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/ajv": { "version": "6.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", @@ -1203,9 +1226,9 @@ } }, "node_modules/bluebird": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz", - "integrity": "sha1-AdqNgh2HgT0ViWfnQ9X+bGLPjA8=", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "node_modules/brace-expansion": { @@ -1412,10 +1435,13 @@ } }, "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/class-utils": { "version": "0.3.6", @@ -1987,21 +2013,6 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2851,12 +2862,15 @@ } }, "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { - "minipass": "^2.6.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, "node_modules/fs-readdir-recursive": { @@ -3658,16 +3672,17 @@ "dev": true }, "node_modules/geckodriver": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-1.19.1.tgz", - "integrity": "sha512-xWL/+eEhQ6+t98rc1c+xVM3hshDJibXtZf9WJA3sshxq4k5L1PBwfmswyBmmlKUfBr4xuC256gLVC2RxFhiCsQ==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-1.22.2.tgz", + "integrity": "sha512-xcf1OLfHqNX4+wQhj4weu2gtiwtPnV8yEEKvLkC8GuFtUc5WjOGodV/2pHiYJjCSJRQfsmIgY5Xs1zaJf/OGFA==", "dev": true, + "hasInstallScript": true, "dependencies": { - "adm-zip": "0.4.11", - "bluebird": "3.4.6", + "adm-zip": "0.5.3", + "bluebird": "3.7.2", "got": "5.6.0", - "https-proxy-agent": "3.0.0", - "tar": "4.4.2" + "https-proxy-agent": "5.0.0", + "tar": "6.0.2" }, "bin": { "geckodriver": "bin/geckodriver" @@ -3970,25 +3985,33 @@ } }, "node_modules/https-proxy-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.0.tgz", - "integrity": "sha512-y4jAxNEihqvBI5F3SaO2rtsjIOnnNA8sEbuiP+UhJZJHeM2NRm6c09ax2tgqme+SgUUvjao2fJXF4h3D6Cb2HQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 4.5.0" + "node": ">= 6" } }, "node_modules/https-proxy-agent/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/https-proxy-agent/node_modules/ms": { @@ -4675,12 +4698,6 @@ "node": ">=8.15.0" } }, - "node_modules/jsdoc/node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, "node_modules/jsdoc/node_modules/escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -5145,22 +5162,28 @@ "dev": true }, "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "dependencies": { - "minipass": "^2.9.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" } }, "node_modules/mixin-deep": { @@ -7047,21 +7070,32 @@ "dev": true }, "node_modules/tar": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.2.tgz", - "integrity": "sha512-BfkE9CciGGgDsATqkikUHrQrraBCO+ke/1f6SFAEMnxyyfN9lxC+nW1NFWMpqH865DhHIy9vQi682gk1X7friw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", "dev": true, "dependencies": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": ">=4.5" + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/test-exclude": { @@ -7804,9 +7838,9 @@ "dev": true }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/yargs": { @@ -8357,18 +8391,35 @@ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" }, "adm-zip": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", - "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.3.tgz", + "integrity": "sha512-zsoTXEwRNCxBzRHLENFLuecCcwzzXiEhWo1r3GP68iwi8Q/hW2RrqgeY1nfJ/AhNQNWnZq/4v0TbfMsUkI+TYw==", "dev": true }, "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "ajv": { @@ -8997,9 +9048,9 @@ } }, "bluebird": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz", - "integrity": "sha1-AdqNgh2HgT0ViWfnQ9X+bGLPjA8=", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "brace-expansion": { @@ -9175,9 +9226,9 @@ } }, "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "class-utils": { @@ -9664,21 +9715,6 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -10364,12 +10400,12 @@ } }, "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "requires": { - "minipass": "^2.6.0" + "minipass": "^3.0.0" } }, "fs-readdir-recursive": { @@ -11014,16 +11050,16 @@ "dev": true }, "geckodriver": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-1.19.1.tgz", - "integrity": "sha512-xWL/+eEhQ6+t98rc1c+xVM3hshDJibXtZf9WJA3sshxq4k5L1PBwfmswyBmmlKUfBr4xuC256gLVC2RxFhiCsQ==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-1.22.2.tgz", + "integrity": "sha512-xcf1OLfHqNX4+wQhj4weu2gtiwtPnV8yEEKvLkC8GuFtUc5WjOGodV/2pHiYJjCSJRQfsmIgY5Xs1zaJf/OGFA==", "dev": true, "requires": { - "adm-zip": "0.4.11", - "bluebird": "3.4.6", + "adm-zip": "0.5.3", + "bluebird": "3.7.2", "got": "5.6.0", - "https-proxy-agent": "3.0.0", - "tar": "4.4.2" + "https-proxy-agent": "5.0.0", + "tar": "6.0.2" } }, "gensync": { @@ -11263,22 +11299,22 @@ } }, "https-proxy-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.0.tgz", - "integrity": "sha512-y4jAxNEihqvBI5F3SaO2rtsjIOnnNA8sEbuiP+UhJZJHeM2NRm6c09ax2tgqme+SgUUvjao2fJXF4h3D6Cb2HQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "6", + "debug": "4" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -11839,12 +11875,6 @@ "underscore": "~1.9.1" }, "dependencies": { - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -12230,22 +12260,22 @@ "dev": true }, "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "yallist": "^4.0.0" } }, "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { - "minipass": "^2.9.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" } }, "mixin-deep": { @@ -13783,18 +13813,25 @@ "dev": true }, "tar": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.2.tgz", - "integrity": "sha512-BfkE9CciGGgDsATqkikUHrQrraBCO+ke/1f6SFAEMnxyyfN9lxC+nW1NFWMpqH865DhHIy9vQi682gk1X7friw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", "dev": true, "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "test-exclude": { @@ -14404,9 +14441,9 @@ "dev": true }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yargs": { diff --git a/fathom/package.json b/fathom/package.json index ca3c976a..d87a0075 100644 --- a/fathom/package.json +++ b/fathom/package.json @@ -23,7 +23,7 @@ "eslint": "^6.7.1", "eslint-plugin-import": "^2.18.2", "eslint-plugin-node": "^10.0.0", - "geckodriver": "^1.16.2", + "geckodriver": "^1.22.2", "jsdoc": "^3.5.4", "mocha": "^6.2.2", "nyc": "^14.1.1", From f5c34c09f3828b5ba7a79128aa523fb7c58dd49e Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Tue, 16 Mar 2021 14:44:30 -0400 Subject: [PATCH 13/16] Disable coveralls for now. We can fix it while enjoying that the rest of CI is passing. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ca1a19fc..0ffd6aef 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,7 +13,7 @@ jobs: - browser-tools/install-browser-tools - checkout - run: make -C fathom lint test - - run: make -C fathom coveralls + #- run: make -C fathom coveralls test_python: docker: - image: cimg/python:3.7.9-node From f6e2cd10892d154f709b083d14bc83379a7b3eff Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Tue, 16 Mar 2021 14:56:04 -0400 Subject: [PATCH 14/16] Re-enable coveralls. I set the COVERALLS_REPO_TOKEN in the server-side CircleCI config. I also updated the package for good measure, but that didn't improve things on its own. --- .circleci/config.yml | 2 +- fathom/package-lock.json | 18 +++++++++--------- fathom/package.json | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0ffd6aef..ca1a19fc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,7 +13,7 @@ jobs: - browser-tools/install-browser-tools - checkout - run: make -C fathom lint test - #- run: make -C fathom coveralls + - run: make -C fathom coveralls test_python: docker: - image: cimg/python:3.7.9-node diff --git a/fathom/package-lock.json b/fathom/package-lock.json index 06a6b8cf..88bca4af 100644 --- a/fathom/package-lock.json +++ b/fathom/package-lock.json @@ -21,7 +21,7 @@ "babel-plugin-dynamic-import-node": "^2.3.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", "chai": "^4.2.0", - "coveralls": "^3.0.5", + "coveralls": "^3.1.0", "eslint": "^6.7.1", "eslint-plugin-import": "^2.18.2", "eslint-plugin-node": "^10.0.0", @@ -1665,16 +1665,16 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "node_modules/coveralls": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.11.tgz", - "integrity": "sha512-LZPWPR2NyGKyaABnc49dR0fpeP6UqhvGq4B5nUrTQ1UBy55z96+ga7r+/ChMdMJUwBgyJDXBi88UBgz2rs9IiQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", + "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", "dev": true, "dependencies": { "js-yaml": "^3.13.1", "lcov-parse": "^1.0.0", "log-driver": "^1.2.7", "minimist": "^1.2.5", - "request": "^2.88.0" + "request": "^2.88.2" }, "bin": { "coveralls": "bin/coveralls.js" @@ -9423,16 +9423,16 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "coveralls": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.11.tgz", - "integrity": "sha512-LZPWPR2NyGKyaABnc49dR0fpeP6UqhvGq4B5nUrTQ1UBy55z96+ga7r+/ChMdMJUwBgyJDXBi88UBgz2rs9IiQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", + "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", "dev": true, "requires": { "js-yaml": "^3.13.1", "lcov-parse": "^1.0.0", "log-driver": "^1.2.7", "minimist": "^1.2.5", - "request": "^2.88.0" + "request": "^2.88.2" } }, "cp-file": { diff --git a/fathom/package.json b/fathom/package.json index d87a0075..d38ebde3 100644 --- a/fathom/package.json +++ b/fathom/package.json @@ -19,7 +19,7 @@ "babel-plugin-dynamic-import-node": "^2.3.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", "chai": "^4.2.0", - "coveralls": "^3.0.5", + "coveralls": "^3.1.0", "eslint": "^6.7.1", "eslint-plugin-import": "^2.18.2", "eslint-plugin-node": "^10.0.0", From 266d50f89afb490d1e9525fb0fb8538bb1f28888 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Tue, 16 Mar 2021 17:10:47 -0400 Subject: [PATCH 15/16] Install only Firefox and only when we need it. --- .circleci/config.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ca1a19fc..fb5c7ea3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,18 +10,15 @@ jobs: environment: MOZ_HEADLESS: 1 steps: - - browser-tools/install-browser-tools + - browser-tools/install-firefox: + version: 86.0.1 - checkout - run: make -C fathom lint test - run: make -C fathom coveralls test_python: docker: - image: cimg/python:3.7.9-node - environment: - MOZ_HEADLESS: 1 steps: - - browser-tools/install-firefox: - version: 84.0.1 - checkout - run: make -C cli lint test - run: make docs From d12a7ddd65d94e35d7e66e55a6fa0d9219c395b2 Mon Sep 17 00:00:00 2001 From: Erik Rose Date: Tue, 16 Mar 2021 17:12:28 -0400 Subject: [PATCH 16/16] Teach CircleCI how to deploy the docs and update coveralls. --- .circleci/config.yml | 15 ++++++++++++++- docs/{travis-deploy-docs => deploy-docs} | 0 2 files changed, 14 insertions(+), 1 deletion(-) rename docs/{travis-deploy-docs => deploy-docs} (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index fb5c7ea3..585d4b8d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,7 +14,13 @@ jobs: version: 86.0.1 - checkout - run: make -C fathom lint test - - run: make -C fathom coveralls + # Upload new coveralls stats only on master, which is the only place + # COVERALLS_REPO_TOKEN is defined: + - run: | + if [ ! -z "$COVERALLS_REPO_TOKEN" ] + then + make -C fathom coveralls + fi test_python: docker: - image: cimg/python:3.7.9-node @@ -22,6 +28,13 @@ jobs: - checkout - run: make -C cli lint test - run: make docs + # Upload new docs only on master, which is the only place GH_TOKEN is + # defined. This saves time over doing it in a separate job. + - run: | + if [ ! -z "$GH_TOKEN" ] + then + docs/deploy-docs + fi workflows: version: 2 diff --git a/docs/travis-deploy-docs b/docs/deploy-docs similarity index 100% rename from docs/travis-deploy-docs rename to docs/deploy-docs