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