quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

ci.yml (3879B)


      1 name: ci
      2 
      3 on:
      4   pull_request:
      5     paths:
      6       - '**'
      7       - '!.gitignore'
      8       - '!LICENSE'
      9       - '!TODO'
     10       - '!doc/**'
     11       - '!examples/**'
     12       - '.github/workflows/ci.yml'
     13   push:
     14     branches:
     15       - '*'
     16 
     17 jobs:
     18   linux:
     19     name: Linux (Ubuntu)
     20     runs-on: ubuntu-latest
     21     strategy:
     22       fail-fast: false
     23     steps:
     24       - uses: actions/checkout@v4
     25         with:
     26           submodules: true
     27       - name: Build
     28         run: |
     29           make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y
     30       - name: Stats
     31         run: |
     32           ./qjs -qd
     33       - name: Run built-in tests
     34         run: |
     35           make test
     36       - name: Run microbench
     37         run: |
     38           make microbench
     39 
     40   linux-asan:
     41     runs-on: ubuntu-latest
     42     steps:
     43       - uses: actions/checkout@v4
     44         with:
     45           submodules: true
     46       - name: Build
     47         run: |
     48           make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_ASAN=y
     49       - name: Run built-in tests
     50         env:
     51           ASAN_OPTIONS: halt_on_error=1
     52         run: |
     53           make CONFIG_ASAN=y test
     54 
     55   linux-msan:
     56     runs-on: ubuntu-latest
     57     steps:
     58       - uses: actions/checkout@v4
     59         with:
     60           submodules: true
     61       - name: Build
     62         env:
     63           CC: clang
     64         run: |
     65           make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_MSAN=y CONFIG_CLANG=y
     66       - name: Run built-in tests
     67         env:
     68           MSAN_OPTIONS: halt_on_error=1
     69         run: |
     70           make CONFIG_MSAN=y CONFIG_CLANG=y test
     71 
     72   linux-ubsan:
     73     runs-on: ubuntu-latest
     74     steps:
     75       - uses: actions/checkout@v4
     76         with:
     77           submodules: true
     78       - name: Build
     79         run: |
     80           make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_UBSAN=y
     81       - name: Run built-in tests
     82         env:
     83           UBSAN_OPTIONS: halt_on_error=1
     84         run: |
     85           make CONFIG_UBSAN=y test
     86 
     87   macos:
     88     name: macOS
     89     runs-on: macos-latest
     90     strategy:
     91       fail-fast: false
     92     steps:
     93       - uses: actions/checkout@v4
     94       - name: Build
     95         run: |
     96           make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y
     97       - name: Stats
     98         run: |
     99           ./qjs -qd
    100       - name: Run built-in tests
    101         run: |
    102           make test
    103 
    104   macos-asan:
    105     runs-on: macos-latest
    106     steps:
    107       - uses: actions/checkout@v4
    108       - name: Build
    109         run: |
    110           make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_ASAN=y
    111       - name: Run built-in tests
    112         env:
    113           ASAN_OPTIONS: halt_on_error=1
    114         run: |
    115           make CONFIG_ASAN=y test
    116 
    117   macos-ubsan:
    118     runs-on: macos-latest
    119     steps:
    120       - uses: actions/checkout@v4
    121       - name: Build
    122         run: |
    123           make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_UBSAN=y
    124       - name: Run built-in tests
    125         env:
    126           UBSAN_OPTIONS: halt_on_error=1
    127         run: |
    128           make CONFIG_UBSAN=y test
    129 
    130   freebsd:
    131     runs-on: ubuntu-latest
    132     steps:
    133       - uses: actions/checkout@v4
    134       - name: Build + test
    135         uses: vmactions/freebsd-vm@v1
    136         with:
    137           usesh: true
    138           prepare: |
    139             pkg install -y gmake
    140           run: |
    141             gmake
    142             ./qjs -qd
    143             gmake test
    144 
    145   qemu-alpine:
    146     runs-on: ubuntu-latest
    147 
    148     strategy:
    149       fail-fast: false
    150       matrix:
    151         platform:
    152           - i386
    153           - arm32v6
    154           - arm32v7
    155           - arm64v8
    156           - s390x
    157 
    158     steps:
    159       - uses: actions/checkout@v4
    160         with:
    161             submodules: recursive
    162       - name: Get qemu
    163         run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    164       - name: Run tests on ${{ matrix.platform }}
    165         run: docker run --rm --interactive --mount type=bind,source=$(pwd),target=/host ${{ matrix.platform }}/alpine sh -c "apk add git patch make gcc libc-dev && cd /host && make test"
    166