@@ -15,108 +15,55 @@ jobs:
1515 arch :
1616 - amd64
1717 - arm64
18- - armel
19- - armhf
2018 - i386
21- - mips
22- - mips64
23- - mips64el
24- - mips64r6
25- - mips64r6el
26- - mipsel
27- - mipsr6
28- - mipsr6el
29- - powerpc
3019 - ppc64el
3120 - riscv64
3221 - s390x
3322 include :
23+ # TODO: arm/v7 arm/v6?
3424 - arch : amd64
35- CC : x86_64- linux-gnu
25+ platform : linux/amd64
3626 - arch : arm64
37- CC : aarch64-linux-gnu
38- - arch : armel
39- CC : arm-linux-gnueabi
40- - arch : armhf
41- CC : arm-linux-gnueabihf
27+ platform : linux/arm64
4228 - 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
29+ platform : linux/386
6230 - arch : ppc64el
63- CC : powerpc64le- linux-gnu
31+ platform : linux/ppc64le
6432 - arch : riscv64
65- CC : riscv64- linux-gnu
33+ platform : linux/riscv64
6634 - arch : s390x
67- CC : s390x- linux-gnu
68- runs-on : ${{ matrix.arch == 'i386' && ' ubuntu-22.04' || 'ubuntu- 24.04' }}
35+ platform : linux/s390x
36+ runs-on : ubuntu-24.04
6937 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 }}
38+ BIN_NAME : jq-linux-${{ matrix.arch }}
7639 steps :
7740 - name : Clone repository
7841 uses : actions/checkout@v5
7942 with :
8043 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 }}
44+ - name : Set up QEMU
45+ uses : docker/setup-qemu-action@v3
46+ - name : Set up Docker Buildx
47+ uses : docker/setup-buildx-action@v3
8648 - name : Build
8749 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
50+ docker build --platform ${{ matrix.platform }} -t jq-build .
51+ docker cp $(docker create jq-build):/jq ${{ env.BIN_NAME }}
52+ file ${{ env.BIN_NAME }}
10653 - name : Upload Test Logs
10754 if : ${{ failure() }}
10855 uses : actions/upload-artifact@v5
10956 with :
110- name : test-logs-${{ env.SUFFIX }}
57+ name : test-logs-${{ env.BIN_NAME }}
11158 retention-days : 7
11259 path : |
11360 test-suite.log
11461 tests/*.log
11562 - name : Upload artifacts
11663 uses : actions/upload-artifact@v5
11764 with :
118- name : jq- ${{ env.SUFFIX }}
119- path : jq- ${{ env.SUFFIX }}
65+ name : ${{ env.BIN_NAME }}
66+ path : ${{ env.BIN_NAME }}
12067 if-no-files-found : error
12168 retention-days : 7
12269
@@ -225,10 +172,9 @@ jobs:
225172 autoconf
226173 automake
227174 libtool
228- pcre2
229- pcre2-devel
230175 pacboy : >-
231176 toolchain:p
177+ pcre2:p
232178 - name : Build
233179 run : |
234180 autoreconf -i
@@ -240,7 +186,11 @@ jobs:
240186 --enable-static \
241187 --enable-all-static \
242188 CFLAGS="-O2 -pthread -fstack-protector-all -Wl,--stack,8388608"
243- make -j$(nproc)
189+ cat Makefile
190+ find /ucrt64
191+ nm /ucrt64/lib/libpcre2-8.a
192+ ls -l /ucrt64/lib
193+ LIBTOOLFLAGS=--debug make V=1 -j$(nproc)
244194 file ./jq.exe
245195 cp ./jq.exe jq-${{ env.SUFFIX }}.exe
246196 - name : Test
@@ -280,8 +230,7 @@ jobs:
280230 autoreconf -i
281231 ./configure \
282232 --disable-docs \
283- --with-oniguruma=no \
284- --with-pcre2 \
233+ --with-oniguruma=builtin
285234 make distcheck
286235 make dist dist-zip
287236 git diff --exit-code
@@ -313,11 +262,10 @@ jobs:
313262 merge-multiple : true
314263 - name : Move executables
315264 run : |
316- mkdir -p linux/{386,amd64,arm64,mips64le, ppc64le,riscv64,s390x}
265+ mkdir -p linux/{386,amd64,arm64,ppc64le,riscv64,s390x}
317266 mv jq-linux-i386 linux/386/jq
318267 mv jq-linux-amd64 linux/amd64/jq
319268 mv jq-linux-arm64 linux/arm64/jq
320- mv jq-linux-mips64el linux/mips64le/jq
321269 mv jq-linux-ppc64el linux/ppc64le/jq
322270 mv jq-linux-riscv64 linux/riscv64/jq
323271 mv jq-linux-s390x linux/s390x/jq
@@ -357,7 +305,7 @@ jobs:
357305 context : .
358306 push : ${{ startsWith(github.ref, 'refs/tags/jq-') }}
359307 provenance : false
360- platforms : linux/386,linux/amd64,linux/arm64,linux/mips64le,linux/ ppc64le,linux/riscv64,linux/s390x
308+ platforms : linux/386,linux/amd64,linux/arm64,linux/ppc64le,linux/riscv64,linux/s390x
361309 tags : ${{ steps.metadata.outputs.tags }}
362310 labels : ${{ steps.metadata.outputs.labels }}
363311 - name : Generate signed attestations
0 commit comments