• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1name: CI Configure
2on: [push, pull_request]
3jobs:
4  ci-configure:
5    name: ${{ matrix.name }}
6    runs-on: ${{ matrix.os }}
7    strategy:
8      fail-fast: false
9      matrix:
10        include:
11          - name: Ubuntu GCC
12            os: ubuntu-latest
13            compiler: gcc
14            configure-args: --warn
15
16          - name: Ubuntu 16.04 GCC
17            os: ubuntu-16.04
18            compiler: gcc
19            configure-args: --warn
20
21          - name: Ubuntu GCC OSB
22            os: ubuntu-latest
23            compiler: gcc
24            configure-args: --warn
25            build-dir: ../build
26            build-src-dir: ../zlib-ng
27
28          - name: Ubuntu GCC Compat No Opt
29            os: ubuntu-latest
30            compiler: gcc
31            configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
32
33          - name: Ubuntu GCC ARM SF
34            os: ubuntu-latest
35            compiler: arm-linux-gnueabi-gcc
36            configure-args: --warn
37            chost: arm-linux-gnueabi
38            packages: qemu qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross
39            qemu-run: qemu-arm
40
41          - name: Ubuntu GCC ARM SF Compat No Opt
42            os: ubuntu-latest
43            compiler: arm-linux-gnueabi-gcc
44            configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
45            chost: arm-linux-gnueabi
46            packages: qemu qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross
47            qemu-run: qemu-arm
48
49          - name: Ubuntu GCC ARM HF
50            os: ubuntu-latest
51            compiler: arm-linux-gnueabihf-gcc
52            configure-args: --warn
53            chost: arm-linux-gnueabihf
54            packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
55            qemu-run: qemu-arm
56
57          - name: Ubuntu GCC ARM HF No ACLE
58            os: ubuntu-latest
59            compiler: arm-linux-gnueabihf-gcc
60            configure-args: --warn --without-acle
61            chost: arm-linux-gnueabihf
62            packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
63            qemu-run: qemu-arm
64
65          - name: Ubuntu GCC ARM HF No NEON
66            os: ubuntu-latest
67            compiler: arm-linux-gnueabihf-gcc
68            configure-args: --warn --without-neon
69            chost: arm-linux-gnueabihf
70            packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
71            qemu-run: qemu-arm
72
73          - name: Ubuntu GCC ARM HF Compat No Opt
74            os: ubuntu-latest
75            compiler: arm-linux-gnueabihf-gcc
76            configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
77            chost: arm-linux-gnueabihf
78            packages: qemu qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
79            qemu-run: qemu-arm
80
81          - name: Ubuntu GCC AARCH64
82            os: ubuntu-latest
83            compiler: aarch64-linux-gnu-gcc
84            configure-args: --warn
85            chost: aarch64-linux-gnu
86            packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
87            qemu-run: qemu-aarch64
88
89          - name: Ubuntu GCC AARCH64 No ACLE
90            os: ubuntu-latest
91            compiler: aarch64-linux-gnu-gcc
92            configure-args: --warn --without-acle
93            chost: aarch64-linux-gnu
94            packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
95            qemu-run: qemu-aarch64
96
97          - name: Ubuntu GCC AARCH64 No NEON
98            os: ubuntu-latest
99            compiler: aarch64-linux-gnu-gcc
100            configure-args: --warn --without-neon
101            chost: aarch64-linux-gnu
102            packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
103            qemu-run: qemu-aarch64
104
105          - name: Ubuntu GCC AARCH64 Compat No Opt
106            os: ubuntu-latest
107            compiler: aarch64-linux-gnu-gcc
108            configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
109            chost: aarch64-linux-gnu
110            packages: qemu qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross
111            qemu-run: qemu-aarch64
112
113          - name: Ubuntu GCC PPC
114            os: ubuntu-latest
115            compiler: powerpc-linux-gnu-gcc
116            configure-args: --warn --static
117            chost: powerpc-linux-gnu
118            packages: qemu qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross
119            qemu-run: qemu-ppc
120            cflags: -static
121            ldflags: -static
122
123          - name: Ubuntu GCC PPC64
124            os: ubuntu-latest
125            compiler: powerpc64-linux-gnu-gcc
126            configure-args: --warn --static
127            chost: powerpc-linux-gnu
128            packages: qemu qemu-user gcc-powerpc64-linux-gnu libc-dev-ppc64-cross
129            qemu-run: qemu-ppc64
130            cflags: -static
131            ldflags: -static
132
133          - name: Ubuntu GCC PPC64LE
134            os: ubuntu-latest
135            compiler: powerpc64le-linux-gnu-gcc
136            configure-args: --warn
137            chost: powerpc64le-linux-gnu
138            packages: qemu qemu-user gcc-powerpc64le-linux-gnu libc-dev-ppc64el-cross
139            qemu-run: qemu-ppc64le
140
141          - name: Ubuntu GCC S390X
142            os: ubuntu-latest
143            compiler: s390x-linux-gnu-gcc
144            configure-args: --warn --static
145            chost: s390x-linux-gnu
146            packages: qemu qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross
147            qemu-run: qemu-s390x
148            cflags: -static
149            ldflags: -static
150
151          - name: Ubuntu GCC S390X DFLTCC
152            os: ubuntu-latest
153            compiler: s390x-linux-gnu-gcc
154            configure-args: --warn --static --with-dfltcc-deflate --with-dfltcc-inflate
155            chost: s390x-linux-gnu
156            packages: qemu qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross
157            qemu-run: qemu-s390x
158            cflags: -static
159            ldflags: -static
160
161          - name: Ubuntu GCC S390X DFLTCC Compat
162            os: ubuntu-latest
163            compiler: s390x-linux-gnu-gcc
164            configure-args: --warn --zlib-compat --static --with-dfltcc-deflate --with-dfltcc-inflate
165            chost: s390x-linux-gnu
166            packages: qemu qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross
167            qemu-run: qemu-s390x
168            cflags: -static
169            ldflags: -static
170
171          - name: macOS GCC
172            os: macOS-latest
173            compiler: gcc
174            configure-args: --warn
175
176    steps:
177    - name: Checkout repository
178      uses: actions/checkout@v1
179
180    - name: Install packages (Ubuntu)
181      if: runner.os == 'Linux' && matrix.packages
182      run: |
183        sudo apt-get update
184        sudo apt-get install -y ${{ matrix.packages }}
185
186    - name: Generate project files
187      run: |
188        mkdir ${{ matrix.build-dir || '.not-used' }}
189        cd ${{ matrix.build-dir || '.' }}
190        ${{ matrix.build-src-dir || '.' }}/configure ${{ matrix.configure-args }}
191      env:
192        CC: ${{ matrix.compiler }}
193        CFLAGS: ${{ matrix.cflags }}
194        LDFLAGS: ${{ matrix.ldflags }}
195        CHOST: ${{ matrix.chost }}
196        CI: true
197
198    - name: Compile source code
199      run: |
200        cd ${{ matrix.build-dir || '.' }}
201        make -j2
202
203    - name: Run test cases
204      run: |
205        cd ${{ matrix.build-dir || '.' }}
206        make test
207      env:
208        QEMU_RUN: ${{ matrix.qemu-run }}
209
210    - name: Upload build errors
211      uses: actions/upload-artifact@v2
212      if: failure()
213      with:
214        name: ${{ matrix.name }} (configure)
215        path: |
216          ${{ matrix.build-dir || '.' }}/configure.log
217        retention-days: 30
218