quickjs-tart

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

ci.yml (5442B)


      1 name: CI
      2 
      3 on:
      4   push:
      5     branches: [master, stable, next]
      6   pull_request:
      7     branches: [master, stable, next]
      8 
      9   workflow_dispatch:
     10 
     11 jobs:
     12   tcc:
     13     runs-on: ubuntu-latest
     14     steps:
     15       - uses: actions/checkout@v4
     16 
     17       - name: Update packages list
     18         run: sudo apt-get update
     19 
     20       - name: Install dependencies
     21         run: |
     22           sudo apt-get install -y build-essential libtool autoconf automake tcc
     23 
     24       - name: Autogen
     25         run: ./autogen.sh -s
     26 
     27       - name: Compilation with tcc
     28         run: |
     29           env CC=tcc CFLAGS='-w' CPPFLAGS="-DDEV_MODE=1" ./configure --prefix=/tmp --disable-dependency-tracking --disable-shared || cat config.log
     30           make -j $(nproc) && make check && make install
     31           env CC=tcc CPPFLAGS='-I/tmp/include' LDFLAGS='-L/tmp/lib' LD_LIBRARY_PATH='/tmp/lib' ./test/constcheck.sh
     32           make uninstall
     33           make distclean
     34 
     35   zig:
     36     runs-on: ubuntu-latest
     37     steps:
     38       - uses: actions/checkout@v4
     39 
     40       - name: Update packages list
     41         run: sudo apt-get update
     42 
     43       - name: Install Zig
     44         uses: mlugg/setup-zig@v2
     45         with:
     46           version: 0.14.0
     47 
     48       - name: Autogen
     49         run: ./autogen.sh -s
     50 
     51       - name: Compilation with zig
     52         run: |
     53           zig build
     54           zig build -Dtarget=x86_64-linux
     55           zig build -Dtarget=aarch64-linux
     56           zig build -Dtarget=x86-windows
     57           zig build -Dtarget=x86_64-windows
     58           zig build -Dtarget=aarch64-windows
     59           zig build -Dtarget=x86_64-macos
     60           zig build -Dtarget=aarch64-macos
     61           zig build -Dtarget=wasm32-wasi
     62           zig build -Doptimize=ReleaseFast
     63           rm -fr zig-cache zig-out
     64 
     65   regular:
     66     runs-on: ubuntu-latest
     67     steps:
     68       - uses: actions/checkout@v4
     69 
     70       - name: Update packages list
     71         run: sudo apt-get update
     72 
     73       - name: Install dependencies
     74         run: sudo apt-get install -y build-essential libtool autoconf automake
     75 
     76       - name: Autogen
     77         run: ./autogen.sh -s
     78 
     79       - name: C99 compat check
     80         run: |
     81           env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
     82           make -j $(nproc) CFLAGS='-g0' > /dev/null && cp src/libsodium/.libs/libsodium.so lib.so && make clean > /dev/null && make CFLAGS='-g0' CPPFLAGS='-DDEV_MODE=1 -DSODIUM_C99\(X\)=' > /dev/null && cp src/libsodium/.libs/libsodium.so lib-oldc.so && cmp lib.so lib-oldc.so && echo No binary changes && make clean > /dev/null
     83           make distcheck
     84           make distclean > /dev/null
     85 
     86       - name: Regular compilation
     87         run: |
     88           env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --enable-minimal
     89           make -j $(nproc)
     90           make check
     91           ( echo '#include <sodium.h>' ; echo 'int main(void) { return sodium_init(); }' ) > /tmp/main.c && gcc -DDEV_MODE=1 -Isrc/libsodium/include -Isrc/libsodium/include/sodium $(find src -name '*.c' -o -name '*.S') /tmp/main.c
     92           make distclean > /dev/null
     93 
     94   check-globals:
     95     runs-on: ubuntu-latest
     96     steps:
     97       - uses: actions/checkout@v4
     98 
     99       - name: Update packages list
    100         run: sudo apt-get update
    101 
    102       - name: Install dependencies
    103         run: sudo apt-get install -y build-essential libtool autoconf automake
    104 
    105       - name: Autogen
    106         run: ./autogen.sh -s
    107 
    108       - name: Check globals
    109         run: |
    110           if [ -x test/rename-globals.sh ]; then test/rename-globals.sh; fi
    111 
    112   other-comp:
    113     runs-on: ubuntu-latest
    114     steps:
    115       - uses: actions/checkout@v4
    116 
    117       - name: Update packages list
    118         run: sudo apt-get update
    119 
    120       - name: Install dependencies
    121         run: sudo apt-get install -y build-essential libtool autoconf automake clang
    122 
    123       - name: Autogen
    124         run: ./autogen.sh -s
    125 
    126       - name: Compilation with g++
    127         run: |
    128           env CC=g++ CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
    129           make -j $(nproc) check
    130           make clean > /dev/null
    131 
    132       - name: Compilation with clang
    133         run: |
    134           env CC=clang CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
    135           make -j $(nproc) check
    136           make clean > /dev/null
    137 
    138   other-arch:
    139     runs-on: ubuntu-latest
    140     steps:
    141       - uses: actions/checkout@v4
    142 
    143       - name: Update packages list
    144         run: sudo apt-get update
    145 
    146       - name: Install dependencies
    147         run: sudo apt-get install -y build-essential libtool autoconf automake gcc-powerpc-linux-gnu
    148 
    149       - name: Autogen
    150         run: ./autogen.sh -s
    151 
    152       - name: Big-Endian PowerPC compilation
    153         run: |
    154           env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu
    155           make -j $(nproc)
    156           make clean > /dev/null
    157 
    158   android:
    159     runs-on: ubuntu-latest
    160     steps:
    161       - uses: actions/checkout@v4
    162 
    163       - name: Update packages list
    164         run: sudo apt-get update
    165 
    166       - name: Install base dependencies
    167         run: sudo apt-get install -y libtool autoconf automake unzip
    168 
    169       - name: Autogen
    170         run: ./autogen.sh -s
    171 
    172       - name: Install Android NDK
    173         run: |
    174           mkdir /tmp/android && cd /tmp/android
    175           curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r27c-linux.zip
    176           unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk
    177 
    178       - name: Android compilation
    179         run: |
    180           env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-aar.sh