Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split e2e tests execution #2785

Merged
merged 2 commits into from
Apr 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
216 changes: 209 additions & 7 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,77 @@
#
version: 2
jobs:
remix-ide:
remix-ide-chrome-1:
docker:
# specify the version you desire here
- image: circleci/node:9.11.2-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: "assets background.js build icon.png index.html manifest.json README.md soljson.js package.json"
working_directory: ~/remix-ide

steps:
- checkout
- run: npm install
- run: npm run lint && npm run test && npm run make-mock-compiler
- run:
name: Download Selenium
command: ./node_modules/.bin/selenium-standalone install --config=../remix-ide/seleniumConfig.js
- run:
name: Start Selenium
command: ./node_modules/.bin/selenium-standalone start --config=../remix-ide/seleniumConfig.js
background: true
- run: ./ci/browser_tests_chrome_part1.sh
- store_artifacts:
path: ./reports/screenshots

remix-ide-chrome-2:
docker:
# specify the version you desire here
- image: circleci/node:9.11.2-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: "assets background.js build icon.png index.html manifest.json README.md soljson.js package.json"
working_directory: ~/remix-ide

steps:
- checkout
- run: npm install
- run: npm run lint && npm run test && npm run make-mock-compiler
- run:
name: Download Selenium
command: ./node_modules/.bin/selenium-standalone install --config=../remix-ide/seleniumConfig.js
- run:
name: Start Selenium
command: ./node_modules/.bin/selenium-standalone start --config=../remix-ide/seleniumConfig.js
background: true
- run: ./ci/browser_tests_chrome_part2.sh
- store_artifacts:
path: ./reports/screenshots

remix-ide-firefox-1:
docker:
# specify the version you desire here
- image: circleci/node:9.11.2-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"
Expand All @@ -36,18 +99,133 @@ jobs:
- run:
name: Install Firefox
command: sudo dpkg -i firefox-mozilla-build_73.0.1-0ubuntu1_amd64.deb
- run: ./ci/browser_tests.sh
- run: ./ci/browser_tests_firefox_part1.sh
- store_artifacts:
path: ./reports/screenshots

remix-ide-firefox-2:
docker:
# specify the version you desire here
- image: circleci/node:9.11.2-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: "assets background.js build icon.png index.html manifest.json README.md soljson.js package.json"
working_directory: ~/remix-ide

steps:
- checkout
- run: npm install
- run: npm run lint && npm run test && npm run make-mock-compiler
- run:
name: Download Selenium
command: ./node_modules/.bin/selenium-standalone install --config=../remix-ide/seleniumConfig.js
- run:
name: Start Selenium
command: ./node_modules/.bin/selenium-standalone start --config=../remix-ide/seleniumConfig.js
background: true
- run:
name: Download Latest Firefox
command: sudo apt-get purge -y firefox && wget https://sourceforge.net/projects/ubuntuzilla/files/mozilla/apt/pool/main/f/firefox-mozilla-build/firefox-mozilla-build_73.0.1-0ubuntu1_amd64.deb
- run:
name: Install Firefox
command: sudo dpkg -i firefox-mozilla-build_73.0.1-0ubuntu1_amd64.deb
- run: ./ci/browser_tests_firefox_part2.sh
- store_artifacts:
path: ./reports/screenshots

remix-ide-run-deploy:
docker:
# specify the version you desire here
- image: circleci/node:9.11.2-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: "assets background.js build icon.png index.html manifest.json README.md soljson.js package.json"
working_directory: ~/remix-ide

steps:
- checkout
- run: npm install
- run: npm run lint && npm run test && npm run make-mock-compiler
- run:
name: Download Selenium
command: ./node_modules/.bin/selenium-standalone install --config=../remix-ide/seleniumConfig.js
- run:
name: Start Selenium
command: ./node_modules/.bin/selenium-standalone start --config=../remix-ide/seleniumConfig.js
background: true
- run: ./ci/browser_tests_run_deploy.sh
- store_artifacts:
path: ./reports/screenshots


deploy-remix-live:
docker:
# specify the version you desire here
- image: circleci/node:9.11.2-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: "assets background.js build icon.png index.html manifest.json README.md soljson.js package.json"
working_directory: ~/remix-ide

steps:
- checkout
- run: npm install
- run: npm run lint && npm run test && npm run make-mock-compiler
- run:
name: Deploy
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
./ci/deploy_from_travis_remix-alpha.sh;
if [ "${CIRCLE_BRANCH}" == "remix_live" ]; then
./ci/deploy_from_travis_remix-live.sh;
fi
- store_artifacts:
path: ./reports/screenshots

deploy-remix-alpha:
docker:
# specify the version you desire here
- image: circleci/node:9.11.2-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: "assets background.js build icon.png index.html manifest.json README.md soljson.js package.json"
working_directory: ~/remix-ide

steps:
- checkout
- run: npm install
- run: npm run lint && npm run test && npm run make-mock-compiler
- run:
name: Deploy
command: |
if [ "${CIRCLE_BRANCH}" == "remix_live" ]; then
./ci/deploy_from_travis_remix-live.sh;
if [ "${CIRCLE_BRANCH}" == "master" ]; then
./ci/deploy_from_travis_remix-alpha.sh;
fi
- store_artifacts:
path: ./reports/screenshots
Expand All @@ -56,4 +234,28 @@ workflows:
version: 2
build_all:
jobs:
- remix-ide
- remix-ide-chrome-1
- remix-ide-firefox-1
- remix-ide-chrome-2
- remix-ide-firefox-2
- remix-ide-run-deploy
- deploy-remix-live:
requires:
- remix-ide-chrome-1
- remix-ide-firefox-1
- remix-ide-chrome-2
- remix-ide-firefox-2
- remix-ide-run-deploy
filters:
branches:
only: remix_live
- deploy-remix-alpha:
requires:
- remix-ide-chrome-1
- remix-ide-firefox-1
- remix-ide-chrome-2
- remix-ide-firefox-2
- remix-ide-run-deploy
filters:
branches:
only: master
39 changes: 39 additions & 0 deletions ci/browser_tests_chrome_part1.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env bash

set -e

setupRemixd () {
mkdir remixdSharedfolder
cd contracts
echo 'sharing folder: '
echo $PWD
./../node_modules/remixd/bin/remixd -s $PWD --remix-ide http://127.0.0.1:8080 &
cd ..
}

BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}}
echo "$BUILD_ID"
TEST_EXITCODE=0

npm run ganache-cli &
npm run serve &
setupRemixd

sleep 5

npm run nightwatch_local_libraryDeployment || TEST_EXITCODE=1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ballot test is missing npm run nightwatch_local_ballot

npm run nightwatch_local_solidityImport || TEST_EXITCODE=1
npm run nightwatch_local_recorder || TEST_EXITCODE=1
npm run nightwatch_local_transactionExecution || TEST_EXITCODE=1
npm run nightwatch_local_staticAnalysis || TEST_EXITCODE=1
npm run nightwatch_local_signingMessage || TEST_EXITCODE=1
npm run nightwatch_local_specialFunctions || TEST_EXITCODE=1
npm run nightwatch_local_solidityUnitTests || TEST_EXITCODE=1
npm run nightwatch_local_remixd || TEST_EXITCODE=1
npm run nightwatch_local_terminal || TEST_EXITCODE=1

echo "$TEST_EXITCODE"
if [ "$TEST_EXITCODE" -eq 1 ]
then
exit 1
fi
39 changes: 39 additions & 0 deletions ci/browser_tests_chrome_part2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env bash

set -e

setupRemixd () {
mkdir remixdSharedfolder
cd contracts
echo 'sharing folder: '
echo $PWD
./../node_modules/remixd/bin/remixd -s $PWD --remix-ide http://127.0.0.1:8080 &
cd ..
}

BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}}
echo "$BUILD_ID"
TEST_EXITCODE=0

npm run ganache-cli &
npm run serve &
setupRemixd

sleep 5

npm run nightwatch_local_generalSettings || TEST_EXITCODE=1
npm run nightwatch_local_ballot || TEST_EXITCODE=1
npm run nightwatch_local_gist || TEST_EXITCODE=1
npm run nightwatch_local_workspace || TEST_EXITCODE=1
npm run nightwatch_local_defaultLayout || TEST_EXITCODE=1
npm run nightwatch_local_pluginManager || TEST_EXITCODE=1
npm run nightwatch_local_publishContract || TEST_EXITCODE=1
npm run nightwatch_local_fileExplorer || TEST_EXITCODE=1
npm run nightwatch_local_debugger || TEST_EXITCODE=1
npm run nightwatch_local_editor || TEST_EXITCODE=1

echo "$TEST_EXITCODE"
if [ "$TEST_EXITCODE" -eq 1 ]
then
exit 1
fi
39 changes: 39 additions & 0 deletions ci/browser_tests_firefox_part1.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env bash

set -e

setupRemixd () {
mkdir remixdSharedfolder
cd contracts
echo 'sharing folder: '
echo $PWD
./../node_modules/remixd/bin/remixd -s $PWD --remix-ide http://127.0.0.1:8080 &
cd ..
}

BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}}
echo "$BUILD_ID"
TEST_EXITCODE=0

npm run ganache-cli &
npm run serve &
setupRemixd

sleep 5

npm run nightwatch_local_libraryDeployment_firefox || TEST_EXITCODE=1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here also, ballot test is missing npm run nightwatch_local_ballot_firefox

npm run nightwatch_local_solidityImport_firefox || TEST_EXITCODE=1
npm run nightwatch_local_recorder_firefox || TEST_EXITCODE=1
npm run nightwatch_local_transactionExecution_firefox || TEST_EXITCODE=1
npm run nightwatch_local_staticAnalysis_firefox || TEST_EXITCODE=1
npm run nightwatch_local_signingMessage_firefox || TEST_EXITCODE=1
npm run nightwatch_local_specialFunctions_firefox || TEST_EXITCODE=1
npm run nightwatch_local_solidityUnitTests_firefox || TEST_EXITCODE=1
npm run nightwatch_local_remixd_firefox || TEST_EXITCODE=1
npm run nightwatch_local_terminal_firefox || TEST_EXITCODE=1

echo "$TEST_EXITCODE"
if [ "$TEST_EXITCODE" -eq 1 ]
then
exit 1
fi
Loading