# Javascript Node CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-javascript/ for more details # version: 2 references: js_deps_cache_key: &js_deps_cache_key v1-dependency-js-deps-{{ checksum "package.json" }} js_deps_backup_cache_key: &js_deps_backup_cache_key v1-dependency-js-deps node_latest: &node_latest circleci/node:lts restore_cache: &restore_cache restore_cache: keys: - *js_deps_cache_key - *js_deps_backup_cache_key save_cache: &save_cache save_cache: paths: - node_modules key: *js_deps_cache_key execution_steps: &execution_steps steps: - checkout - *restore_cache - run: npm install - *save_cache - run: name: fetch engines from esvu command: | ./node_modules/.bin/esvu install $hostName - run: hostPath=$HOME/.esvu/bin/$hostPath npm run ci jobs: "Test262: verify tools; build & lint tests": docker: - image: cimg/python:3.7.4 working_directory: ~/test262 steps: - checkout - run: name: "Install requirements for generation tool" command: python -m pip install --user --requirement tools/generation/requirements.txt - run: name: "Install requirements for lint tool" command: python -m pip install --user --requirement tools/lint/requirements.txt - run: name: "Test the generation tool" command: ./tools/generation/test/run.py - run: name: "Test the lint tool" command: ./tools/lint/test/run.py - run: name: "Build tests; check for new changes" command: ./tools/scripts/ci_build.sh - run: name: "Lint tests" command: ./tools/scripts/ci_lint.sh # - run: # name: "Run deploy" # command: ./tools/scripts/deploy.sh "V8: New or modified tests execution": docker: - image: *node_latest # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ working_directory: ~/test262 environment: hostType: d8 hostPath: v8 hostName: v8 <<: [*execution_steps] "V8 --harmony: New or modified tests execution": docker: - image: *node_latest working_directory: ~/test262 environment: hostType: d8 hostPath: v8 hostName: v8 hostArgs: --harmony <<: [*execution_steps] "SpiderMonkey: New or modified tests execution": docker: - image: *node_latest working_directory: ~/test262 environment: hostType: jsshell hostPath: spidermonkey hostName: spidermonkey <<: [*execution_steps] "ChakraCore: New or modified tests execution": docker: - image: *node_latest working_directory: ~/test262 environment: hostType: ch hostPath: chakra hostName: chakra <<: [*execution_steps] "JSC: New or modified tests execution": docker: - image: *node_latest working_directory: ~/test262 environment: LANG: C hostType: jsc hostPath: javascriptcore hostName: javascriptcore <<: [*execution_steps] "XS: New or modified tests execution": docker: - image: *node_latest working_directory: ~/test262 environment: hostType: xs hostPath: xs hostName: xs <<: [*execution_steps] "engine262: New or modified tests execution": docker: - image: *node_latest working_directory: ~/test262 environment: hostType: engine262 hostPath: engine262 hostName: engine262 hostArgs: --features=all <<: [*execution_steps] "GraalJS: New or modified tests execution": docker: - image: *node_latest working_directory: ~/test262 environment: hostType: graaljs hostPath: graaljs hostName: graaljs <<: [*execution_steps] workflows: version: 2 Tools: jobs: - "Test262: verify tools; build & lint tests" Tests execution: jobs: - "ChakraCore: New or modified tests execution" - "JSC: New or modified tests execution" - "SpiderMonkey: New or modified tests execution" - "V8: New or modified tests execution" - "V8 --harmony: New or modified tests execution" - "XS: New or modified tests execution" - "engine262: New or modified tests execution" - "GraalJS: New or modified tests execution"