Skip to content

Commit 875cf0b

Browse files
author
Binh Nguyen
committed
ci(s390x): sync build-verify (release_version input, host swap, parquet skip, clean checkout)
Bring master's s390x-build-verify in line with the s390x/v0.56.0 branch: release_version override for clean artifact names, host-swap reuse, parquet test skip, deb variant usage, and clean checkout to avoid runner disk exhaustion.
1 parent 69097e9 commit 875cf0b

1 file changed

Lines changed: 25 additions & 6 deletions

File tree

.github/workflows/s390x-build-verify.yml

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ on:
1212
description: "Git ref to build (branch, tag, or SHA). Defaults to this workflow's ref."
1313
type: string
1414
required: false
15+
release_version:
16+
description: "Override package version (e.g. 0.56.0) for clean release artifact names. Empty = vdev custom version."
17+
type: string
18+
required: false
1519

1620
permissions:
1721
contents: read
@@ -37,12 +41,20 @@ jobs:
3741
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3842
with:
3943
ref: ${{ inputs.git_ref }}
44+
# clean: true (default) wipes the gitignored target/ via git clean each
45+
# run. Required on this runner: target/ + the persistent swapfile would
46+
# otherwise accumulate and exhaust the 146G disk ("No space left on
47+
# device"). A clean build fits comfortably (~75G of 146G used at peak).
48+
clean: true
4049
- name: Ensure swap headroom (avoid OOM during compile/LTO link)
4150
run: |
42-
# Idempotent on the persistent self-hosted runner: only create the CI
43-
# swapfile once. Gives the fat-LTO linker headroom beyond physical RAM.
44-
SWAPFILE=/swapfile-ci
45-
if ! sudo swapon --show=NAME --noheadings | grep -qx "$SWAPFILE"; then
51+
# This ~16G-RAM runner needs swap for the fat-LTO release link. The host
52+
# provisions /swapfile (32G); only add a fallback swapfile when the host
53+
# has insufficient swap, so we never waste disk on a duplicate.
54+
SWAP_KB=$(awk '/SwapTotal/{print $2}' /proc/meminfo)
55+
if [ "${SWAP_KB:-0}" -lt 25165824 ]; then # < 24 GiB active swap
56+
SWAPFILE=/swapfile-ci
57+
sudo swapoff "$SWAPFILE" 2>/dev/null || true
4658
sudo rm -f "$SWAPFILE"
4759
sudo fallocate -l 24G "$SWAPFILE" || sudo dd if=/dev/zero of="$SWAPFILE" bs=1M count=24576
4860
sudo chmod 600 "$SWAPFILE"
@@ -66,9 +78,16 @@ jobs:
6678
protoc: false # upstream script has no s390x binary; use apt protobuf-compiler above
6779
vdev: false # no s390x vdev binary; cargo vdev is built from source on demand
6880
- name: Run unit tests
69-
run: make test FEATURES="default"
81+
# Skip parquet codec tests: parquet/arrow encoding is broken on big-endian
82+
# s390x (ParquetError "EOF" / test hangs), and parquet is not used in s390x
83+
# deployments. All other tests pass natively.
84+
run: make test FEATURES="default" SCOPE="-E 'not test(parquet)'"
7085
- name: Build and package Vector
71-
run: make NATIVE=true package-s390x-unknown-linux-gnu-all
86+
# release_version (e.g. 0.56.0) overrides the package VERSION for clean
87+
# release artifact names; empty falls back to the vdev custom version.
88+
run: make NATIVE=true package-s390x-unknown-linux-gnu-all ${RELEASE_VERSION:+VERSION="$RELEASE_VERSION"}
89+
env:
90+
RELEASE_VERSION: ${{ inputs.release_version }}
7291
- name: Upload s390x artifacts
7392
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
7493
with:

0 commit comments

Comments
 (0)