|
|
|
|
|
|
|
version: 2.1
|
|
|
|
parameters:
|
|
|
|
run_flaky_tests:
|
|
|
|
type: boolean
|
|
|
|
default: false
|
|
|
|
orbs:
|
|
|
|
browser-tools: circleci/browser-tools@1.4.1
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- save_cache:
|
|
|
|
key: v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
- run:
|
|
|
|
name: Build
|
|
|
|
command: |
|
|
|
|
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
|
|
|
NX_BIN_URL=http://127.0.0.1:8080/assets/js NX_WASM_URL=http://127.0.0.1:8080/assets/js NPM_URL=http://localhost:9090/ yarn build:production
|
|
|
|
else
|
|
|
|
NX_BIN_URL=http://127.0.0.1:8080/assets/js NX_WASM_URL=http://127.0.0.1:8080/assets/js NPM_URL=http://localhost:9090/ yarn build
|
|
|
|
fi
|
|
|
|
- run: yarn run build:e2e
|
|
|
|
- run: mkdir persist && zip -0 -r persist/dist.zip dist
|
|
|
|
- persist_to_workspace:
|
|
|
|
root: .
|
|
|
|
paths:
|
|
|
|
- "persist"
|
|
|
|
prebuild:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- save_cache:
|
|
|
|
key: v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
- run: yarn build:production
|
|
|
|
- run: yarn run build:e2e
|
|
|
|
- run: mkdir persist && zip -0 -r persist/prebuild.zip dist
|
|
|
|
- persist_to_workspace:
|
|
|
|
root: .
|
|
|
|
paths:
|
|
|
|
- "persist"
|
|
|
|
build-plugin:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
parameters:
|
|
|
|
plugin:
|
|
|
|
type: string
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- save_cache:
|
|
|
|
key: v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
- run: yarn build << parameters.plugin >>
|
|
|
|
- run: mkdir persist && zip -0 -r persist/plugin-<< parameters.plugin >>.zip dist
|
|
|
|
- persist_to_workspace:
|
|
|
|
root: .
|
|
|
|
paths:
|
|
|
|
- "persist"
|
|
|
|
|
|
|
|
lint:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- run: yarn nx graph --file=./projects.json
|
|
|
|
- run:
|
|
|
|
name: Remix Libs Linting
|
|
|
|
command: node ./apps/remix-ide/ci/lint-targets.js
|
|
|
|
remix-libs:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- attach_workspace:
|
|
|
|
at: .
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- run: yarn build:libs
|
|
|
|
- run: cd dist/libs/remix-tests && yarn
|
|
|
|
- run: cd dist/libs/remix-tests && yarn add @remix-project/remix-url-resolver ../../libs/remix-url-resolver
|
|
|
|
- run: cd dist/libs/remix-tests && yarn add @remix-project/remix-lib ../../libs/remix-lib
|
|
|
|
- run: cd dist/libs/remix-tests && yarn add @remix-project/remix-solidity ../../libs/remix-solidity
|
|
|
|
- run: cd dist/libs/remix-tests && yarn add @remix-project/remix-simulator ../../libs/remix-simulator
|
|
|
|
- run: cd dist/libs/remix-tests && ./bin/remix-tests ./../../../libs/remix-tests/tests/examples_0/assert_ok_test.sol
|
|
|
|
- run: node dist/libs/remix-tests/bin/remix-tests ./libs/remix-tests/tests/examples_0/assert_ok_test.sol
|
|
|
|
- run: yarn run test:libs
|
|
|
|
|
|
|
|
remix-ide-browser:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
parameters:
|
|
|
|
browser:
|
|
|
|
type: string
|
|
|
|
script:
|
|
|
|
type: string
|
|
|
|
job:
|
|
|
|
type: string
|
|
|
|
jobsize:
|
|
|
|
type: string
|
|
|
|
parallelism: 10
|
|
|
|
steps:
|
|
|
|
- when:
|
|
|
|
condition:
|
|
|
|
equal: [ "chrome", << parameters.browser >> ]
|
|
|
|
steps:
|
|
|
|
- browser-tools/install-browser-tools:
|
|
|
|
install-firefox: false
|
|
|
|
install-chrome: true
|
|
|
|
install-geckodriver: false
|
|
|
|
install-chromedriver: true
|
|
|
|
- run: google-chrome --version
|
|
|
|
- run: chromedriver --version
|
|
|
|
- run: rm LICENSE.chromedriver 2> /dev/null || true
|
|
|
|
- when:
|
|
|
|
condition:
|
|
|
|
equal: [ "firefox", << parameters.browser >> ]
|
|
|
|
steps:
|
|
|
|
- browser-tools/install-browser-tools:
|
|
|
|
install-firefox: true
|
|
|
|
install-chrome: false
|
|
|
|
install-geckodriver: true
|
|
|
|
install-chromedriver: false
|
|
|
|
- run: firefox --version
|
|
|
|
- run: geckodriver --version
|
|
|
|
- checkout
|
|
|
|
- attach_workspace:
|
|
|
|
at: .
|
|
|
|
- run: unzip ./persist/dist.zip
|
|
|
|
- run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules
|
|
|
|
- run: yarn run downloadsolc_assets_e2e && yarn run downloadsolc_assets_dist
|
|
|
|
- run: ls -la ./dist/apps/remix-ide/assets/js
|
|
|
|
- run: yarn run selenium-install || yarn run selenium-install
|
|
|
|
- run:
|
|
|
|
name: Start Selenium
|
|
|
|
command: yarn run selenium
|
|
|
|
background: true
|
|
|
|
- run: ./apps/remix-ide/ci/<< parameters.script >> << parameters.browser >> << parameters.jobsize >> << parameters.job >>
|
|
|
|
- store_test_results:
|
|
|
|
path: ./reports/tests
|
|
|
|
- store_artifacts:
|
|
|
|
path: ./reports/screenshots
|
|
|
|
|
|
|
|
tests-passed:
|
|
|
|
machine:
|
|
|
|
image: ubuntu-2004:202010-01
|
|
|
|
steps:
|
|
|
|
- run: echo done
|
|
|
|
|
|
|
|
remix-test-plugins:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
parameters:
|
|
|
|
plugin:
|
|
|
|
type: string
|
|
|
|
parallelism:
|
|
|
|
type: integer
|
|
|
|
default: 1
|
|
|
|
parallelism: << parameters.parallelism >>
|
|
|
|
steps:
|
|
|
|
- browser-tools/install-browser-tools:
|
|
|
|
install-firefox: false
|
|
|
|
install-chrome: true
|
|
|
|
install-geckodriver: false
|
|
|
|
install-chromedriver: true
|
|
|
|
- run: google-chrome --version
|
|
|
|
- run: chromedriver --version
|
|
|
|
- run: rm LICENSE.chromedriver 2> /dev/null || true
|
|
|
|
- checkout
|
|
|
|
- attach_workspace:
|
|
|
|
at: .
|
|
|
|
- run: unzip ./persist/dist.zip
|
|
|
|
- run: unzip ./persist/plugin-<< parameters.plugin >>.zip
|
|
|
|
- run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules
|
|
|
|
- run: yarn run downloadsolc_assets_e2e && yarn run downloadsolc_assets_dist
|
|
|
|
- run: yarn run selenium-install || yarn run selenium-install
|
|
|
|
- run:
|
|
|
|
name: Start Selenium
|
|
|
|
command: yarn run selenium
|
|
|
|
background: true
|
|
|
|
- run: ./apps/remix-ide/ci/browser_test_plugin.sh << parameters.plugin >>
|
|
|
|
- store_test_results:
|
|
|
|
path: ./reports/tests
|
|
|
|
- store_artifacts:
|
|
|
|
path: ./reports/screenshots
|
|
|
|
|
|
|
|
deploy-remix-live:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
environment:
|
|
|
|
- COMMIT_AUTHOR_EMAIL: "yann@ethereum.org"
|
|
|
|
- COMMIT_AUTHOR: "Circle CI"
|
|
|
|
- FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/404.html dist/apps/remix-ide/*.js dist/apps/remix-ide/assets dist/apps/remix-ide/favicon.ico"
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- save_cache:
|
|
|
|
key: v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
- run: yarn run downloadsolc_assets
|
|
|
|
- run: yarn run build:production
|
|
|
|
- run:
|
|
|
|
name: Deploy
|
|
|
|
command: |
|
|
|
|
if [ "${CIRCLE_BRANCH}" == "remix_live" ]; then
|
|
|
|
./apps/remix-ide/ci/deploy_from_travis_remix-live.sh;
|
|
|
|
fi
|
|
|
|
|
|
|
|
deploy-remix-alpha:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
environment:
|
|
|
|
- COMMIT_AUTHOR_EMAIL: "yann@ethereum.org"
|
|
|
|
- COMMIT_AUTHOR: "Circle CI"
|
|
|
|
- FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/404.html dist/apps/remix-ide/*.js dist/apps/remix-ide/assets dist/apps/remix-ide/favicon.ico"
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- save_cache:
|
|
|
|
key: v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
- run: yarn run downloadsolc_assets
|
|
|
|
- run: yarn run build:production
|
|
|
|
- run:
|
|
|
|
name: Deploy
|
|
|
|
command: |
|
|
|
|
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
|
|
|
./apps/remix-ide/ci/deploy_from_travis_remix-alpha.sh;
|
|
|
|
fi
|
|
|
|
|
|
|
|
deploy-remix-beta:
|
|
|
|
docker:
|
|
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
|
|
|
|
resource_class:
|
|
|
|
xlarge
|
|
|
|
environment:
|
|
|
|
- COMMIT_AUTHOR_EMAIL: "yann@ethereum.org"
|
|
|
|
- COMMIT_AUTHOR: "Circle CI"
|
|
|
|
- FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/404.html dist/apps/remix-ide/*.js dist/apps/remix-ide/assets dist/apps/remix-ide/favicon.ico"
|
|
|
|
working_directory: ~/remix-project
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
- run: yarn
|
|
|
|
- save_cache:
|
|
|
|
key: v1-deps-{{ checksum "yarn.lock" }}
|
|
|
|
paths:
|
|
|
|
- node_modules
|
|
|
|
- run: yarn run downloadsolc_assets
|
|
|
|
- run: yarn run build:production
|
|
|
|
- run:
|
|
|
|
name: Deploy
|
|
|
|
command: |
|
|
|
|
if [ "${CIRCLE_BRANCH}" == "remix_beta" ]; then
|
|
|
|
./apps/remix-ide/ci/deploy_from_travis_remix-beta.sh;
|
|
|
|
fi
|
|
|
|
workflows:
|
|
|
|
version: 2
|
|
|
|
run_flaky_tests:
|
|
|
|
when: << pipeline.parameters.run_flaky_tests >>
|
|
|
|
jobs:
|
|
|
|
- build
|
|
|
|
- remix-ide-browser:
|
|
|
|
requires:
|
|
|
|
- build
|
|
|
|
matrix:
|
|
|
|
parameters:
|
|
|
|
browser: ["chrome", "firefox"]
|
|
|
|
script: ["flaky.sh"]
|
|
|
|
job: ["nogroup"]
|
|
|
|
jobsize: ["1"]
|
|
|
|
build_all:
|
|
|
|
unless: << pipeline.parameters.run_flaky_tests >>
|
|
|
|
jobs:
|
|
|
|
- build
|
|
|
|
- build-plugin:
|
|
|
|
matrix:
|
|
|
|
parameters:
|
|
|
|
plugin: ["etherscan", "vyper", "plugin_api"]
|
|
|
|
- lint:
|
|
|
|
requires:
|
|
|
|
- build
|
|
|
|
- remix-libs
|
|
|
|
- remix-test-plugins:
|
|
|
|
name: test-plugin-<< matrix.plugin >>
|
|
|
|
requires:
|
|
|
|
- build
|
|
|
|
- build-plugin
|
|
|
|
matrix:
|
|
|
|
alias: plugins
|
|
|
|
parameters:
|
|
|
|
plugin: ["etherscan", "vyper", "plugin_api"]
|
|
|
|
parallelism: [1, 9]
|
|
|
|
exclude:
|
|
|
|
- plugin: plugin_api
|
|
|
|
parallelism: 1
|
|
|
|
- plugin: etherscan
|
|
|
|
parallelism: 9
|
|
|
|
- plugin: vyper
|
|
|
|
parallelism: 9
|
|
|
|
|
|
|
|
- remix-ide-browser:
|
|
|
|
requires:
|
|
|
|
- build
|
|
|
|
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:
|
|
|
|
- lint
|
|
|
|
- remix-libs
|
|
|
|
- remix-ide-browser
|
|
|
|
- plugins
|
|
|
|
- prebuild:
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: ['master', 'remix_live', 'remix_beta']
|
|
|
|
- deploy-remix-live:
|
|
|
|
requires:
|
|
|
|
- lint
|
|
|
|
- remix-libs
|
|
|
|
- remix-ide-browser
|
|
|
|
- plugins
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: remix_live
|
|
|
|
- deploy-remix-alpha:
|
|
|
|
requires:
|
|
|
|
- lint
|
|
|
|
- remix-libs
|
|
|
|
- remix-ide-browser
|
|
|
|
- plugins
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|
|
|
|
- deploy-remix-beta:
|
|
|
|
requires:
|
|
|
|
- lint
|
|
|
|
- remix-libs
|
|
|
|
- remix-ide-browser
|
|
|
|
- plugins
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: remix_beta
|
|
|
|
|
|
|
|
# VS Code Extension Version: 1.5.1
|