/ external / libecc / .github / workflows / libecc_compilation_tests.yml
libecc_compilation_tests.yml
 1  name: libecc
 2  
 3  # Run this workflow every time a new commit pushed to your repository
 4  on: push
 5  
 6  jobs:
 7    compilation_tests:
 8      runs-on: ubuntu-22.04
 9      strategy:
10        #max-parallel: 10
11        matrix:
12          cc: [gcc, clang, g++, clang++]
13          blinding: [0, 1]
14          complete: [0, 1]
15          ladder: [0, 1]
16          cryptofuzz: [0, 1]
17          optflags: ["-O3", "-O2", "-O1"]
18      steps:
19        # Checkout repository
20        - name: checkout repository
21          uses: actions/checkout@v2
22        # Run actions
23        # libecc compilation tests
24        - name: libecc compilation tests
25          env:
26            CC: ${{ matrix.cc }}
27            BLINDING: ${{ matrix.blinding }}
28            COMPLETE: ${{ matrix.complete }}
29            LADDER: ${{ matrix.ladder }}
30            CRYPTOFUZZ: ${{ matrix.cryptofuzz }}
31            EXTRA_LIB_CFLAGS: ${{ matrix.optflags }}
32            EXTRA_BIN_CFLAGS: ${{ matrix.optflags }}
33          shell: bash
34          run: |
35            # Compilation tests of all cases
36            #
37            make && cd src/arithmetic_tests/ && make clean && make bin && make clean && cd -;
38            cd src/examples/ && make clean && make && cd - && make clean;
39            make 16;
40            cd src/examples/ && make clean && make 16 && cd - && make clean;
41            make 32;
42            cd src/examples/ && make clean && make 32 && cd - && make clean;
43            make 64;
44            cd src/examples/ && make clean && make 64 && cd - && make clean;
45            # We perform one test with the sanitizers
46            USE_SANITIZERS=1 make;
47            cd src/examples/ && make clean && USE_SANITIZERS=1 make && cd - && make clean;
48            #
49            make debug;
50            cd src/examples/ && make clean && make debug && cd - && make clean;
51            make debug16;
52            cd src/examples/ && make clean && make debug16 && cd - && make clean;
53            make debug32;
54            cd src/examples/ && make clean && make debug32 && cd - && make clean;
55            make debug64;
56            cd src/examples/ && make clean && make debug64 && cd - && make clean;
57          continue-on-error: false