You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
459 lines
14 KiB
459 lines
14 KiB
# Javascript Node CircleCI 2.0 configuration file
|
|
#
|
|
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
|
|
#
|
|
version: 2.1
|
|
parameters:
|
|
run_flaky_tests:
|
|
type: boolean
|
|
default: true
|
|
orbs:
|
|
browser-tools: circleci/browser-tools@1.2.3
|
|
jobs:
|
|
build:
|
|
docker:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# 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
|
|
steps:
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm install
|
|
- save_cache:
|
|
key: v1-deps-{{ checksum "package-lock.json" }}
|
|
paths:
|
|
- node_modules
|
|
- run: npm run downloadsolc_assets
|
|
- run: npx nx build remix-ide
|
|
- run: npx nx build remix-ide-e2e-src-local-plugin
|
|
|
|
- run: npm run build:libs
|
|
- run: mkdir persist && zip -r persist/dist.zip dist
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- 'persist'
|
|
lint:
|
|
docker:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# 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: 35
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm install
|
|
- run:
|
|
name: Remix Libs Linting
|
|
command: ./apps/remix-ide/ci/lint.sh
|
|
remix-libs:
|
|
docker:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# 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
|
|
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run: unzip ./persist/dist.zip
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm i
|
|
- run: cd dist/libs/remix-tests && npm install
|
|
- run: npm run test:libs
|
|
|
|
remix-ide-chrome:
|
|
docker:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# 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: 80
|
|
steps:
|
|
- browser-tools/install-chrome
|
|
- browser-tools/install-chromedriver
|
|
- run:
|
|
command: |
|
|
google-chrome --version
|
|
chromedriver --version
|
|
java -jar /usr/local/bin/selenium.jar --version
|
|
name: Check install
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run: unzip ./persist/dist.zip
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm install
|
|
- run:
|
|
name: Start Selenium
|
|
command: java -jar /usr/local/bin/selenium.jar
|
|
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/node:14.17.6-browsers
|
|
|
|
# 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: 80
|
|
steps:
|
|
- browser-tools/install-chrome
|
|
- browser-tools/install-chromedriver
|
|
- run:
|
|
command: |
|
|
google-chrome --version
|
|
chromedriver --version
|
|
java -jar /usr/local/bin/selenium.jar --version
|
|
name: Check install
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run: unzip ./persist/dist.zip
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm install
|
|
- run:
|
|
name: Start Selenium
|
|
command: java -jar /usr/local/bin/selenium.jar
|
|
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/node:14.17.6-browsers
|
|
|
|
# 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: 80
|
|
steps:
|
|
- browser-tools/install-firefox
|
|
- browser-tools/install-geckodriver
|
|
- run:
|
|
command: |
|
|
firefox --version
|
|
geckodriver --version
|
|
java -jar /usr/local/bin/selenium.jar --version
|
|
name: Check install
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run: unzip ./persist/dist.zip
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm install
|
|
- run:
|
|
name: Start Selenium
|
|
command: java -jar /usr/local/bin/selenium.jar
|
|
background: true
|
|
- run: ./apps/remix-ide/ci/browser_test.sh firefox
|
|
- store_test_results:
|
|
path: ./reports/tests
|
|
- store_artifacts:
|
|
path: ./reports/screenshots
|
|
flaky-firefox:
|
|
docker:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# 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: 80
|
|
steps:
|
|
- browser-tools/install-firefox
|
|
- browser-tools/install-geckodriver
|
|
- run:
|
|
command: |
|
|
firefox --version
|
|
geckodriver --version
|
|
java -jar /usr/local/bin/selenium.jar --version
|
|
name: Check install
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run: unzip ./persist/dist.zip
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm install
|
|
- run:
|
|
name: Start Selenium
|
|
command: java -jar /usr/local/bin/selenium.jar
|
|
background: true
|
|
- run: ./apps/remix-ide/ci/flaky.sh firefox
|
|
- store_test_results:
|
|
path: ./reports/tests
|
|
- store_artifacts:
|
|
path: ./reports/screenshots
|
|
|
|
remix-ide-plugin-api:
|
|
docker:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# 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:
|
|
- browser-tools/install-chrome
|
|
- browser-tools/install-chromedriver
|
|
- run:
|
|
command: |
|
|
google-chrome --version
|
|
chromedriver --version
|
|
java -jar /usr/local/bin/selenium.jar --version
|
|
name: Check install
|
|
- checkout
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run: unzip ./persist/dist.zip
|
|
- restore_cache:
|
|
keys:
|
|
- v1-deps-{{ checksum "package-lock.json" }}
|
|
- run: npm install
|
|
- run:
|
|
name: Start Selenium
|
|
command: java -jar /usr/local/bin/selenium.jar
|
|
background: true
|
|
- run: ./apps/remix-ide/ci/browser_tests_plugin_api.sh
|
|
- store_test_results:
|
|
path: ./reports/tests
|
|
- store_artifacts:
|
|
path: ./reports/screenshots
|
|
|
|
deploy-remix-live:
|
|
docker:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# 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"
|
|
- FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js"
|
|
working_directory: ~/remix-project
|
|
|
|
steps:
|
|
- checkout
|
|
- run: npm install
|
|
- run: npm run downloadsolc_assets
|
|
- run: npm 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:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# Specify service dependencies here if necessary
|
|
# CircleCI maintains a library of pre-built images
|
|
resource_class: xlarge
|
|
# documented at https://circleci.com/docs/2.0/circleci-images/
|
|
# - image: circleci/mongo:3.4.4
|
|
environment:
|
|
- COMMIT_AUTHOR_EMAIL: "yann@ethereum.org"
|
|
- COMMIT_AUTHOR: "Circle CI"
|
|
- FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js"
|
|
working_directory: ~/remix-project
|
|
|
|
steps:
|
|
- checkout
|
|
- run: npm install
|
|
- run: npm run downloadsolc_assets
|
|
- run: npm 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:
|
|
# specify the version you desire here
|
|
- image: cimg/node:14.17.6-browsers
|
|
|
|
# Specify service dependencies here if necessary
|
|
# CircleCI maintains a library of pre-built images
|
|
resource_class: xlarge
|
|
# documented at https://circleci.com/docs/2.0/circleci-images/
|
|
# - image: circleci/mongo:3.4.4
|
|
environment:
|
|
- COMMIT_AUTHOR_EMAIL: "yann@ethereum.org"
|
|
- COMMIT_AUTHOR: "Circle CI"
|
|
- FILES_TO_PACKAGE: "dist/apps/remix-ide/index.html dist/apps/remix-ide/raw-loader*.js dist/apps/remix-ide/assets dist/apps/remix-ide/main*.js dist/apps/remix-ide/polyfills*.js dist/apps/remix-ide/favicon.ico dist/apps/remix-ide/vendors~app*.js dist/apps/remix-ide/app*.js"
|
|
working_directory: ~/remix-project
|
|
|
|
steps:
|
|
- checkout
|
|
- run: npm install
|
|
- run: npm run build:libs
|
|
- run: npm run downloadsolc_assets
|
|
- run: npm 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
|
|
- flaky-chrome:
|
|
requires:
|
|
- build
|
|
- flaky-firefox:
|
|
requires:
|
|
- build
|
|
build_all:
|
|
unless: << pipeline.parameters.run_flaky_tests >>
|
|
jobs:
|
|
- build
|
|
- lint:
|
|
requires:
|
|
- build
|
|
- remix-libs:
|
|
requires:
|
|
- build
|
|
- remix-ide-plugin-api:
|
|
requires:
|
|
- build
|
|
- remix-ide-chrome:
|
|
requires:
|
|
- build
|
|
- remix-ide-firefox:
|
|
requires:
|
|
- build
|
|
- deploy-remix-live:
|
|
requires:
|
|
- lint
|
|
- remix-libs
|
|
- remix-ide-chrome
|
|
- remix-ide-firefox
|
|
- remix-ide-plugin-api
|
|
filters:
|
|
branches:
|
|
only: remix_live
|
|
- deploy-remix-alpha:
|
|
requires:
|
|
- lint
|
|
- remix-libs
|
|
- remix-ide-chrome
|
|
- remix-ide-firefox
|
|
- remix-ide-plugin-api
|
|
filters:
|
|
branches:
|
|
only: master
|
|
- deploy-remix-beta:
|
|
requires:
|
|
- lint
|
|
- remix-libs
|
|
- remix-ide-chrome
|
|
- remix-ide-firefox
|
|
- remix-ide-plugin-api
|
|
filters:
|
|
branches:
|
|
only: remix_beta
|
|
|
|
|