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