summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
blob: 8cef57b54a96f744c9a4a1159340ea71bdcb325b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: build

on: [push]

jobs:
  build-linux-ubuntu:
    runs-on: ubuntu-latest
    steps:
    - name: install dependencies
      run: sudo apt-get install cython
    - uses: actions/checkout@v2
    - name: autogen
      run: ./autogen.sh
    - name: make
      run: make
    - name: make check
      run: make check
  build-macOS:
    runs-on: macOS-latest
    steps:
    - name: install dependencies
      run: |
          if test -x "`which port`"; then
            sudo port install libtool autoconf automake
          else
            brew install libtool autoconf automake
          fi
          pip install cython
      shell: bash
    - uses: actions/checkout@v2
    - name: autogen
      run: |
          SDKDIR=`xcrun --sdk macosx --show-sdk-path`
          TESTARCHS="arm64 x86_64"
          USEARCHS=
          for ARCH in $TESTARCHS; do
            if echo "int main(int argc, char **argv) { return 0; }" |clang -arch $ARCH -o /dev/null -isysroot $SDKDIR -x c - 2>/dev/null; then
              USEARCHS="$USEARCHS -arch $ARCH"
            fi
          done
          export CFLAGS="$USEARCHS -isysroot $SDKDIR"
          echo "Using CFLAGS: $CFLAGS"
          export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin"
          export LIBS="-L/Library/Frameworks/Python.framework/Versions/2.7/lib"
          export PYTHON_EXTRA_LDFLAGS="-u _PyMac_Error /System/Library/Frameworks/Python.framework/Versions/2.7/Python"
          ./autogen.sh
    - name: make
      run: make
    - name: make check
      run: make check
  build-windows:
    runs-on: windows-latest
    defaults:
      run:
        shell: msys2 {0}
    strategy:
      fail-fast: false
      matrix:
        include: [
          { msystem: MINGW64, arch: x86_64 },
          { msystem: MINGW32, arch: i686   }
        ]
    steps:
    - uses: msys2/setup-msys2@v2
      with:
        msystem: ${{ matrix.msystem }}
        release: false
        update: false
        install: >-
          base-devel
          git
          mingw-w64-${{ matrix.arch }}-gcc
          make
          libtool
          autoconf
          automake-wrapper
          cython
    - uses: actions/checkout@v2
    - name: autogen
      run: ./autogen.sh CC=gcc CXX=g++
    - name: make
      run: make
    - name: make check
      run: make check
    - name: print test logs
      run: |
          for I in test/*.trs; do
            RES=`grep ":test-result" $I |cut -d ":" -f 3`
            if test $RES != PASS; then
              TESTNAME=`basename $I .trs`
              echo $TESTNAME:
              cat test/$TESTNAME.log
              echo
            fi
          done
      shell: bash