@ -1,7 +1,4 @@
# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
version : 2.1
version : 2.1
parameters:
parameters:
run_flaky_tests:
run_flaky_tests:
@ -9,28 +6,16 @@ parameters:
default : false
default : false
orbs:
orbs:
browser-tools : circleci/browser-tools@1.4.0
browser-tools : circleci/browser-tools@1.4.0
node : circleci/node@5.0.2
jobs:
jobs:
build:
build:
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
resource_class:
xlarge
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
working_directory : ~/remix-project
steps:
steps:
- checkout
- checkout
- node/install:
install-yarn : true
node-version : "v14.17.6"
- restore_cache:
- restore_cache:
keys:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- v1-deps-{{ checksum "yarn.lock" }}
@ -39,37 +24,22 @@ jobs:
key : v1-deps-{{ checksum "yarn.lock" }}
key : v1-deps-{{ checksum "yarn.lock" }}
paths:
paths:
- node_modules
- node_modules
- run : yarn run downloadsolc_assets
- run : NX_BIN_URL=http://127.0.0.1:8080/assets/js NX_WASM_URL=http://127.0.0.1:8080/assets/js yarn build:production
- run : npx nx build remix-ide
- run : npx nx build remix-ide-e2e-src-local-plugin & yarn run build:libs
- run : npx nx build remix-ide-e2e-src-local-plugin
- run : mkdir persist && zip -0 -r persist/dist.zip dist
- run : yarn run build:libs
- run : mkdir persist && zip -r persist/dist.zip dist
- persist_to_workspace:
- persist_to_workspace:
root : .
root : .
paths:
paths:
- "persist"
- "persist"
lint:
lint:
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
resource_class:
xlarge
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
working_directory : ~/remix-project
parallelism : 35
parallelism : 35
steps:
steps:
- checkout
- checkout
- node/install:
install-yarn : true
node-version : "v14.17.6"
- restore_cache:
- restore_cache:
keys:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- v1-deps-{{ checksum "yarn.lock" }}
@ -79,25 +49,13 @@ jobs:
command : ./apps/remix-ide/ci/lint.sh
command : ./apps/remix-ide/ci/lint.sh
remix-libs:
remix-libs:
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
resource_class:
xlarge
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
working_directory : ~/remix-project
steps:
steps:
- checkout
- checkout
- node/install:
install-yarn : true
node-version : "v14.17.6"
- attach_workspace:
- attach_workspace:
at : .
at : .
- run : unzip ./persist/dist.zip
- run : unzip ./persist/dist.zip
@ -108,368 +66,98 @@ jobs:
- run : cd dist/libs/remix-tests && yarn
- run : cd dist/libs/remix-tests && yarn
- run : yarn run test:libs
- run : yarn run test:libs
remix-ide-chrome :
remix-ide-browser :
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
resource_class:
xlarge
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
working_directory : ~/remix-project
parameters:
parallelism : 95
browser:
type : string
script:
type : string
job:
type : string
jobsize:
type : string
parallelism : 10
steps:
steps:
- node/install:
- browser-tools/install-browser-tools
install-yarn : true
node-version : "v14.17.6"
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- run:
- run:
command : |
command : |
google-chrome --version
google-chrome --version
firefox --version
geckodriver --version
chromedriver --version
chromedriver --version
name : Check install
java -jar /usr/local/bin/selenium.jar --version
- checkout
- attach_workspace:
at : .
- run : unzip ./persist/dist.zip
- restore_cache:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- run : yarn
- run :
name : Java
command : sudo apt update && sudo apt install default-jre
- run:
name : Install Selenium
command : yarn run selenium-install
- run:
name : Run Selenium
command : yarn run selenium
background : true
- run : ./apps/remix-ide/ci/browser_test.sh chrome
- store_test_results:
path : ./reports/tests
- store_artifacts:
path : ./reports/screenshots
flaky-chrome:
docker:
# specify the version you desire here
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
parallelism : 95
steps:
- node/install:
install-yarn : true
node-version : "v14.17.6"
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- run:
- run:
name : Check out previous test metadata
command : |
command : |
google-chrome --version
cat "${CIRCLE_INTERNAL_TASK_DATA}/circle-test-results/results.json" | jq .
chromedriver --version
ls -la "${CIRCLE_INTERNAL_TASK_DATA}/"
name : Check install
- checkout
- checkout
- attach_workspace:
- attach_workspace:
at : .
at : .
- run : unzip ./persist/dist.zip
- run : unzip ./persist/dist.zip
- restore_cache:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- run : yarn
- run :
name : Java
command : sudo apt update && sudo apt install default-jre
- run:
name : Install Selenium
command : yarn run selenium-install
- run:
name : Run Selenium
command : yarn run selenium
background : true
- run : ./apps/remix-ide/ci/flaky.sh chrome
- store_test_results:
path : ./reports/tests
- store_artifacts:
path : ./reports/screenshots
remix-ide-firefox:
docker:
# specify the version you desire here
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
parallelism : 95
steps:
- node/install:
install-yarn : true
node-version : "v14.17.6"
- browser-tools/install-firefox
- browser-tools/install-geckodriver
- run:
command : |
firefox --version
geckodriver --version
name : Check install
- checkout
- attach_workspace:
at : .
- run : unzip ./persist/dist.zip
- restore_cache:
- restore_cache:
keys:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- v1-deps-{{ checksum "yarn.lock" }}
- run : yarn
- run : yarn
- run : yarn run downloadsolc_assets_e2e && yarn run downloadsolc_assets_dist
- run : ls -la ./dist/apps/remix-ide/assets/js
- run:
- run:
name : Java
name : Start Selenium
command : sudo apt update && sudo apt install default-jre
command : java -jar /usr/local/bin/selenium.jar
- run:
name : Install Selenium
command : yarn run selenium-install
- run:
name : Run Selenium
command : yarn run selenium
background : true
background : true
- run : ./apps/remix-ide/ci/browser_test.sh firefox
- run : ./apps/remix-ide/ci/<< parameters.script >> << parameters.browser >> << parameters.jobsize >> << parameters.job >>
- store_test_results:
- store_test_results:
path : ./reports/tests
path : ./reports/tests
- store_artifacts:
- store_artifacts:
path : ./reports/screenshots
path : ./reports/screenshots
flaky-firefox:
docker:
# specify the version you desire here
- image : cimg/base:current
# Specify service dependencies here if necessary
tests-passed:
# CircleCI maintains a library of pre-built images
machine:
# documented at https://circleci.com/docs/2.0/circleci-images/
image : ubuntu-2004:202010-01
resource_class:
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
parallelism : 95
steps:
steps:
- node/install:
- run : echo done
install-yarn : true
node-version : "v14.17.6"
- browser-tools/install-firefox
- browser-tools/install-geckodriver
- run:
command : |
firefox --version
geckodriver --version
name : Check install
remix-test-plugins:
- checkout
- attach_workspace:
at : .
- run : unzip ./persist/dist.zip
- restore_cache:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- run : yarn
- run :
name : Java
command : sudo apt update && sudo apt install default-jre
- run:
name : Install Selenium
command : yarn run selenium-install
- run:
name : Run Selenium
command : yarn run selenium
background : true
- run : ./apps/remix-ide/ci/flaky.sh firefox
- store_test_results:
path : ./reports/tests
- store_artifacts:
path : ./reports/screenshots
remix-ide-vyper-plugin:
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
resource_class:
xlarge
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
working_directory : ~/remix-project
parameters:
script:
type : string
parallelism : 10
parallelism : 10
steps:
steps:
- node/install:
- browser-tools/install-browser-tools
install-yarn : true
node-version : "v14.17.6"
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- run:
- run:
command : |
command : |
google-chrome --version
google-chrome --version
firefox --version
geckodriver --version
chromedriver --version
chromedriver --version
java -jar /usr/local/bin/selenium.jar --version
name : Check install
name : Check install
- checkout
- checkout
- attach_workspace:
- attach_workspace:
at : .
at : .
- run : unzip ./persist/dist.zip
- restore_cache:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- run : yarn
- run :
name : Java
command : sudo apt update && sudo apt install default-jre
- run:
name : Install Selenium
command : yarn run selenium-install
- run:
name : Run Selenium
command : yarn run selenium
background : true
- run : npx nx build vyper
- run : ./apps/remix-ide/ci/browser_tests_vyper_plugin.sh
- store_test_results:
path : ./reports/tests
- store_artifacts:
path : ./reports/screenshots
remix-ide-etherscan-plugin:
docker:
# specify the version you desire here
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
parallelism : 10
steps:
- node/install:
install-yarn : true
node-version : "v14.17.6"
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- run:
command : |
google-chrome --version
chromedriver --version
name : Check install
- checkout
- attach_workspace:
at : .
- run : unzip ./persist/dist.zip
- restore_cache:
- restore_cache:
keys:
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- v1-deps-{{ checksum "yarn.lock" }}
- run : yarn
- run : yarn
- run :
name : Java
command : sudo apt update && sudo apt install default-jre
- run:
name : Install Selenium
command : yarn run selenium-install
- run:
name : Run Selenium
command : yarn run selenium
background : true
- run : npx nx build etherscan
- run : ./apps/remix-ide/ci/browser_tests_etherscan_plugin.sh
- store_test_results:
path : ./reports/tests
- store_artifacts:
path : ./reports/screenshots
remix-ide-plugin-api:
docker:
# specify the version you desire here
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
xlarge
# - image: circleci/mongo:3.4.4
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
working_directory : ~/remix-project
parallelism : 10
steps:
- node/install:
install-yarn : true
node-version : "v14.17.6"
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- run:
command : |
google-chrome --version
chromedriver --version
name : Check install
- checkout
- attach_workspace:
at : .
- run : unzip ./persist/dist.zip
- run : unzip ./persist/dist.zip
- restore_cache:
- run : yarn run downloadsolc_assets_e2e && yarn run downloadsolc_assets_dist
keys:
- v1-deps-{{ checksum "yarn.lock" }}
- run : yarn
- run :
name : Java
command : sudo apt update && sudo apt install default-jre
- run:
name : Install Selenium
command : yarn run selenium-install
- run:
- run:
name : Run Selenium
name : Start Selenium
command : yarn run selenium
command : java -jar /usr/local/bin/selenium.jar
background : true
background : true
- run : ./apps/remix-ide/ci/browser_tests_plugin_api.sh
- run : ./apps/remix-ide/ci/<< parameters.script >>
- store_test_results:
- store_test_results:
path : ./reports/tests
path : ./reports/tests
- store_artifacts:
- store_artifacts:
@ -477,15 +165,10 @@ jobs:
deploy-remix-live:
deploy-remix-live:
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
resource_class:
resource_class:
xlarge
xlarge
# - image: circleci/mongo:3.4.4
environment:
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
- COMMIT_AUTHOR : "Circle CI"
@ -494,9 +177,6 @@ jobs:
steps:
steps:
- checkout
- checkout
- node/install:
install-yarn : true
node-version : "v14.17.6"
- run : yarn
- run : yarn
- run : yarn run downloadsolc_assets
- run : yarn run downloadsolc_assets
- run : yarn run build:production
- run : yarn run build:production
@ -509,15 +189,10 @@ jobs:
deploy-remix-alpha:
deploy-remix-alpha:
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
resource_class:
resource_class:
xlarge
xlarge
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mongo:3.4.4
environment:
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
- COMMIT_AUTHOR : "Circle CI"
@ -526,9 +201,6 @@ jobs:
steps:
steps:
- checkout
- checkout
- node/install:
install-yarn : true
node-version : "v14.17.6"
- run : yarn
- run : yarn
- run : yarn run downloadsolc_assets
- run : yarn run downloadsolc_assets
- run : yarn run build:production
- run : yarn run build:production
@ -541,15 +213,10 @@ jobs:
deploy-remix-beta:
deploy-remix-beta:
docker:
docker:
# specify the version you desire here
- image : cimg/node:14.17.6-browsers
- image : cimg/base:current
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
resource_class:
resource_class:
xlarge
xlarge
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mongo:3.4.4
environment:
environment:
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR_EMAIL : "yann@ethereum.org"
- COMMIT_AUTHOR : "Circle CI"
- COMMIT_AUTHOR : "Circle CI"
@ -558,9 +225,6 @@ jobs:
steps:
steps:
- checkout
- checkout
- node/install:
install-yarn : true
node-version : "v14.17.6"
- run : yarn
- run : yarn
- run : yarn run build:libs
- run : yarn run build:libs
- run : yarn run downloadsolc_assets
- run : yarn run downloadsolc_assets
@ -577,12 +241,15 @@ workflows:
when : << pipeline.parameters.run_flaky_tests >>
when : << pipeline.parameters.run_flaky_tests >>
jobs:
jobs:
- build
- build
- flaky-chrome:
- remix-ide-browser:
requires:
- build
- flaky-firefox:
requires:
requires:
- build
- build
matrix:
parameters:
browser : [ "chrome" , "firefox" ]
script : [ "flaky.sh" ]
job : [ "nogroup" ]
jobsize : [ "1" ]
build_all:
build_all:
unless : << pipeline.parameters.run_flaky_tests >>
unless : << pipeline.parameters.run_flaky_tests >>
jobs:
jobs:
@ -593,30 +260,33 @@ workflows:
- remix-libs:
- remix-libs:
requires:
requires:
- build
- build
- remix-ide-plugin-api:
- remix-test-plugins:
requires:
- build
- remix-ide-vyper-plugin:
requires:
- build
- remix-ide-etherscan-plugin:
requires:
requires:
- build
- build
- remix-ide-chrome:
matrix:
parameters:
script : [ "browser_tests_plugin_api.sh" , "browser_tests_etherscan_plugin.sh" , "browser_tests_vyper_plugin.sh" ]
- remix-ide-browser:
requires:
requires:
- build
- build
- remix-ide-firefox:
matrix:
parameters:
browser : [ "chrome" , "firefox" ]
script : [ "browser_test.sh" ]
job : [ "0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" ]
jobsize : [ "10" ]
- tests-passed:
requires:
requires:
- build
- lint
- remix-libs
- remix-ide-browser
- remix-test-plugins
- deploy-remix-live:
- deploy-remix-live:
requires:
requires:
- lint
- lint
- remix-libs
- remix-libs
- remix-ide-chrome
- remix-ide-browser
- remix-ide-firefox
- remix-test-plugins
- remix-ide-plugin-api
- remix-ide-vyper-plugin
- remix-ide-etherscan-plugin
filters:
filters:
branches:
branches:
only : remix_live
only : remix_live
@ -624,11 +294,8 @@ workflows:
requires:
requires:
- lint
- lint
- remix-libs
- remix-libs
- remix-ide-chrome
- remix-ide-browser
- remix-ide-firefox
- remix-test-plugins
- remix-ide-plugin-api
- remix-ide-vyper-plugin
- remix-ide-etherscan-plugin
filters:
filters:
branches:
branches:
only : master
only : master
@ -636,11 +303,8 @@ workflows:
requires:
requires:
- lint
- lint
- remix-libs
- remix-libs
- remix-ide-chrome
- remix-ide-browser
- remix-ide-firefox
- remix-test-plugins
- remix-ide-plugin-api
- remix-ide-vyper-plugin
- remix-ide-etherscan-plugin
filters:
filters:
branches:
branches:
only : remix_beta
only : remix_beta