Skip to content

Commit 3513106

Browse files
authored
- bump @yao-pkg/pkg to restore Linux arm64 zap-cli on glibc 2.35 (#1708)
@yao-pkg/pkg-fetch 3.5.30 shipped node20-linux-arm64 built against a newer toolchain (GLIBC_2.38 / GLIBCXX_3.4.32), so zap-cli failed on Ubuntu 22.04 and similar. Raising the @yao-pkg/pkg minimum pulls a newer pkg-fetch with Jammy-built Node binaries compatible with glibc 2.35+. Refresh package-lock.json for the resolved toolchain. - verify zap-cli zip on Ubuntu 22/24 (x64) and arm64 - Add test-linux-x64-compat: download zap-linux-x64.zip from build-zap and run zap-cli --version on ubuntu-20.04, ubuntu-22.04, ubuntu-24.04. - Extend test-linux-arm64: matrix ubuntu-22.04-arm and ubuntu-24.04-arm for self-check + same prebuilt zap-linux-arm64.zip; run zap-cli --version - Add the missing targets in package.json for linux and windows - GitHub Actions deprecated and removed ubuntu-20.04 hosted runners in April 2025. The job will wait forever since no runner will ever match that label. - JIRA: ZAPP-1717
1 parent 5aa86ff commit 3513106

3 files changed

Lines changed: 782 additions & 228 deletions

File tree

.github/workflows/release.yml

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,89 @@ jobs:
535535
name: zap-linux-x64-deb
536536
path: dist/zap-linux-x64.deb
537537

538+
test-linux-arm64:
539+
name: Test ZAP on Linux arm64 (${{ matrix.os }})
540+
needs: [build-zap]
541+
runs-on: ${{ matrix.os }}
542+
strategy:
543+
fail-fast: false
544+
matrix:
545+
# ubuntu-20.04-arm is not offered by GitHub Actions; Ubuntu 20.04 arm64
546+
# is covered below via a native arm64 Docker container step.
547+
os: [ubuntu-22.04-arm, ubuntu-24.04-arm]
548+
549+
steps:
550+
- uses: actions/checkout@v4
551+
- name: Use Node.js 20.x
552+
uses: actions/setup-node@v4
553+
with:
554+
node-version: 20.x
555+
cache: 'npm'
556+
- run: sudo ./src-script/install-packages-ubuntu
557+
- run: npm ci
558+
- run: npm run version-stamp
559+
- run: npm rebuild canvas --update-binary
560+
- run: npm rebuild libxmljs --update-binary
561+
- run: npm run build-spa
562+
- name: Self-check on arm64
563+
run: npm run self-check
564+
565+
- name: Download arm64 zip artifact
566+
uses: actions/download-artifact@v4
567+
with:
568+
name: zap-linux-arm64-zip
569+
path: dist/
570+
- name: ZAP binary check (Linux arm64) - unzip
571+
run: unzip dist/zap-linux-arm64.zip -d dist/zap-linux-arm64
572+
- name: ZAP binary check (Linux arm64) - check version is set via CLI
573+
uses: GuillaumeFalourd/assert-command-line-output@v2.1
574+
with:
575+
command_line: ./dist/zap-linux-arm64/zap-cli --version
576+
contains: '0.0.0'
577+
expected_result: FAILED
578+
# Run the same arm64 binary inside an Ubuntu 20.04 arm64 container.
579+
# The runner is already arm64 so Docker runs natively — no QEMU needed.
580+
# Only do this once (on the 22.04-arm leg) to avoid duplicate pulls.
581+
- name: ZAP binary check - Ubuntu 20.04 arm64 (via Docker)
582+
if: matrix.os == 'ubuntu-22.04-arm'
583+
run: |
584+
VERSION=$(docker run --rm \
585+
-v ${{ github.workspace }}/dist/zap-linux-arm64:/zap \
586+
ubuntu:20.04 /zap/zap-cli --version 2>&1)
587+
echo "zap-cli arm64 on Ubuntu 20.04 reported: $VERSION"
588+
if echo "$VERSION" | grep -qE '^v?0\.0\.0'; then
589+
echo "FAIL: version stamp missing on Ubuntu 20.04 arm64"
590+
exit 1
591+
fi
592+
- name: ZAP binary check (Linux arm64) - unzip cleanup
593+
run: rm -rf dist/zap-linux-arm64
594+
595+
test-linux-x64-compat:
596+
name: ZAP x64 binary on ${{ matrix.os }}
597+
needs: [build-zap]
598+
runs-on: ${{ matrix.os }}
599+
strategy:
600+
fail-fast: false
601+
matrix:
602+
os: [ubuntu-22.04, ubuntu-24.04]
603+
604+
steps:
605+
- name: Download x64 zip artifact
606+
uses: actions/download-artifact@v4
607+
with:
608+
name: zap-linux-x64-zip
609+
path: dist/
610+
- name: Unzip
611+
run: unzip dist/zap-linux-x64.zip -d dist/zap-linux-x64
612+
- name: ZAP binary check (Linux x64) - check version is set via CLI
613+
uses: GuillaumeFalourd/assert-command-line-output@v2.1
614+
with:
615+
command_line: ./dist/zap-linux-x64/zap-cli --version
616+
contains: '0.0.0'
617+
expected_result: FAILED
618+
- name: Cleanup
619+
run: rm -rf dist/zap-linux-x64
620+
538621
release:
539622
if: startsWith(github.ref, 'refs/tags/')
540623
needs: [build-zap]

0 commit comments

Comments
 (0)