remix-project mirror
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.
remix-project/.circleci/config.yml

410 lines
12 KiB

2 years ago
version: 2.1
parameters:
run_flaky_tests:
type: boolean
2 years ago
default: false
1 year ago
orbs:
browser-tools: circleci/browser-tools@1.4.4
5 years ago
jobs:
3 years ago
build:
docker:
- image: cimg/node:20.0.0-browsers
2 years ago
resource_class:
xlarge
working_directory: ~/remix-project
1 year ago
steps:
- checkout
3 years ago
- restore_cache:
keys:
3 years ago
- v1-deps-{{ checksum "yarn.lock" }}
2 years ago
- run: yarn
3 years ago
- save_cache:
3 years ago
key: v1-deps-{{ checksum "yarn.lock" }}
3 years ago
paths:
- node_modules
- run:
name: Build
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
NX_BIN_URL=http://127.0.0.1:8080/assets/js/soljson NX_WASM_URL=http://127.0.0.1:8080/assets/js/soljson NPM_URL=http://localhost:9090/ yarn build:production
else
NX_BIN_URL=http://127.0.0.1:8080/assets/js/soljson NX_WASM_URL=http://127.0.0.1:8080/assets/js/soljson NPM_URL=http://localhost:9090/ yarn build
fi
- run: yarn run build:e2e
2 years ago
- run: grep -ir "[0-9]+commit" apps/* libs/* --include \*.ts --include \*.tsx --include \*.json > soljson-versions.txt
- restore_cache:
keys:
2 years ago
- soljson-v7-{{ checksum "soljson-versions.txt" }}
2 years ago
- run: yarn run downloadsolc_assets_e2e
- save_cache:
2 years ago
key: soljson-v7-{{ checksum "soljson-versions.txt" }}
paths:
- dist/apps/remix-ide/assets/js/soljson
2 years ago
- run: mkdir persist && zip -0 -r persist/dist.zip dist
3 years ago
- persist_to_workspace:
root: .
paths:
2 years ago
- "persist"
2 years ago
build-plugin:
docker:
- image: cimg/node:20.0.0-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 nx build << parameters.plugin >> --configuration=production
- run: mkdir persist && zip -0 -r persist/plugin-<< parameters.plugin >>.zip dist
- persist_to_workspace:
root: .
paths:
- "persist"
4 years ago
lint:
3 years ago
docker:
- image: cimg/node:20.0.0-browsers
2 years ago
resource_class:
xlarge
3 years ago
working_directory: ~/remix-project
3 years ago
steps:
- checkout
3 years ago
- restore_cache:
keys:
3 years ago
- v1-deps-{{ checksum "yarn.lock" }}
2 years ago
- run: yarn
# This is a combination of 50 commits. # This is the 1st commit message: executors # This is the commit message #2: libs # This is the commit message #3: remixd # This is the commit message #4: add react app # This is the commit message #5: debugging # This is the commit message #6: debug + sol # This is the commit message #7: fixes # This is the commit message #8: tsconfig # This is the commit message #9: ast walker # This is the commit message #10: as walker # This is the commit message #11: remixd etc # This is the commit message #12: commander # This is the commit message #13: remove jest # This is the commit message #14: rm ui files # This is the commit message #15: rm reserved keywords # This is the commit message #16: testrunner # This is the commit message #17: compiler # This is the commit message #18: production build # This is the commit message #19: config # This is the commit message #20: config # This is the commit message #21: web types # This is the commit message #22: update react # This is the commit message #23: add vm # This is the commit message #24: add workers # This is the commit message #25: worker2 # This is the commit message #26: rm react app # This is the commit message #27: remixd # This is the commit message #28: worker fix # This is the commit message #29: fix detection # This is the commit message #30: revert react # This is the commit message #31: rename type # This is the commit message #32: loading handler # This is the commit message #33: remove import # This is the commit message #34: rename # This is the commit message #35: local plugin # This is the commit message #36: etherscan # This is the commit message #37: revert react # This is the commit message #38: port # This is the commit message #39: rm worker # This is the commit message #40: publicpath # This is the commit message #41: fix test # This is the commit message #42: 112 # This is the commit message #43: show version # This is the commit message #44: "axios": "1.1.2", # This is the commit message #45: config # This is the commit message #46: lint # This is the commit message #47: fix build # This is the commit message #48: lint # This is the commit message #49: error on purpose # This is the commit message #50: test error
2 years ago
- run: yarn nx graph --file=./projects.json
- run:
name: Remix Libs Linting
# This is a combination of 50 commits. # This is the 1st commit message: executors # This is the commit message #2: libs # This is the commit message #3: remixd # This is the commit message #4: add react app # This is the commit message #5: debugging # This is the commit message #6: debug + sol # This is the commit message #7: fixes # This is the commit message #8: tsconfig # This is the commit message #9: ast walker # This is the commit message #10: as walker # This is the commit message #11: remixd etc # This is the commit message #12: commander # This is the commit message #13: remove jest # This is the commit message #14: rm ui files # This is the commit message #15: rm reserved keywords # This is the commit message #16: testrunner # This is the commit message #17: compiler # This is the commit message #18: production build # This is the commit message #19: config # This is the commit message #20: config # This is the commit message #21: web types # This is the commit message #22: update react # This is the commit message #23: add vm # This is the commit message #24: add workers # This is the commit message #25: worker2 # This is the commit message #26: rm react app # This is the commit message #27: remixd # This is the commit message #28: worker fix # This is the commit message #29: fix detection # This is the commit message #30: revert react # This is the commit message #31: rename type # This is the commit message #32: loading handler # This is the commit message #33: remove import # This is the commit message #34: rename # This is the commit message #35: local plugin # This is the commit message #36: etherscan # This is the commit message #37: revert react # This is the commit message #38: port # This is the commit message #39: rm worker # This is the commit message #40: publicpath # This is the commit message #41: fix test # This is the commit message #42: 112 # This is the commit message #43: show version # This is the commit message #44: "axios": "1.1.2", # This is the commit message #45: config # This is the commit message #46: lint # This is the commit message #47: fix build # This is the commit message #48: lint # This is the commit message #49: error on purpose # This is the commit message #50: test error
2 years ago
command: node ./apps/remix-ide/ci/lint-targets.js
4 years ago
remix-libs:
docker:
- image: cimg/node:20.0.0-browsers
2 years ago
resource_class:
xlarge
4 years ago
working_directory: ~/remix-project
steps:
- checkout
3 years ago
- attach_workspace:
2 years ago
at: .
3 years ago
- restore_cache:
keys:
3 years ago
- v1-deps-{{ checksum "yarn.lock" }}
- run: yarn --version
2 years ago
- run: yarn
- run: yarn build:libs
2 years ago
- run: cd dist/libs/remix-tests && yarn
# This is a combination of 50 commits. # This is the 1st commit message: executors # This is the commit message #2: libs # This is the commit message #3: remixd # This is the commit message #4: add react app # This is the commit message #5: debugging # This is the commit message #6: debug + sol # This is the commit message #7: fixes # This is the commit message #8: tsconfig # This is the commit message #9: ast walker # This is the commit message #10: as walker # This is the commit message #11: remixd etc # This is the commit message #12: commander # This is the commit message #13: remove jest # This is the commit message #14: rm ui files # This is the commit message #15: rm reserved keywords # This is the commit message #16: testrunner # This is the commit message #17: compiler # This is the commit message #18: production build # This is the commit message #19: config # This is the commit message #20: config # This is the commit message #21: web types # This is the commit message #22: update react # This is the commit message #23: add vm # This is the commit message #24: add workers # This is the commit message #25: worker2 # This is the commit message #26: rm react app # This is the commit message #27: remixd # This is the commit message #28: worker fix # This is the commit message #29: fix detection # This is the commit message #30: revert react # This is the commit message #31: rename type # This is the commit message #32: loading handler # This is the commit message #33: remove import # This is the commit message #34: rename # This is the commit message #35: local plugin # This is the commit message #36: etherscan # This is the commit message #37: revert react # This is the commit message #38: port # This is the commit message #39: rm worker # This is the commit message #40: publicpath # This is the commit message #41: fix test # This is the commit message #42: 112 # This is the commit message #43: show version # This is the commit message #44: "axios": "1.1.2", # This is the commit message #45: config # This is the commit message #46: lint # This is the commit message #47: fix build # This is the commit message #48: lint # This is the commit message #49: error on purpose # This is the commit message #50: test error
2 years ago
- 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
2 years ago
2 years ago
remix-ide-browser:
3 years ago
docker:
- image: cimg/node:20.0.0-browsers
2 years ago
resource_class:
xlarge
3 years ago
working_directory: ~/remix-project
2 years ago
parameters:
2 years ago
browser:
type: string
2 years ago
script:
type: string
2 years ago
job:
2 years ago
type: string
2 years ago
jobsize:
2 years ago
type: string
2 years ago
parallelism: 10
3 years ago
steps:
2 years ago
- when:
2 years ago
condition:
equal: [ "chrome", << parameters.browser >> ]
steps:
1 year ago
- browser-tools/install-browser-tools:
2 years ago
install-firefox: false
1 year ago
install-chrome: true
install-chromedriver: false
2 years ago
install-geckodriver: false
1 year ago
- install-chromedriver-custom-linux
2 years ago
- run: google-chrome --version
- run: chromedriver --version
2 years ago
- run: rm LICENSE.chromedriver 2> /dev/null || true
2 years ago
- when:
2 years ago
condition:
equal: [ "firefox", << parameters.browser >> ]
steps:
1 year ago
- browser-tools/install-browser-tools:
2 years ago
install-firefox: true
install-chrome: false
2 years ago
install-geckodriver: true
install-chromedriver: false
2 years ago
- run: firefox --version
- run: geckodriver --version
3 years ago
- checkout
- attach_workspace:
2 years ago
at: .
- run: unzip ./persist/dist.zip
- run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules
2 years ago
2 years ago
- run: ls -la ./dist/apps/remix-ide/assets/js
2 years ago
- run: yarn run selenium-install || yarn run selenium-install
1 year ago
- when:
condition:
equal: [ "chrome", << parameters.browser >> ]
steps:
- run: cp ~/bin/chromedriver /home/circleci/remix-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/
2 years ago
- run:
2 years ago
name: Start Selenium
2 years ago
command: yarn run selenium
3 years ago
background: true
2 years ago
- run: ./apps/remix-ide/ci/<< parameters.script >> << parameters.browser >> << parameters.jobsize >> << parameters.job >>
- store_test_results:
4 years ago
path: ./reports/tests
5 years ago
- store_artifacts:
4 years ago
path: ./reports/screenshots
2 years ago
2 years ago
tests-passed:
2 years ago
machine:
image: ubuntu-2004:202010-01
steps:
- run: echo done
2 years ago
2 years ago
remix-test-plugins:
2 years ago
docker:
- image: cimg/node:20.0.0-browsers
2 years ago
resource_class:
xlarge
2 years ago
working_directory: ~/remix-project
2 years ago
parameters:
plugin:
2 years ago
type: string
parallelism:
type: integer
default: 1
parallelism: << parameters.parallelism >>
2 years ago
steps:
1 year ago
- browser-tools/install-browser-tools:
2 years ago
install-firefox: false
install-chrome: true
2 years ago
install-geckodriver: false
install-chromedriver: false
1 year ago
- install-chromedriver-custom-linux
2 years ago
- run: google-chrome --version
- run: chromedriver --version
2 years ago
- run: rm LICENSE.chromedriver 2> /dev/null || true
2 years ago
- checkout
- attach_workspace:
2 years ago
at: .
2 years ago
- 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 selenium-install || yarn run selenium-install
- run: cp ~/bin/chromedriver /home/circleci/remix-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/
2 years ago
- run:
2 years ago
name: Start Selenium
2 years ago
command: yarn run selenium
2 years ago
background: true
- run: ./apps/remix-ide/ci/browser_test_plugin.sh << parameters.plugin >>
2 years ago
- store_test_results:
path: ./reports/tests
- store_artifacts:
path: ./reports/screenshots
2 years ago
2 years ago
predeploy:
2 years ago
docker:
- image: cimg/node:20.0.0-browsers
2 years ago
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
2 years ago
- run: yarn build:production
2 years ago
- run: mkdir persist && zip -0 -r persist/predeploy.zip dist
2 years ago
- persist_to_workspace:
root: .
paths:
- "persist"
2 years ago
deploy-build:
5 years ago
docker:
- image: cimg/node:20.0.0-browsers
5 years ago
2 years ago
resource_class:
2 years ago
xlarge
5 years ago
environment:
2 years ago
COMMIT_AUTHOR_EMAIL: "yann@ethereum.org"
COMMIT_AUTHOR: "Circle CI"
5 years ago
working_directory: ~/remix-project
2 years ago
parameters:
script:
type: string
steps:
- checkout
2 years ago
- attach_workspace:
at: .
2 years ago
- run: unzip ./persist/predeploy.zip
2 years ago
- run: ./apps/remix-ide/ci/deploy_from_travis_remix-<< parameters.script >>.sh
2 years ago
5 years ago
workflows:
run_flaky_tests:
when: << pipeline.parameters.run_flaky_tests >>
5 years ago
jobs:
3 years ago
- build
2 years ago
- remix-ide-browser:
3 years ago
requires:
- build
2 years ago
matrix:
parameters:
browser: ["chrome", "firefox"]
script: ["flaky.sh"]
2 years ago
job: ["nogroup"]
jobsize: ["1"]
build_all:
3 years ago
unless: << pipeline.parameters.run_flaky_tests >>
jobs:
- build
- build-plugin:
matrix:
parameters:
plugin: ["plugin_api"]
3 years ago
- lint:
requires:
- build
- remix-libs
2 years ago
- remix-test-plugins:
name: test-plugin-<< matrix.plugin >>
requires:
- build
- build-plugin
2 years ago
matrix:
2 years ago
alias: plugins
2 years ago
parameters:
plugin: ["plugin_api"]
parallelism: [1, 9]
exclude:
- plugin: plugin_api
parallelism: 1
2 years ago
- remix-ide-browser:
requires:
3 years ago
- build
2 years ago
matrix:
parameters:
2 years ago
browser: ["chrome", "firefox"]
2 years ago
script: ["browser_test.sh"]
2 years ago
job: ["0","1","2","3","4","5","6","7","8","9"]
jobsize: ["10"]
2 years ago
- tests-passed:
2 years ago
requires:
2 years ago
- lint
- remix-libs
2 years ago
- remix-ide-browser
2 years ago
- plugins
2 years ago
2 years ago
- predeploy:
2 years ago
filters:
branches:
2 years ago
only: ['master', 'remix_live', 'remix_beta']
2 years ago
- deploy-build:
script: "live"
2 years ago
name: "deploy-live"
5 years ago
requires:
3 years ago
- lint
- remix-libs
2 years ago
- remix-ide-browser
2 years ago
- plugins
2 years ago
- predeploy
5 years ago
filters:
branches:
only: remix_live
2 years ago
- deploy-build:
script: "alpha"
2 years ago
name: "deploy-alpha"
5 years ago
requires:
3 years ago
- lint
- remix-libs
2 years ago
- remix-ide-browser
2 years ago
- plugins
2 years ago
- predeploy
5 years ago
filters:
branches:
only: master
2 years ago
- deploy-build:
script: "beta"
2 years ago
name: "deploy-beta"
requires:
3 years ago
- lint
- remix-libs
2 years ago
- remix-ide-browser
2 years ago
- plugins
2 years ago
- predeploy
filters:
branches:
only: remix_beta
2 years ago
1 year ago
# VS Code Extension Version: 1.5.1
1 year ago
commands:
install-chromedriver-custom-linux:
description: Custom script to install chromedriver with better version support for linux
steps:
- run:
1 year ago
name: install-chromedriver-custom-linux
command: |
1 year ago
google-chrome --version > version.txt
VERSION=$(grep -Eo '[0-9]+\.' < version.txt | head -1)
1 year ago
# CHROMEDRIVER_URL=$(curl -s 'https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json' | jq '.channels.Stable.downloads.chromedriver[] | select(.platform == "linux64") | .url' | tr -d '"')
1 year ago
CHROMEDRIVER_URL=$(curl -s 'https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json' | jq --arg v "$VERSION" '.versions[] | select(.version | startswith($v)) | .downloads.chromedriver[] | select(.platform == "linux64") | .url' | tail -n1 | tr -d '"')
1 year ago
echo $CHROMEDRIVER_URL
1 year ago
ZIPFILEPATH="/tmp/chromedriver.zip"
echo "Downloading from $CHROMEDRIVER_URL"
curl -f --silent $CHROMEDRIVER_URL > "$ZIPFILEPATH"
1 year ago
BINFILEPATH="$HOME/bin/chromedriver-linux"
1 year ago
echo "Extracting to $BINFILEPATH"
1 year ago
unzip -p "$ZIPFILEPATH" chromedriver-linux64/chromedriver > "$BINFILEPATH"
1 year ago
echo Setting execute flag
chmod +x "$BINFILEPATH"
echo Updating symlink
ln -nfs "$BINFILEPATH" ~/bin/chromedriver
echo Removing ZIP file
rm "$ZIPFILEPATH"
1 year ago
rm version.txt
1 year ago
echo Done
chromedriver -v