Files
jerryscript/.github/workflows/gh-actions.yml
T
Csaba Osztrogonác dd77ec914a Fine-tune test262-esnext jobs on the CI (#4566)
Previously test262-esnext was separated to 2 jobs: language and other tests.
But now tests run in parallel and CI runs release and debug tests too,
separating jobs to release and debug mode is much more obvious. But
debug tests are still slow (~10-11 minutes), let's split only debug job.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác csaba.osztrogonac@h-lab.eu
2021-10-27 13:07:58 +02:00

314 lines
11 KiB
YAML

name: JerryScript CI
on: [push, pull_request]
env:
RUNNER: tools/run-tests.py
jobs:
Checks:
runs-on: ubuntu-18.04 # needed for checker version stability
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- run: sudo apt update
- run: sudo apt install doxygen vera++ cppcheck pylint python-serial
- run: $RUNNER --check-signed-off=gh-actions
if: ${{ always() }}
- run: $RUNNER --check-doxygen
if: ${{ always() }}
- run: $RUNNER --check-vera
if: ${{ always() }}
- run: $RUNNER --check-license
if: ${{ always() }}
- run: $RUNNER --check-magic-strings
if: ${{ always() }}
- run: $RUNNER --check-pylint
if: ${{ always() }}
- run: $RUNNER --check-cppcheck
if: ${{ always() }}
Linux_x86-64_Build_Correctness_Debugger_Tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '2.7' # needed by jerry-debugger
- run: $RUNNER -q --jerry-tests
- run: $RUNNER -q --jerry-tests --build-debug
- run: $RUNNER -q --jerry-debugger
- run: $RUNNER -q --jerry-debugger --build-debug
Linux_x86_cpointer-32bit_Build_Correctness_Tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-multilib
- run: $RUNNER -q --jerry-tests --buildoptions=--compile-flag=-m32,--cpointer-32bit=on
- run: $RUNNER -q --jerry-tests --buildoptions=--compile-flag=-m32,--cpointer-32bit=on --build-debug
OSX_x86-64_Build_Correctness_Unit_Tests:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER -q --jerry-tests
- run: $RUNNER -q --unittests
OSX_x86-64_Build_Correctness_Unit_Tests_Debug:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER -q --jerry-tests --build-debug
- run: $RUNNER -q --unittests --build-debug
Linux_x86-64_Build_Option_Tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-multilib
- run: $RUNNER --buildoption-test
Conformance_Tests_ES5_1:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER --test262
- run: $RUNNER --test262 --build-debug
Conformance_Tests_ES2015:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER --test262-es2015=update
- run: $RUNNER --test262-es2015=update --build-debug
- uses: actions/upload-artifact@v2
if: success() || failure()
with:
name: Test262-ES2015-results
path: |
build/tests/test262_tests_es2015/local/bin/test262.report
build/tests/test262_tests_es2015-debug/local/bin/test262.report
Conformance_Tests_ESNext:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER --test262-esnext=update
- uses: actions/upload-artifact@v2
if: success() || failure()
with:
name: Test262-ESNext-results
path: |
build/tests/test262_tests_esnext/local/bin/test262.report
Conformance_Tests_ESNext_Debug_A:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER --test262-esnext=update --build-debug --test262-test-list=built-ins,annexB,harness,intl402
- uses: actions/upload-artifact@v2
if: success() || failure()
with:
name: Test262-ESNext-Debug-A-results
path: |
build/tests/test262_tests_esnext-debug/local/bin/test262.report
Conformance_Tests_ESNext_Debug_B:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER --test262-esnext=update --build-debug --test262-test-list=language
- uses: actions/upload-artifact@v2
if: success() || failure()
with:
name: Test262-ESNext-Debug-B-results
path: |
build/tests/test262_tests_esnext-debug/local/bin/test262.report
Unit_Tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: $RUNNER -q --unittests
- run: $RUNNER -q --unittests --build-debug
Clang_Unit_Build_Option_Tests:
runs-on: ubuntu-latest
env:
CC: clang
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-multilib
- run: $RUNNER -q --unittests
# clang has bug in supporting lto
- run: $RUNNER -q --buildoption-test --buildoptions=--lto=off
ASAN_Tests:
runs-on: ubuntu-latest
env:
ASAN_OPTIONS: detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-multilib
- run: >-
$RUNNER -q --jerry-tests
--buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold
--skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js,regression-test-issue-3785.js,proxy-evil-recursion.js
ASAN_Tests_Debug:
runs-on: ubuntu-latest
env:
ASAN_OPTIONS: detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-multilib
- run: >-
$RUNNER -q --jerry-tests --build-debug
--buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold
--skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js,regression-test-issue-3785.js,proxy-evil-recursion.js
UBSAN_Tests:
runs-on: ubuntu-latest
env:
UBSAN_OPTIONS: print_stacktrace=1
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-multilib
- run: >-
$RUNNER -q --jerry-tests
--buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold
--skip-list=parser-oom.js,parser-oom2.js
- run: >-
$RUNNER -q --jerry-tests --build-debug
--buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold
--skip-list=parser-oom.js,parser-oom2.js
Linux_ARMv7l_Tests:
runs-on: ubuntu-latest
env:
RUNTIME: qemu-arm-static
TIMEOUT: 300
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static
- run: >-
$RUNNER -q --jerry-tests
--buildoptions=--toolchain=cmake/toolchain_linux_armv7l.cmake,--linker-flag=-static
Linux_ARMv7l_Tests_Debug:
runs-on: ubuntu-latest
env:
RUNTIME: qemu-arm-static
TIMEOUT: 300
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static
- run: >-
$RUNNER -q --jerry-tests --build-debug
--buildoptions=--toolchain=cmake/toolchain_linux_armv7l.cmake,--linker-flag=-static
Linux_AArch64_Tests:
runs-on: ubuntu-latest
env:
RUNTIME: qemu-aarch64-static
TIMEOUT: 300
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-aarch64-linux-gnu libc6-dev-armhf-cross qemu-user-static
- run: >-
$RUNNER -q --jerry-tests
--buildoptions=--toolchain=cmake/toolchain_linux_aarch64.cmake,--linker-flag=-static
Linux_AArch64_Tests_Debug:
runs-on: ubuntu-latest
env:
RUNTIME: qemu-aarch64-static
TIMEOUT: 300
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-aarch64-linux-gnu libc6-dev-armhf-cross qemu-user-static
- run: >-
$RUNNER -q --jerry-tests --build-debug
--buildoptions=--toolchain=cmake/toolchain_linux_aarch64.cmake,--linker-flag=-static
MbedOS5_K64F_Build_Test:
runs-on: ubuntu-18.04 # needed due to ppa:team-gcc-arm-embedded/ppa
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.8' # needed due to 'intelhex' module
- run: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
- run: sudo apt update
- run: sudo apt install gcc-arm-embedded python3-setuptools
- run: make -f ./targets/mbedos5/Makefile.travis install
- run: make -f ./targets/mbedos5/Makefile.travis script
Zephyr_Qemu_x86_Build_Test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.x'
- run: sudo apt update
- run: sudo apt install gperf dfu-util device-tree-compiler
- run: make -f ./targets/zephyr/Makefile.travis install
- run: make -f ./targets/zephyr/Makefile.travis script
NuttX_STM32F4_Build_Test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: sudo apt update
- run: sudo apt install gcc-arm-none-eabi libnewlib-arm-none-eabi gperf
- run: make -f ./targets/nuttx-stm32f4/Makefile.travis install-noapt
- run: make -f ./targets/nuttx-stm32f4/Makefile.travis script
RIOT_STM32F4_Build_Test:
runs-on: ubuntu-18.04 # needed due to ppa:team-gcc-arm-embedded/ppa
env:
CC: clang
steps:
- uses: actions/checkout@v2
- run: sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
- run: sudo apt update
- run: sudo apt install clang gcc-arm-embedded gcc-multilib
- run: make -f ./targets/riot-stm32f4/Makefile.travis install-noapt
- run: make -f ./targets/riot-stm32f4/Makefile.travis script
ESP8266_Build_Test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '2.7' # needed due to ESP8266_RTOS_SDK/tools/gen_appbin.py
- run: make -f ./targets/esp8266/Makefile.travis install-noapt
- run: make -f ./targets/esp8266/Makefile.travis script
Notification:
runs-on: ubuntu-latest
if: false && github.event_name == 'push' && github.repository == 'jerryscript-project/jerryscript'
steps:
- uses: rectalogic/notify-irc@v1
with:
channel: '#jerryscript'
nickname: jerryscript-notification
message: |
@${{ github.actor }}: ${{ github.repository }} (${{ github.ref }}#${{ github.sha }})
${{ join(github.event.commits.*.message) }}
${{ github.event.compare }}