@@ -30,93 +30,33 @@ jobs:
3030 - ppc64el
3131 - riscv64
3232 - s390x
33- include :
34- - arch : amd64
35- CC : x86_64-linux-gnu
36- - arch : arm64
37- CC : aarch64-linux-gnu
38- - arch : armel
39- CC : arm-linux-gnueabi
40- - arch : armhf
41- CC : arm-linux-gnueabihf
42- - arch : i386
43- CC : i686-linux-gnu
44- - arch : mips
45- CC : mips-linux-gnu
46- - arch : mips64
47- CC : mips64-linux-gnuabi64
48- - arch : mips64el
49- CC : mips64el-linux-gnuabi64
50- - arch : mips64r6
51- CC : mipsisa64r6-linux-gnuabi64
52- - arch : mips64r6el
53- CC : mipsisa64r6el-linux-gnuabi64
54- - arch : mipsel
55- CC : mipsel-linux-gnu
56- - arch : mipsr6
57- CC : mipsisa32r6-linux-gnu
58- - arch : mipsr6el
59- CC : mipsisa32r6el-linux-gnu
60- - arch : powerpc
61- CC : powerpc-linux-gnu
62- - arch : ppc64el
63- CC : powerpc64le-linux-gnu
64- - arch : riscv64
65- CC : riscv64-linux-gnu
66- - arch : s390x
67- CC : s390x-linux-gnu
68- runs-on : ${{ matrix.arch == 'i386' && 'ubuntu-22.04' || 'ubuntu-24.04' }}
33+ runs-on : ubuntu-24.04
6934 env :
70- AR : ${{ matrix.CC }}-ar
71- CHOST : ${{ matrix.CC }}
72- CC : ${{ matrix.CC }}-gcc
73- CPP : ${{ matrix.CC }}-cpp
74- LDFLAGS : -s
75- SUFFIX : linux-${{ matrix.arch }}
35+ BIN_NAME : jq-linux-${{ matrix.arch }}
7636 steps :
7737 - name : Clone repository
7838 uses : actions/checkout@v5
7939 with :
8040 submodules : true
81- - name : Install packages
82- run : |
83- sudo apt-get update
84- # crossbuild libpcre2?
85- sudo apt-get install -y automake autoconf libtool libpcre2-dev libpcre2-8-0 crossbuild-essential-${{ matrix.arch }}
8641 - name : Build
8742 run : |
88- autoreconf -i
89- ./configure \
90- --host=${{ matrix.CC }} \
91- --disable-docs \
92- --with-oniguruma=no \
93- --with-pcre2 \
94- --enable-static \
95- --enable-all-static \
96- CFLAGS="-O2 -pthread -fstack-protector-all"
97- make -j"$(nproc)"
98- file ./jq
99- cp ./jq jq-${{ env.SUFFIX }}
100- - name : Test
101- # Only run tests for amd64 matching the CI machine arch
102- if : ${{ matrix.arch == 'amd64' }}
103- run : |
104- make check VERBOSE=yes
105- git diff --exit-code
43+ docker build --platform linux/{{ matrix.arch }} -t jq-build .
44+ docker cp $(docker create jq-build):/jq ${{ env.BIN_NAME }}
45+ file ${{ env.BIN_NAME }}
10646 - name : Upload Test Logs
10747 if : ${{ failure() }}
10848 uses : actions/upload-artifact@v5
10949 with :
110- name : test-logs-${{ env.SUFFIX }}
50+ name : test-logs-${{ env.BIN_NAME }}
11151 retention-days : 7
11252 path : |
11353 test-suite.log
11454 tests/*.log
11555 - name : Upload artifacts
11656 uses : actions/upload-artifact@v5
11757 with :
118- name : jq- ${{ env.SUFFIX }}
119- path : jq- ${{ env.SUFFIX }}
58+ name : ${{ env.BIN_NAME }}
59+ path : ${{ env.BIN_NAME }}
12060 if-no-files-found : error
12161 retention-days : 7
12262
0 commit comments