Skip to content

Build

Build #263

Workflow file for this run

name: Build
on:
workflow_dispatch: # manually trigger
workflow_call:
outputs:
version:
description: "Extracted version string"
value: ${{ jobs.extract_version.outputs.version }}
permissions:
contents: write
jobs:
#########################################################Extract Version######################################################
extract_version:
runs-on: ubuntu-22.04
outputs:
version: ${{ steps.extract.outputs.version }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Extract version
id: extract
run: |
VERSION="$(sed -n 's/.*BQ_LOG_VERSION *= *"\(.*\)".*/\1/p' src/bq_log/global/version.cpp | head -n1)"
if [[ -z "$VERSION" ]]; then
echo "Failed to extract version"
exit 1
fi
echo "VERSION=$VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT
#########################################################Common Libs Build####################################################
#Windows
build_windows_x86_64_lib_MSVC:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat native msvc YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: windows_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_windows_x86_64_lib_Clang:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat native clang YES NO NO
build_windows_x86_64_lib_MinGW:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java (JDK 11)
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Install MSYS2 (CLANG64)
id: msys2
uses: msys2/setup-msys2@v2
with:
msystem: CLANG64
update: true
release: true
path-type: inherit
install: >-
mingw-w64-clang-x86_64-toolchain
mingw-w64-clang-x86_64-ninja
- name: Remove conflicting MinGW paths
shell: powershell
run: |
$env:Path = $env:Path -replace 'C:\\mingw64\\bin;','' -replace 'C:\\Program Files\\Git\\mingw64\\bin;',''
echo "PATH=$env:Path" >> $env:GITHUB_ENV
- name: Add MSYS2 CLANG64 to PATH
shell: powershell
run: |
$bin = "${{ steps.msys2.outputs.msys2-location }}\clang64\bin"
echo $bin
echo $bin >> $env:GITHUB_PATH
- name: Toolchain check
shell: powershell
run: |
clang --version
ninja --version
where clang
where ninja
cmake --version
- name: Build (x64)
shell: cmd
run: |
cd build\lib\win64
call build_all_and_pack.bat native mingw YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: windows_mingw_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_windows_x86_64_tools:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build Tools
run: |
cd build\tools\win64
.\build_all_and_pack.bat
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: windows_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_windows_arm64_lib_MSVC:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat arm64 msvc YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: windows_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_windows_arm64_lib_Clang:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat arm64 clang YES NO NO
build_windows_arm64_lib_MinGW:
runs-on: windows-11-arm
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java (JDK 21)
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
- name: Install MSYS2 (CLANGARM64)
id: msys2
uses: msys2/setup-msys2@v2
with:
msystem: CLANGARM64
update: true
release: true
path-type: inherit
install: >-
mingw-w64-clang-aarch64-toolchain
mingw-w64-clang-aarch64-ninja
- name: Remove conflicting MinGW paths
shell: powershell
run: |
$env:Path = $env:Path -replace 'C:\\mingw64\\bin;','' -replace 'C:\\Program Files\\Git\\mingw64\\bin;',''
echo "PATH=$env:Path" >> $env:GITHUB_ENV
- name: Add MSYS2 CLANG ARM64 to PATH
shell: powershell
run: |
$bin = "${{ steps.msys2.outputs.msys2-location }}\clangarm64\bin"
echo $bin
echo $bin >> $env:GITHUB_PATH
- name: Toolchain check
shell: powershell
run: |
clang --version
ninja --version
where clang
where ninja
cmake --version
- name: Build (ARM64)
shell: cmd
run: |
cd build\lib\win64
call build_all_and_pack.bat native mingw YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: windows_mingw_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_windows_arm64_tools:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build Tools
run: |
cd build\tools\win64
.\build_all_and_pack.bat arm64
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: windows_arm64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#Android
build_windows_android:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Set up Android SDK (with NDK)
id: setup-android
uses: android-actions/setup-android@v4
- name: Install Android CMake
shell: pwsh
run: |
$cmakeDir = Join-Path $env:ANDROID_SDK_ROOT "cmake\3.22.1"
for ($attempt = 1; $attempt -le 3; $attempt++) {
if (Test-Path (Join-Path $cmakeDir "bin\cmake.exe")) { exit 0 }
Remove-Item $cmakeDir -Recurse -Force -ErrorAction SilentlyContinue
sdkmanager "cmake;3.22.1"
if ($LASTEXITCODE -eq 0 -and (Test-Path (Join-Path $cmakeDir "bin\cmake.exe"))) { exit 0 }
Start-Sleep -Seconds (30 * $attempt)
}
throw "Failed to install Android CMake 3.22.1"
- name: Set up NDK
uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r28c
local-cache: false
- name: Build for Windows Android
run: |
cd build\lib\android
.\win_build_all_and_pack.bat
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
build_mac_android:
runs-on: macos-latest
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Set up Android SDK (with NDK)
id: setup-android
uses: android-actions/setup-android@v4
- name: Set up NDK
uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r28c
local-cache: false
- name: Build for Mac Android
run: |
cd build/lib/android
chmod +x *.sh
./mac_build_all_and_pack.sh
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
build_linux_android:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Set up Android SDK (with NDK)
id: setup-android
uses: android-actions/setup-android@v4
- name: Set up NDK
uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r28c
local-cache: false
- name: Build for Linux Android
run: |
cd build/lib/android
chmod +x ./*.sh
./linux_build_all_and_pack.sh
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: android_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#Linux-ubuntu-x86_64
build_ubuntu_x86_64_lib_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native clang YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: linux_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_ubuntu_x86_64_lib_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native gcc YES NO NO
build_ubuntu_x86_64_tools_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/tools/linux
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
./build_all_and_pack_clang.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: linux_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_ubuntu_x86_64_tools_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/tools/linux
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
./build_all_and_pack_gcc.sh
#Linux-ubuntu-arm64
build_ubuntu_arm64_lib_Clang:
runs-on: ubuntu-22.04-arm
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native clang YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: linux_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_ubuntu_arm64_lib_GCC:
runs-on: ubuntu-22.04-arm
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native gcc YES NO NO
build_ubuntu_arm64_tools_Clang:
runs-on: ubuntu-22.04-arm
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/tools/linux
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
./build_all_and_pack_clang.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: linux_arm64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_ubuntu_arm64_tools_GCC:
runs-on: ubuntu-22.04-arm
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Linux
run: |
cd build/tools/linux
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
./build_all_and_pack_gcc.sh
#Linux-debian-x86
build_debian_x86_lib_Clang:
runs-on: ubuntu-22.04
needs: extract_version
container:
image: ghcr.io/pippocao/bqlog/i386_debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Enable UTF-8 locale
run: |
apt-get update
apt-get install -y locales
sed -i 's/# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV
echo "LC_ALL=en_US.UTF-8" >> $GITHUB_ENV
echo "LANGUAGE=en_US:en" >> $GITHUB_ENV
locale
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake gdb
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
apt-get install -y openssh-client
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386" >> $GITHUB_ENV
- name: Build for Debian 32
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native clang YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: linux_x86_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_debian_x86_lib_GCC:
runs-on: ubuntu-22.04
needs: extract_version
container:
image: ghcr.io/pippocao/bqlog/i386_debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Enable UTF-8 locale
run: |
apt-get update
apt-get install -y locales
sed -i 's/# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV
echo "LC_ALL=en_US.UTF-8" >> $GITHUB_ENV
echo "LANGUAGE=en_US:en" >> $GITHUB_ENV
locale
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake gdb
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
apt-get install -y openssh-client
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386" >> $GITHUB_ENV
- name: Build for Debian 32
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native gcc YES NO NO
build_debian_x86_tools_Clang:
runs-on: ubuntu-22.04
needs: extract_version
container:
image: ghcr.io/pippocao/bqlog/i386_debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Enable UTF-8 locale
run: |
apt-get update
apt-get install -y locales
sed -i 's/# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV
echo "LC_ALL=en_US.UTF-8" >> $GITHUB_ENV
echo "LANGUAGE=en_US:en" >> $GITHUB_ENV
locale
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake gdb
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
apt-get install -y openssh-client
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386" >> $GITHUB_ENV
- name: Build for Debian 32
run: |
cd build/tools/linux
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
./build_all_and_pack_clang.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: linux_x86_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_debian_x86_tools_GCC:
runs-on: ubuntu-22.04
needs: extract_version
container:
image: ghcr.io/pippocao/bqlog/i386_debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Enable UTF-8 locale
run: |
apt-get update
apt-get install -y locales
sed -i 's/# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV
echo "LC_ALL=en_US.UTF-8" >> $GITHUB_ENV
echo "LANGUAGE=en_US:en" >> $GITHUB_ENV
locale
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake gdb
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
apt-get install -y openssh-client
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386" >> $GITHUB_ENV
- name: Build for Debian 32
run: |
cd build/tools/linux
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
./build_all_and_pack_gcc.sh
#Mac
build_mac_lib:
runs-on: macos-latest
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Build for Mac
run: |
cd build/lib/mac
chmod +x *.sh
./build_all_and_pack.sh YES NO NO
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: macos_universal_binary_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_mac_tools:
runs-on: macos-latest
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Build for Mac
run: |
cd build/tools/mac
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
./build_all_and_pack.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: macos_universal_binary_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#freebsd_x86_64
build_freebsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-amd64 deps-freebsd-13-amd64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: freebsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_freebsd_x86_64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-amd64 deps-freebsd-13-amd64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
build_freebsd_x86_64_tools_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-amd64 deps-freebsd-13-amd64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_clang.sh
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_clang.sh
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: freebsd_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_freebsd_x86_64_tools_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-amd64 deps-freebsd-13-amd64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_gcc.sh
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_gcc.sh
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
#freebsd_arm64
build_freebsd_arm64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-aarch64 deps-freebsd-13-aarch64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: freebsd_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_freebsd_arm64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-aarch64 deps-freebsd-13-aarch64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
build_freebsd_arm64_tools_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-aarch64 deps-freebsd-13-aarch64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_clang.sh
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_clang.sh
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: freebsd_arm64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_freebsd_arm64_tools_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-aarch64 deps-freebsd-13-aarch64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_gcc.sh
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack_gcc.sh
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
#openbsd_x86_64
build_openbsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download OpenBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:openbsd-7.7-amd64 deps-openbsd-7.7-amd64.tar.gz
- name: Run in OpenBSD
id: RunInOpenBSD
continue-on-error: true
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-amd64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Retry: Run in OpenBSD"
id: RunInOpenBSD_retry
if: steps.RunInOpenBSD.outcome == 'failure'
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-amd64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Verify: Run in OpenBSD"
if: steps.RunInOpenBSD.outcome == 'failure' && steps.RunInOpenBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in OpenBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: openbsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_openbsd_x86_64_tools_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download OpenBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:openbsd-7.7-amd64 deps-openbsd-7.7-amd64.tar.gz
- name: Run in OpenBSD
id: RunInOpenBSD
continue-on-error: true
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-amd64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack_clang.sh
- name: "Retry: Run in OpenBSD"
id: RunInOpenBSD_retry
if: steps.RunInOpenBSD.outcome == 'failure'
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-amd64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack_clang.sh
- name: "Verify: Run in OpenBSD"
if: steps.RunInOpenBSD.outcome == 'failure' && steps.RunInOpenBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in OpenBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: openbsd_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#openbsd_arm64
build_openbsd_arm64_libs_Clang:
runs-on: ubuntu-24.04 # host only runs QEMU; 8.x required to boot the openbsd aarch64 image (artifact is built inside the VM)
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download OpenBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:openbsd-7.7-aarch64 deps-openbsd-7.7-aarch64.tar.gz
- name: Run in OpenBSD
id: RunInOpenBSD
continue-on-error: true
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-aarch64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Retry: Run in OpenBSD"
id: RunInOpenBSD_retry
if: steps.RunInOpenBSD.outcome == 'failure'
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-aarch64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Verify: Run in OpenBSD"
if: steps.RunInOpenBSD.outcome == 'failure' && steps.RunInOpenBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in OpenBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: openbsd_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_openbsd_arm64_tools_Clang:
runs-on: ubuntu-24.04 # host only runs QEMU; 8.x required to boot the openbsd aarch64 image (artifact is built inside the VM)
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download OpenBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:openbsd-7.7-aarch64 deps-openbsd-7.7-aarch64.tar.gz
- name: Run in OpenBSD
id: RunInOpenBSD
continue-on-error: true
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-aarch64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack_clang.sh
- name: "Retry: Run in OpenBSD"
id: RunInOpenBSD_retry
if: steps.RunInOpenBSD.outcome == 'failure'
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-aarch64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/tools/unix_like
chmod +x category_log_generator/*.sh
chmod +x log_decoder/*.sh
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack_clang.sh
- name: "Verify: Run in OpenBSD"
if: steps.RunInOpenBSD.outcome == 'failure' && steps.RunInOpenBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in OpenBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: openbsd_arm64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
# solaris_x86_64
build_solaris_x86_64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Run in Solaris (GCC)
id: RunInSolarisGcc
continue-on-error: true
uses: vmactions/solaris-vm@v1
with:
usesh: true
mem: 8192
release: "11.4-gcc"
prepare: |
pkg publisher
pkg install -v --accept \
developer/build/cmake \
developer/build/gnu-make \
developer/debug/gdb \
developer/gcc-14 \
shell/bash
pkgutil -U || true
pkgutil -y -i jdk8 || {
echo "CSWjdk8 not available in this catalog; Java will be optional." >&2
}
run: |
set -e -x
JAVA_HOME=""
for d in /opt/csw/java/jdk1.8*; do
if [ -x "$d/bin/java" ] && [ -f "$d/include/jni.h" ]; then
JAVA_HOME="$d"
break
fi
done
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ] && [ -f "$JAVA_HOME/include/jni.h" ]; then
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"; export PATH
java -version
echo "JAVA_HOME=$JAVA_HOME"
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
else
echo "No JDK8 with JNI headers found (jni.h not present)."
# exit 1
fi
ls "$JAVA_HOME"
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=solaris
./build_all_and_pack.sh native gcc YES NO NO
- name: "Retry: Run in Solaris (GCC)"
id: RunInSolarisGcc_retry
if: steps.RunInSolarisGcc.outcome == 'failure'
uses: vmactions/solaris-vm@v1
with:
usesh: true
mem: 8192
release: "11.4-gcc"
prepare: |
pkg publisher
pkg install -v --accept \
developer/build/cmake \
developer/build/gnu-make \
developer/debug/gdb \
developer/gcc-14 \
shell/bash
pkgutil -U || true
pkgutil -y -i jdk8 || {
echo "CSWjdk8 not available in this catalog; Java will be optional." >&2
}
run: |
set -e -x
JAVA_HOME=""
for d in /opt/csw/java/jdk1.8*; do
if [ -x "$d/bin/java" ] && [ -f "$d/include/jni.h" ]; then
JAVA_HOME="$d"
break
fi
done
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ] && [ -f "$JAVA_HOME/include/jni.h" ]; then
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"; export PATH
java -version
echo "JAVA_HOME=$JAVA_HOME"
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
else
echo "No JDK8 with JNI headers found (jni.h not present)."
# exit 1
fi
ls "$JAVA_HOME"
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=solaris
./build_all_and_pack.sh native gcc YES NO NO
- name: "Verify: Run in Solaris (GCC)"
if: steps.RunInSolarisGcc.outcome == 'failure' && steps.RunInSolarisGcc_retry.outcome == 'failure'
run: |
echo "::error::Run in Solaris (GCC) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: solaris_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_solaris_x86_64_tools_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Run in Solaris (GCC)
id: RunInSolarisToolsGcc
continue-on-error: true
uses: vmactions/solaris-vm@v1
with:
usesh: true
mem: 8192
release: "11.4-gcc"
prepare: |
pkg install -v --accept \
developer/build/cmake \
developer/build/gnu-make \
developer/debug/gdb \
developer/gcc-14 \
shell/bash
run: |
set -e -x
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=solaris
./build_all_and_pack_gcc.sh
- name: "Retry: Run in Solaris (GCC)"
id: RunInSolarisToolsGcc_retry
if: steps.RunInSolarisToolsGcc.outcome == 'failure'
uses: vmactions/solaris-vm@v1
with:
usesh: true
mem: 8192
release: "11.4-gcc"
prepare: |
pkg install -v --accept \
developer/build/cmake \
developer/build/gnu-make \
developer/debug/gdb \
developer/gcc-14 \
shell/bash
run: |
set -e -x
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=solaris
./build_all_and_pack_gcc.sh
- name: "Verify: Run in Solaris (GCC)"
if: steps.RunInSolarisToolsGcc.outcome == 'failure' && steps.RunInSolarisToolsGcc_retry.outcome == 'failure'
run: |
echo "::error::Run in Solaris (GCC) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: solaris_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
# DragonFlyBSD
build_dragonflybsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:dragonflybsd-6.4.2-amd64 deps-dragonflybsd-6.4.2-amd64.tar.gz
- name: Run in DragonFlyBSD
id: RunInDragonFlyBSDLibs
continue-on-error: true
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
# Java
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native clang YES NO NO
- name: "Retry: Run in DragonFlyBSD"
id: RunInDragonFlyBSDLibs_retry
if: steps.RunInDragonFlyBSDLibs.outcome == 'failure'
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
# Java
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native clang YES NO NO
- name: "Verify: Run in DragonFlyBSD"
if: steps.RunInDragonFlyBSDLibs.outcome == 'failure' && steps.RunInDragonFlyBSDLibs_retry.outcome == 'failure'
run: |
echo "::error::Run in DragonFlyBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: dragonflybsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_dragonflybsd_x86_64_libs_gcc:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:dragonflybsd-6.4.2-amd64 deps-dragonflybsd-6.4.2-amd64.tar.gz
- name: Run in DragonFlyBSD
id: RunInDragonFlyBSDLibs
continue-on-error: true
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
# Java
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native gcc YES NO NO
- name: "Retry: Run in DragonFlyBSD"
id: RunInDragonFlyBSDLibs_retry
if: steps.RunInDragonFlyBSDLibs.outcome == 'failure'
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
# Java
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native gcc YES NO NO
- name: "Verify: Run in DragonFlyBSD"
if: steps.RunInDragonFlyBSDLibs.outcome == 'failure' && steps.RunInDragonFlyBSDLibs_retry.outcome == 'failure'
run: |
echo "::error::Run in DragonFlyBSD failed after retry"
exit 1
build_dragonflybsd_x86_64_tools_clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:dragonflybsd-6.4.2-amd64 deps-dragonflybsd-6.4.2-amd64.tar.gz
- name: Run in DragonFlyBSD
id: RunInDragonFlyBSDTools
continue-on-error: true
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack_clang.sh
- name: "Retry: Run in DragonFlyBSD"
id: RunInDragonFlyBSDTools_retry
if: steps.RunInDragonFlyBSDTools.outcome == 'failure'
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack_clang.sh
- name: "Verify: Run in DragonFlyBSD"
if: steps.RunInDragonFlyBSDTools.outcome == 'failure' && steps.RunInDragonFlyBSDTools_retry.outcome == 'failure'
run: |
echo "::error::Run in DragonFlyBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: dragonflybsd_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_dragonflybsd_x86_64_tools_gcc:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:dragonflybsd-6.4.2-amd64 deps-dragonflybsd-6.4.2-amd64.tar.gz
- name: Run in DragonFlyBSD
id: RunInDragonFlyBSDTools
continue-on-error: true
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack_gcc.sh
- name: "Retry: Run in DragonFlyBSD"
id: RunInDragonFlyBSDTools_retry
if: steps.RunInDragonFlyBSDTools.outcome == 'failure'
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm
run: |
set -e -x
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack_gcc.sh
- name: "Verify: Run in DragonFlyBSD"
if: steps.RunInDragonFlyBSDTools.outcome == 'failure' && steps.RunInDragonFlyBSDTools_retry.outcome == 'failure'
run: |
echo "::error::Run in DragonFlyBSD failed after retry"
exit 1
# OmniOS
build_omnios_x86_64_libs_gcc:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Resolve pkg.omnios.org on host
run: |
PKG_IP=$(dig +short pkg.omnios.org A | grep -E '^[0-9]+\.' | head -1)
echo "PKG_OMNIOS_IP=$PKG_IP" >> "$GITHUB_ENV"
echo "Resolved pkg.omnios.org -> $PKG_IP"
- name: Run in OmniOS (GCC only)
id: RunInOmniOSLibs
continue-on-error: true
uses: vmactions/omnios-vm@v1
with:
release: "r151054"
envs: 'PKG_OMNIOS_IP'
usesh: true
mem: 8192
prepare: |
set -e
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
if [ -n "$PKG_OMNIOS_IP" ]; then
grep -q pkg.omnios.org /etc/hosts || echo "$PKG_OMNIOS_IP pkg.omnios.org" >> /etc/hosts
echo "Added pkg.omnios.org -> $PKG_OMNIOS_IP to /etc/hosts"
fi
pkg refresh --full
if ! pkg publisher | grep -q '^extra\.omnios'; then
REL="$(uname -v | sed -n 's/.*\(r[0-9][0-9]*\).*/\1/p')"
[ -n "$REL" ] || REL="r151054"
pkg set-publisher -g "https://pkg.omnios.org/${REL}/extra" extra.omnios || true
pkg refresh --full
fi
pkg install -v --accept shell/bash developer/build/gnu-make || true
pkg install -v --accept ooce/developer/cmake
pkg install -v --accept developer/gcc13
pkg install -v --accept runtime/java/openjdk11
run: |
set -e -x
export PATH="/opt/gcc-13/bin:$PATH"
export JAVA_HOME="/usr/jdk/instances/openjdk11.0"
ls -l "$JAVA_HOME"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
command -v gcc >/dev/null 2>&1 || { echo "gcc not found; ensure gcc installed"; exit 1; }
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=omnios
./build_all_and_pack.sh native gcc YES NO NO
- name: "Retry: Run in OmniOS (GCC only)"
id: RunInOmniOSLibs_retry
if: steps.RunInOmniOSLibs.outcome == 'failure'
uses: vmactions/omnios-vm@v1
with:
release: "r151054"
envs: 'PKG_OMNIOS_IP'
usesh: true
mem: 8192
prepare: |
set -e
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
if [ -n "$PKG_OMNIOS_IP" ]; then
grep -q pkg.omnios.org /etc/hosts || echo "$PKG_OMNIOS_IP pkg.omnios.org" >> /etc/hosts
fi
pkg refresh --full
if ! pkg publisher | grep -q '^extra\.omnios'; then
REL="$(uname -v | sed -n 's/.*\(r[0-9][0-9]*\).*/\1/p')"
[ -n "$REL" ] || REL="r151054"
pkg set-publisher -g "https://pkg.omnios.org/${REL}/extra" extra.omnios || true
pkg refresh --full
fi
pkg install -v --accept shell/bash developer/build/gnu-make || true
pkg install -v --accept ooce/developer/cmake
pkg install -v --accept developer/gcc13
pkg install -v --accept runtime/java/openjdk11
run: |
set -e -x
export PATH="/opt/gcc-13/bin:$PATH"
export JAVA_HOME="/usr/jdk/instances/openjdk11.0"
ls -l "$JAVA_HOME"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
command -v gcc >/dev/null 2>&1 || { echo "gcc not found; ensure gcc installed"; exit 1; }
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=omnios
./build_all_and_pack.sh native gcc YES NO NO
- name: "Verify: Run in OmniOS (GCC only)"
if: steps.RunInOmniOSLibs.outcome == 'failure' && steps.RunInOmniOSLibs_retry.outcome == 'failure'
run: |
echo "::error::Run in OmniOS (GCC only) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: omnios_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_omnios_x86_64_tools_gcc:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Resolve pkg.omnios.org on host
run: |
PKG_IP=$(dig +short pkg.omnios.org A | grep -E '^[0-9]+\.' | head -1)
echo "PKG_OMNIOS_IP=$PKG_IP" >> "$GITHUB_ENV"
echo "Resolved pkg.omnios.org -> $PKG_IP"
- name: Run in OmniOS (GCC only)
id: RunInOmniOSTools
continue-on-error: true
uses: vmactions/omnios-vm@v1
with:
release: "r151054"
envs: 'PKG_OMNIOS_IP'
usesh: true
mem: 8192
prepare: |
set -e
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
if [ -n "$PKG_OMNIOS_IP" ]; then
grep -q pkg.omnios.org /etc/hosts || echo "$PKG_OMNIOS_IP pkg.omnios.org" >> /etc/hosts
fi
pkg refresh --full
if ! pkg publisher | grep -q '^extra\.omnios'; then
REL="$(uname -v | sed -n 's/.*\(r[0-9][0-9]*\).*/\1/p')"
[ -n "$REL" ] || REL="r151054"
pkg set-publisher -g "https://pkg.omnios.org/${REL}/extra" extra.omnios || true
pkg refresh --full
fi
pkg install -v --accept shell/bash developer/build/gnu-make || true
pkg install -v --accept ooce/developer/cmake
pkg install -v --accept developer/gcc13
pkg install -v --accept runtime/java/openjdk11
run: |
set -e -x
export PATH="/opt/gcc-13/bin:$PATH"
export JAVA_HOME="/usr/jdk/instances/openjdk11.0"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
command -v gcc >/dev/null 2>&1 || { echo "gcc not found; ensure ooce/gcc-13/12/11 installed"; exit 1; }
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=omnios
./build_all_and_pack_gcc.sh
- name: "Retry: Run in OmniOS (GCC only)"
id: RunInOmniOSTools_retry
if: steps.RunInOmniOSTools.outcome == 'failure'
uses: vmactions/omnios-vm@v1
with:
release: "r151054"
envs: 'PKG_OMNIOS_IP'
usesh: true
mem: 8192
prepare: |
set -e
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
if [ -n "$PKG_OMNIOS_IP" ]; then
grep -q pkg.omnios.org /etc/hosts || echo "$PKG_OMNIOS_IP pkg.omnios.org" >> /etc/hosts
fi
pkg refresh --full
if ! pkg publisher | grep -q '^extra\.omnios'; then
REL="$(uname -v | sed -n 's/.*\(r[0-9][0-9]*\).*/\1/p')"
[ -n "$REL" ] || REL="r151054"
pkg set-publisher -g "https://pkg.omnios.org/${REL}/extra" extra.omnios || true
pkg refresh --full
fi
pkg install -v --accept shell/bash developer/build/gnu-make || true
pkg install -v --accept ooce/developer/cmake
pkg install -v --accept developer/gcc13
pkg install -v --accept runtime/java/openjdk11
run: |
set -e -x
export PATH="/opt/gcc-13/bin:$PATH"
export JAVA_HOME="/usr/jdk/instances/openjdk11.0"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
command -v gcc >/dev/null 2>&1 || { echo "gcc not found; ensure ooce/gcc-13/12/11 installed"; exit 1; }
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=omnios
./build_all_and_pack_gcc.sh
- name: "Verify: Run in OmniOS (GCC only)"
if: steps.RunInOmniOSTools.outcome == 'failure' && steps.RunInOmniOSTools_retry.outcome == 'failure'
run: |
echo "::error::Run in OmniOS (GCC only) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: omnios_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
# netbsd_x86_64
build_netbsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-amd64 deps-netbsd-10.1-amd64.tar.gz
- name: Run in NetBSD (Clang, x86_64)
id: vm_step_1
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
# Use Clang (NetBSD base provides clang)
export CC=clang CXX=clang++
clang --version || true
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Retry: Run in NetBSD (Clang, x86_64)"
id: vm_step_1_retry
if: steps.vm_step_1.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
# Use Clang (NetBSD base provides clang)
export CC=clang CXX=clang++
clang --version || true
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Verify: Run in NetBSD (Clang, x86_64)"
if: steps.vm_step_1.outcome == 'failure' && steps.vm_step_1_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (Clang, x86_64) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: netbsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_netbsd_x86_64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-amd64 deps-netbsd-10.1-amd64.tar.gz
- name: Run in NetBSD (GCC, x86_64)
id: vm_step_2
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Retry: Run in NetBSD (GCC, x86_64)"
id: vm_step_2_retry
if: steps.vm_step_2.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Verify: Run in NetBSD (GCC, x86_64)"
if: steps.vm_step_2.outcome == 'failure' && steps.vm_step_2_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (GCC, x86_64) failed after retry"
exit 1
build_netbsd_x86_64_tools_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-amd64 deps-netbsd-10.1-amd64.tar.gz
- name: Run in NetBSD (Clang, x86_64)
id: vm_step_3
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_clang.sh
- name: "Retry: Run in NetBSD (Clang, x86_64)"
id: vm_step_3_retry
if: steps.vm_step_3.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_clang.sh
- name: "Verify: Run in NetBSD (Clang, x86_64)"
if: steps.vm_step_3.outcome == 'failure' && steps.vm_step_3_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (Clang, x86_64) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: netbsd_x86_64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_netbsd_x86_64_tools_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-amd64 deps-netbsd-10.1-amd64.tar.gz
- name: Run in NetBSD (GCC, x86_64)
id: vm_step_4
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_gcc.sh
- name: "Retry: Run in NetBSD (GCC, x86_64)"
id: vm_step_4_retry
if: steps.vm_step_4.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_gcc.sh
- name: "Verify: Run in NetBSD (GCC, x86_64)"
if: steps.vm_step_4.outcome == 'failure' && steps.vm_step_4_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (GCC, x86_64) failed after retry"
exit 1
# netbsd_arm64 (aarch64)
build_netbsd_arm64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-aarch64 deps-netbsd-10.1-aarch64.tar.gz
- name: Run in NetBSD (Clang, arm64)
id: vm_step_5
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Retry: Run in NetBSD (Clang, arm64)"
id: vm_step_5_retry
if: steps.vm_step_5.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES NO NO
- name: "Verify: Run in NetBSD (Clang, arm64)"
if: steps.vm_step_5.outcome == 'failure' && steps.vm_step_5_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (Clang, arm64) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: netbsd_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_netbsd_arm64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-aarch64 deps-netbsd-10.1-aarch64.tar.gz
- name: Run in NetBSD (GCC, arm64)
id: vm_step_6
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Retry: Run in NetBSD (GCC, arm64)"
id: vm_step_6_retry
if: steps.vm_step_6.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES NO NO
- name: "Verify: Run in NetBSD (GCC, arm64)"
if: steps.vm_step_6.outcome == 'failure' && steps.vm_step_6_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (GCC, arm64) failed after retry"
exit 1
build_netbsd_arm64_tools_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-aarch64 deps-netbsd-10.1-aarch64.tar.gz
- name: Run in NetBSD (Clang, arm64)
id: vm_step_7
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_clang.sh
- name: "Retry: Run in NetBSD (Clang, arm64)"
id: vm_step_7_retry
if: steps.vm_step_7.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_clang.sh
- name: "Verify: Run in NetBSD (Clang, arm64)"
if: steps.vm_step_7.outcome == 'failure' && steps.vm_step_7_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (Clang, arm64) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: netbsd_arm64_tools_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
build_netbsd_arm64_tools_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-aarch64 deps-netbsd-10.1-aarch64.tar.gz
- name: Run in NetBSD (GCC, arm64)
id: vm_step_8
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_gcc.sh
- name: "Retry: Run in NetBSD (GCC, arm64)"
id: vm_step_8_retry
if: steps.vm_step_8.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/tools/unix_like
[ -d category_log_generator ] && chmod +x category_log_generator/*.sh
[ -d log_decoder ] && chmod +x log_decoder/*.sh
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack_gcc.sh
- name: "Verify: Run in NetBSD (GCC, arm64)"
if: steps.vm_step_8.outcome == 'failure' && steps.vm_step_8_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (GCC, arm64) failed after retry"
exit 1
#iOS
build_ios_lib:
runs-on: macos-latest
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Build for Mac
run: |
cd build/lib/ios
chmod +x *.sh
./build_all_and_pack.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: ios_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#HarmonyOS
build_harmony_os_on_mac:
runs-on: macos-latest
needs: extract_version
env:
REPO: pippocao/Images
TAG: OHOS_Mac_Arm64_CommandLineTool_6.0.0
ZIP_NAME: commandline-tools-mac-arm64-6.0.0.858.zip
TOOL_NAME: ohos-commandline-tools
TOOL_VERSION: 6.0.0.858
INSTALL_DIR: ${{ github.workspace }}/.toolcache/ohos/commandline-tools/6.0.0.858
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Restore extracted dir cache
id: cache-restore
uses: actions/cache/restore@v5
with:
path: ${{ env.INSTALL_DIR }}
key: macos-arm64-${{ env.TOOL_NAME }}-${{ env.TOOL_VERSION }}
- name: Download from Release when cache miss
if: steps.cache-restore.outputs.cache-hit != 'true'
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euxo pipefail
mkdir -p "${RUNNER_TEMP}"
gh release download "${TAG}" \
--repo "${REPO}" \
--pattern "${ZIP_NAME}" \
--dir "${RUNNER_TEMP}"
ls -lh "${RUNNER_TEMP}"
- name: Extract when cache miss
if: steps.cache-restore.outputs.cache-hit != 'true'
run: |
set -euxo pipefail
mkdir -p "${INSTALL_DIR}"
unzip -q "${RUNNER_TEMP}/${ZIP_NAME}" -d "${INSTALL_DIR}"
/usr/bin/find "${INSTALL_DIR}" -maxdepth 2 -mindepth 1 -print
- name: Build for Mac
run: |
export PATH="${INSTALL_DIR}/command-line-tools/bin:${PATH}"
export OHOS_SDK="${INSTALL_DIR}/command-line-tools/sdk/default/openharmony"
cd build/lib/ohos
chmod +x *.sh
./mac_build_all_and_pack.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: harmony_os_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#Java wrapper
build_windows_java11_wrapper:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Build for Java
run: |
cd build\wrapper\java
.\build_all_and_pack.bat
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: java_wrapper_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#C# wrapper
build_windows_csharp_wrapper:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install and Pack
run: |
robocopy ".\wrapper\csharp" ".\install\wrapper\csharp" /E /R:0 /W:0
robocopy ".\docs" ".\install\docs" /E /R:0 /W:0
robocopy ".\" ".\install" *.md /R:0 /W:0
cd .\build\wrapper\csharp\
mkdir -p pack
cd pack
cmake ../../../../pack -G "Unix Makefiles" -DTARGET_PLATFORM:STRING=all -DPACKAGE_NAME:STRING=bqlog-c#-wrapper
cmake --build . --config Release --target package
cd ..
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: csharp_wrapper_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#########################################################NodeJS Build####################################################
#Windows
nodejs_build_windows_x86_64_lib_MSVC:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
npx node-gyp install
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat native msvc YES YES NO dynamic_lib
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_windows_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_windows_x86_64_lib_Clang:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
npx node-gyp install
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat native clang YES YES NO dynamic_lib
nodejs_build_windows_arm64_lib_MSVC:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
npx node-gyp install --arch=arm64
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat arm64 msvc YES YES NO dynamic_lib
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_windows_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_windows_arm64_lib_Clang:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
npx node-gyp install --arch=arm64
- name: Build for Windows
run: |
cd build\lib\win64
.\build_all_and_pack.bat arm64 clang YES YES NO dynamic_lib
#Linux-ubuntu-x86_64
nodejs_build_ubuntu_x86_64_lib_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_linux_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#Linux-ubuntu-x86_64
nodejs_build_ubuntu_x86_64_lib_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
#Linux-ubuntu-arm64
nodejs_build_ubuntu_arm64_lib_Clang:
runs-on: ubuntu-22.04-arm
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_linux_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_ubuntu_arm64_lib_GCC:
runs-on: ubuntu-22.04-arm
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
#Linux-debian-x86
nodejs_build_debian_x86_lib_Clang:
runs-on: ubuntu-22.04
needs: extract_version
container:
image: ghcr.io/pippocao/bqlog/i386_debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Enable UTF-8 locale
run: |
apt-get update
apt-get install -y locales
sed -i 's/# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV
echo "LC_ALL=en_US.UTF-8" >> $GITHUB_ENV
echo "LANGUAGE=en_US:en" >> $GITHUB_ENV
locale
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake gdb
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
apt-get install -y openssh-client
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386" >> $GITHUB_ENV
- name: Install Node.js and node-api-headers (Debian i386)
run: |
apt-get update
apt-get install -y nodejs npm
npm install node-api-headers
- name: Build for Debian 32
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_linux_x86_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_debian_x86_lib_GCC:
runs-on: ubuntu-22.04
needs: extract_version
container:
image: ghcr.io/pippocao/bqlog/i386_debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Enable UTF-8 locale
run: |
apt-get update
apt-get install -y locales
sed -i 's/# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=en_US.UTF-8
echo "LANG=en_US.UTF-8" >> $GITHUB_ENV
echo "LC_ALL=en_US.UTF-8" >> $GITHUB_ENV
echo "LANGUAGE=en_US:en" >> $GITHUB_ENV
locale
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake gdb
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
apt-get install -y openssh-client
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386" >> $GITHUB_ENV
- name: Install Node.js and node-api-headers (Debian i386)
run: |
apt-get update
apt-get install -y nodejs npm
npm install node-api-headers
- name: Build for Debian 32
run: |
cd build/lib/linux
chmod +x *.sh
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
#Mac
nodejs_build_mac_lib:
runs-on: macos-latest
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
check-latest: true
- name: Install node-api-headers
run: |
npm install node-api-headers
- name: Build for Mac
run: |
cd build/lib/mac
chmod +x *.sh
./build_all_and_pack.sh YES YES NO dynamic_lib
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_macos_universal_binary_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#freebsd_x86_64
nodejs_build_freebsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-amd64 deps-freebsd-13-amd64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
# Install node-api-headers at repo root before build
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
# Install node-api-headers at repo root before build
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_freebsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#freebsd_x86_64
nodejs_build_freebsd_x86_64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-amd64 deps-freebsd-13-amd64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSD
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
# Install node-api-headers at repo root before build
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSD_retry
if: steps.RunInFreeBSD.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
# Install node-api-headers at repo root before build
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSD.outcome == 'failure' && steps.RunInFreeBSD_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
nodejs_build_freebsd_arm64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-aarch64 deps-freebsd-13-aarch64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSDArmClang
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSDArmClang_retry
if: steps.RunInFreeBSDArmClang.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSDArmClang.outcome == 'failure' && steps.RunInFreeBSDArmClang_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_freebsd_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_freebsd_arm64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-aarch64 deps-freebsd-13-aarch64.tar.gz
- name: Run in FreeBSD
id: RunInFreeBSDArmGcc
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Retry: Run in FreeBSD"
id: RunInFreeBSDArmGcc_retry
if: steps.RunInFreeBSDArmGcc.outcome == 'failure'
uses: vmactions/freebsd-vm@v1
with:
release: "13.5"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-aarch64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash openjdk11 gdb gcc node
pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node22 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm-node20 || pkg -o REPOS_DIR=/tmp/repoconf install -y npm
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=freebsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Verify: Run in FreeBSD"
if: steps.RunInFreeBSDArmGcc.outcome == 'failure' && steps.RunInFreeBSDArmGcc_retry.outcome == 'failure'
run: |
echo "::error::Run in FreeBSD failed after retry"
exit 1
nodejs_build_openbsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download OpenBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:openbsd-7.7-amd64 deps-openbsd-7.7-amd64.tar.gz
- name: Run in OpenBSD
id: RunInOpenBSDLibsClang
continue-on-error: true
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-amd64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
TRUSTED_PKG_PATH=/deps pkg_add node-22.* || TRUSTED_PKG_PATH=/deps pkg_add node-20.* || TRUSTED_PKG_PATH=/deps pkg_add node-18.* || TRUSTED_PKG_PATH=/deps pkg_add node
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Retry: Run in OpenBSD"
id: RunInOpenBSDLibsClang_retry
if: steps.RunInOpenBSDLibsClang.outcome == 'failure'
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-amd64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
TRUSTED_PKG_PATH=/deps pkg_add node-22.* || TRUSTED_PKG_PATH=/deps pkg_add node-20.* || TRUSTED_PKG_PATH=/deps pkg_add node-18.* || TRUSTED_PKG_PATH=/deps pkg_add node
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Verify: Run in OpenBSD"
if: steps.RunInOpenBSDLibsClang.outcome == 'failure' && steps.RunInOpenBSDLibsClang_retry.outcome == 'failure'
run: |
echo "::error::Run in OpenBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_openbsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_openbsd_arm64_libs_Clang:
runs-on: ubuntu-24.04 # host only runs QEMU; 8.x required to boot the openbsd aarch64 image (artifact is built inside the VM)
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download OpenBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:openbsd-7.7-aarch64 deps-openbsd-7.7-aarch64.tar.gz
- name: Run in OpenBSD
id: RunInOpenBSDArmLibsClang
continue-on-error: true
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-aarch64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
TRUSTED_PKG_PATH=/deps pkg_add node-22.* || TRUSTED_PKG_PATH=/deps pkg_add node-20.* || TRUSTED_PKG_PATH=/deps pkg_add node-18.* || TRUSTED_PKG_PATH=/deps pkg_add node
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Retry: Run in OpenBSD"
id: RunInOpenBSDArmLibsClang_retry
if: steps.RunInOpenBSDArmLibsClang.outcome == 'failure'
uses: vmactions/openbsd-vm@v1
with:
release: "7.7"
arch: aarch64
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-openbsd-7.7-aarch64.tar.gz" -C /deps
TRUSTED_PKG_PATH=/deps pkg_add cmake bash jdk%11
TRUSTED_PKG_PATH=/deps pkg_add node-22.* || TRUSTED_PKG_PATH=/deps pkg_add node-20.* || TRUSTED_PKG_PATH=/deps pkg_add node-18.* || TRUSTED_PKG_PATH=/deps pkg_add node
run: |
set -e -x
test -x /usr/local/jdk-11/bin/java || { echo "java not found; did you pkg_add jdk%11?"; exit 1; }
export JAVA_HOME="/usr/local/jdk-11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
npm install node-api-headers
cd build/lib/unix_like
chmod +x *.sh
ls -l
export BQ_UNIX_VERSION=openbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Verify: Run in OpenBSD"
if: steps.RunInOpenBSDArmLibsClang.outcome == 'failure' && steps.RunInOpenBSDArmLibsClang_retry.outcome == 'failure'
run: |
echo "::error::Run in OpenBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_openbsd_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_solaris_x86_64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Run in Solaris (GCC)
id: RunInSolarisGccNode
continue-on-error: true
uses: vmactions/solaris-vm@v1
with:
usesh: true
mem: 8192
release: "11.4-gcc"
prepare: |
set -e
pkg publisher
pkg install -v --accept \
developer/build/cmake \
developer/build/gnu-make \
developer/debug/gdb \
developer/gcc-14 \
shell/bash
if ! command -v pkgutil >/dev/null 2>&1; then
echo "Bootstrapping OpenCSW pkgutil..."
pkgadd -n -d http://get.opencsw.org/now CSWpkgutil || true
fi
if [ -x /opt/csw/bin/pkgutil ]; then
/opt/csw/bin/pkgutil -U || true
/opt/csw/bin/pkgutil -y -i jdk8 || {
echo "CSWjdk8 not available in OpenCSW; Java will be optional." >&2
}
else
echo "pkgutil not found; skipping OpenCSW packages." >&2
fi
pkg search -r jdk
pkg search -r nodejs
pkg install runtime/nodejs
run: |
set -e -x
PATH="/opt/csw/bin:$PATH"; export PATH
JAVA_HOME=""; export JAVA_HOME
for d in /opt/csw/java/jdk1.8*; do
if [ -x "$d/bin/java" ] && [ -f "$d/include/jni.h" ]; then
JAVA_HOME="$d"
break
fi
done
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ] && [ -f "$JAVA_HOME/include/jni.h" ]; then
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"; export PATH
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
else
echo "No JDK8 with JNI headers found (jni.h not present)."
fi
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
node -v
npm -v
npm config set strict-ssl false
npm install node-api-headers
ls "$JAVA_HOME" || true
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=solaris
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Retry: Run in Solaris (GCC)"
id: RunInSolarisGccNode_retry
if: steps.RunInSolarisGccNode.outcome == 'failure'
uses: vmactions/solaris-vm@v1
with:
usesh: true
mem: 8192
release: "11.4-gcc"
prepare: |
set -e
pkg publisher
pkg install -v --accept \
developer/build/cmake \
developer/build/gnu-make \
developer/debug/gdb \
developer/gcc-14 \
shell/bash
if ! command -v pkgutil >/dev/null 2>&1; then
echo "Bootstrapping OpenCSW pkgutil..."
pkgadd -n -d http://get.opencsw.org/now CSWpkgutil || true
fi
if [ -x /opt/csw/bin/pkgutil ]; then
/opt/csw/bin/pkgutil -U || true
/opt/csw/bin/pkgutil -y -i jdk8 || {
echo "CSWjdk8 not available in OpenCSW; Java will be optional." >&2
}
else
echo "pkgutil not found; skipping OpenCSW packages." >&2
fi
pkg search -r jdk
pkg search -r nodejs
pkg install runtime/nodejs
run: |
set -e -x
PATH="/opt/csw/bin:$PATH"; export PATH
JAVA_HOME=""; export JAVA_HOME
for d in /opt/csw/java/jdk1.8*; do
if [ -x "$d/bin/java" ] && [ -f "$d/include/jni.h" ]; then
JAVA_HOME="$d"
break
fi
done
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ] && [ -f "$JAVA_HOME/include/jni.h" ]; then
export JAVA_HOME
PATH="$JAVA_HOME/bin:$PATH"; export PATH
java -version
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
else
echo "No JDK8 with JNI headers found (jni.h not present)."
fi
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
node -v
npm -v
npm config set strict-ssl false
npm install node-api-headers
ls "$JAVA_HOME" || true
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=solaris
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Verify: Run in Solaris (GCC)"
if: steps.RunInSolarisGccNode.outcome == 'failure' && steps.RunInSolarisGccNode_retry.outcome == 'failure'
run: |
echo "::error::Run in Solaris (GCC) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_solaris_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_omnios_x86_64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Resolve pkg.omnios.org on host
run: |
PKG_IP=$(dig +short pkg.omnios.org A | grep -E '^[0-9]+\.' | head -1)
echo "PKG_OMNIOS_IP=$PKG_IP" >> "$GITHUB_ENV"
echo "Resolved pkg.omnios.org -> $PKG_IP"
- name: Run in OmniOS (GCC only)
id: RunInOmniOSLibsNode
continue-on-error: true
uses: vmactions/omnios-vm@v1
with:
release: "r151054"
envs: 'PKG_OMNIOS_IP'
usesh: true
mem: 8192
prepare: |
set -e
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
if [ -n "$PKG_OMNIOS_IP" ]; then
grep -q pkg.omnios.org /etc/hosts || echo "$PKG_OMNIOS_IP pkg.omnios.org" >> /etc/hosts
fi
pkg refresh --full
if ! pkg publisher | grep -q '^extra\.omnios'; then
REL="$(uname -v | sed -n 's/.*\(r[0-9][0-9]*\).*/\1/p')"
[ -n "$REL" ] || REL="r151054"
pkg set-publisher -g "https://pkg.omnios.org/${REL}/extra" extra.omnios || true
pkg refresh --full
fi
pkg install -v --accept shell/bash developer/build/gnu-make || true
pkg install -v --accept ooce/developer/cmake
pkg install -v --accept developer/gcc13
pkg install -v --accept runtime/java/openjdk11
pkg install -v --accept ooce/runtime/node-22
run: |
set -e -x
export PATH="/opt/gcc-13/bin:$PATH"
export JAVA_HOME="/usr/jdk/instances/openjdk11.0"
ls -l "$JAVA_HOME"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=omnios
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Retry: Run in OmniOS (GCC only)"
id: RunInOmniOSLibsNode_retry
if: steps.RunInOmniOSLibsNode.outcome == 'failure'
uses: vmactions/omnios-vm@v1
with:
release: "r151054"
envs: 'PKG_OMNIOS_IP'
usesh: true
mem: 8192
prepare: |
set -e
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
if [ -n "$PKG_OMNIOS_IP" ]; then
grep -q pkg.omnios.org /etc/hosts || echo "$PKG_OMNIOS_IP pkg.omnios.org" >> /etc/hosts
fi
pkg refresh --full
if ! pkg publisher | grep -q '^extra\.omnios'; then
REL="$(uname -v | sed -n 's/.*\(r[0-9][0-9]*\).*/\1/p')"
[ -n "$REL" ] || REL="r151054"
pkg set-publisher -g "https://pkg.omnios.org/${REL}/extra" extra.omnios || true
pkg refresh --full
fi
pkg install -v --accept shell/bash developer/build/gnu-make || true
pkg install -v --accept ooce/developer/cmake
pkg install -v --accept developer/gcc13
pkg install -v --accept runtime/java/openjdk11
pkg install -v --accept ooce/runtime/node-22
run: |
set -e -x
export PATH="/opt/gcc-13/bin:$PATH"
export JAVA_HOME="/usr/jdk/instances/openjdk11.0"
ls -l "$JAVA_HOME"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=omnios
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Verify: Run in OmniOS (GCC only)"
if: steps.RunInOmniOSLibsNode.outcome == 'failure' && steps.RunInOmniOSLibsNode_retry.outcome == 'failure'
run: |
echo "::error::Run in OmniOS (GCC only) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_omnios_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_dragonflybsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:dragonflybsd-6.4.2-amd64 deps-dragonflybsd-6.4.2-amd64.tar.gz
- name: Run in DragonFlyBSD
id: RunInDragonFlyBSDLibsClang
continue-on-error: true
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm node20 npm-node20
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
npm install node-api-headers
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Retry: Run in DragonFlyBSD"
id: RunInDragonFlyBSDLibsClang_retry
if: steps.RunInDragonFlyBSDLibsClang.outcome == 'failure'
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm node20 npm-node20
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
npm install node-api-headers
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Verify: Run in DragonFlyBSD"
if: steps.RunInDragonFlyBSDLibsClang.outcome == 'failure' && steps.RunInDragonFlyBSDLibsClang_retry.outcome == 'failure'
run: |
echo "::error::Run in DragonFlyBSD failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_dragonflybsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_dragonflybsd_x86_64_libs_gcc:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:dragonflybsd-6.4.2-amd64 deps-dragonflybsd-6.4.2-amd64.tar.gz
- name: Run in DragonFlyBSD
id: RunInDragonFlyBSDLibsGcc
continue-on-error: true
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm node20 npm-node20
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
npm install node-api-headers
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Retry: Run in DragonFlyBSD"
id: RunInDragonFlyBSDLibsGcc_retry
if: steps.RunInDragonFlyBSDLibsGcc.outcome == 'failure'
uses: vmactions/dragonflybsd-vm@v1
with:
release: "6.4.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-dragonflybsd-6.4.2-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y cmake bash gmake gdb openjdk11 gcc llvm node20 npm-node20
run: |
set -e -x
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
java -version
npm install node-api-headers
echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=dragonflybsd
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export MM_CHARSET=UTF-8
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Verify: Run in DragonFlyBSD"
if: steps.RunInDragonFlyBSDLibsGcc.outcome == 'failure' && steps.RunInDragonFlyBSDLibsGcc_retry.outcome == 'failure'
run: |
echo "::error::Run in DragonFlyBSD failed after retry"
exit 1
nodejs_build_netbsd_x86_64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-amd64 deps-netbsd-10.1-amd64.tar.gz
- name: Run in NetBSD (Clang, x86_64)
id: vm_step_9
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
clang --version || true
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Retry: Run in NetBSD (Clang, x86_64)"
id: vm_step_9_retry
if: steps.vm_step_9.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
clang --version || true
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Verify: Run in NetBSD (Clang, x86_64)"
if: steps.vm_step_9.outcome == 'failure' && steps.vm_step_9_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (Clang, x86_64) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_netbsd_x86_64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_netbsd_x86_64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-amd64 deps-netbsd-10.1-amd64.tar.gz
- name: Run in NetBSD (GCC, x86_64)
id: vm_step_10
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Retry: Run in NetBSD (GCC, x86_64)"
id: vm_step_10_retry
if: steps.vm_step_10.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Verify: Run in NetBSD (GCC, x86_64)"
if: steps.vm_step_10.outcome == 'failure' && steps.vm_step_10_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (GCC, x86_64) failed after retry"
exit 1
nodejs_build_netbsd_arm64_libs_Clang:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-aarch64 deps-netbsd-10.1-aarch64.tar.gz
- name: Run in NetBSD (Clang, arm64)
id: vm_step_11
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Retry: Run in NetBSD (Clang, arm64)"
id: vm_step_11_retry
if: steps.vm_step_11.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
export CC=clang CXX=clang++
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native clang YES YES NO dynamic_lib
- name: "Verify: Run in NetBSD (Clang, arm64)"
if: steps.vm_step_11.outcome == 'failure' && steps.vm_step_11_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (Clang, arm64) failed after retry"
exit 1
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: tmp_node_netbsd_arm64_libs_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
nodejs_build_netbsd_arm64_libs_GCC:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download BSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:netbsd-10.1-aarch64 deps-netbsd-10.1-aarch64.tar.gz
- name: Run in NetBSD (GCC, arm64)
id: vm_step_12
continue-on-error: true
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Retry: Run in NetBSD (GCC, arm64)"
id: vm_step_12_retry
if: steps.vm_step_12.outcome == 'failure'
uses: vmactions/netbsd-vm@v1
with:
arch: aarch64
usesh: true
mem: 8192
release: "10.1"
prepare: |
set -e
export PATH="/usr/sbin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin:$PATH"
ARCH="$(uname -m)"
case "$ARCH" in
evbarm|aarch64|arm64) PKG_ARCH="aarch64" ;;
*) PKG_ARCH="$ARCH" ;;
esac
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-netbsd-10.1-${PKG_ARCH}.tar.gz" -C /deps
export PKG_PATH=/deps
/usr/sbin/pkg_add -u cmake gmake bash
/usr/sbin/pkg_add gdb || echo "gdb unavailable, skipping"
/usr/sbin/pkg_add -u clang
/usr/sbin/pkg_add -u gcc12
URLS=""
case "$ARCH" in
amd64|x86_64)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz"
;;
aarch64|arm64|evbarm)
URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://ftp.jaist.ac.jp/pub/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz https://mirrors.tuna.tsinghua.edu.cn/NetBSD/NetBSD-10.1/evbarm-aarch64/binary/sets/xbase.tar.xz"
;;
*)
echo "Unknown arch $ARCH; please set xbase URL manually" >&2
exit 1
;;
esac
fetched=0
for u in $URLS; do
echo "Fetching $u"
if /usr/bin/ftp -o /tmp/xbase.tar.xz "$u"; then
tar -xJpf /tmp/xbase.tar.xz -C /
fetched=1
break
fi
done
if [ "$fetched" -ne 1 ]; then
echo "Failed to fetch/extract xbase.tar.xz" >&2
exit 1
fi
ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; }
/usr/sbin/pkg_add -u openjdk17
/usr/sbin/pkg_add -u nodejs
run: |
set -e -x
export JAVA_HOME="/usr/pkg/java/openjdk17"
export PATH="$JAVA_HOME/bin:/usr/pkg/bin:/usr/pkg/sbin:$PATH"
java -version
command -v node >/dev/null 2>&1 || { echo "Node.js not found" >&2; exit 1; }
npm install node-api-headers
echo "JAVA_HOME=${JAVA_HOME:-}" >> "$GITHUB_ENV"
echo "PATH=$PATH" >> "$GITHUB_ENV"
cd build/lib/unix_like
chmod +x *.sh 2>/dev/null || true
ls -l
export BQ_UNIX_VERSION=netbsd
./build_all_and_pack.sh native gcc YES YES NO dynamic_lib
- name: "Verify: Run in NetBSD (GCC, arm64)"
if: steps.vm_step_12.outcome == 'failure' && steps.vm_step_12_retry.outcome == 'failure'
run: |
echo "::error::Run in NetBSD (GCC, arm64) failed after retry"
exit 1
nodejs_collect_and_stage_prebuilds:
runs-on: ubuntu-22.04
needs:
- extract_version
- nodejs_build_windows_x86_64_lib_MSVC
- nodejs_build_windows_arm64_lib_MSVC
- nodejs_build_ubuntu_x86_64_lib_Clang
- nodejs_build_ubuntu_arm64_lib_Clang
- nodejs_build_debian_x86_lib_Clang
- nodejs_build_mac_lib
- nodejs_build_freebsd_x86_64_libs_Clang
- nodejs_build_freebsd_arm64_libs_Clang
- nodejs_build_openbsd_x86_64_libs_Clang
- nodejs_build_openbsd_arm64_libs_Clang
- nodejs_build_solaris_x86_64_libs_GCC
- nodejs_build_omnios_x86_64_libs_GCC
- nodejs_build_dragonflybsd_x86_64_libs_Clang
- nodejs_build_netbsd_x86_64_libs_Clang
- nodejs_build_netbsd_arm64_libs_Clang
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download all artifacts from native builds
uses: actions/download-artifact@v8
with:
pattern: tmp_node_*
merge-multiple: false
path: downloaded_artifacts
- name: List all archives
shell: bash
run: |
set -euo pipefail
ls -l downloaded_artifacts
- name: Prepare tools
run: |
sudo apt-get update
sudo apt-get install -y unzip
- name: Stage RelWithDebInfo BqLog.node (+pdb) into wrapper/typescript/prebuilds
shell: bash
run: |
set -euo pipefail
TS_DIR="wrapper/typescript"
PREBUILDS_DIR="$TS_DIR/prebuilds"
mkdir -p "$PREBUILDS_DIR"
map_target() {
# Map archive folder name to prebuilds/<plat-arch>
# Input: archive base name (e.g., PACKAGE-windows-x86_64-1.2.3)
local name="$1"
local lowered="${name,,}"
if [[ "$lowered" == *macos*universal* ]]; then
echo "darwin-universal" # special marker, handled later (copy to two dirs)
elif [[ "$lowered" == *windows*arm64* ]]; then
echo "win32-arm64"
elif [[ "$lowered" == *windows* ]]; then
# default windows x64
echo "win32-x64"
elif [[ "$lowered" == *freebsd*arm64* ]]; then
echo "freebsd-arm64"
elif [[ "$lowered" == *freebsd* ]]; then
echo "freebsd-x64"
elif [[ "$lowered" == *openbsd*arm64* ]]; then
echo "openbsd-arm64"
elif [[ "$lowered" == *openbsd* ]]; then
echo "openbsd-x64"
elif [[ "$lowered" == *netbsd*arm64* ]]; then
echo "netbsd-arm64"
elif [[ "$lowered" == *netbsd* ]]; then
echo "netbsd-x64"
elif [[ "$lowered" == *dragonfly* ]]; then
echo "dragonfly-x64"
elif [[ "$lowered" == *omnios* || "$lowered" == *solaris* || "$lowered" == *sunos* ]]; then
echo "sunos-x64"
elif [[ "$lowered" == *linux*arm64* ]]; then
echo "linux-arm64"
elif [[ "$lowered" == *linux*x86_64* || "$lowered" == *linux*amd64* ]]; then
echo "linux-x64"
elif [[ "$lowered" == *linux*x86* || "$lowered" == *debian*x86* || "$lowered" == *i386* ]]; then
echo "linux-ia32"
else
# Fallback unknown
echo ""
fi
}
copied_any=0
shopt -s globstar nullglob
for d in downloaded_artifacts/*/*; do
base="$(basename "$d")"
target="$(map_target "$base")"
if [[ -z "$target" ]]; then
echo "Skip: cannot determine prebuild target for $base"
continue
fi
# Find RelWithDebInfo/BqLog.node
mapfile -t nodes < <(find "$d" -type f -path "*/RelWithDebInfo/*" -name "BqLog.node" 2>/dev/null || true)
if (( ${#nodes[@]} == 0 )); then
echo "No RelWithDebInfo/BqLog.node found in $base, skipping."
continue
fi
# Prefer the first match
node_src="${nodes[0]}"
echo "::group::Stage from $base -> $target"
if [[ "$target" == "darwin-universal" ]]; then
for tdir in "darwin-x64" "darwin-arm64"; do
mkdir -p "$PREBUILDS_DIR/$tdir"
cp -f "$node_src" "$PREBUILDS_DIR/$tdir/BqLog.node"
done
else
mkdir -p "$PREBUILDS_DIR/$target"
cp -f "$node_src" "$PREBUILDS_DIR/$target/BqLog.node"
# Optional PDB (Windows builds)
pdb="$(dirname "$node_src")/BqLog.pdb"
if [[ -f "$pdb" ]]; then
cp -f "$pdb" "$PREBUILDS_DIR/$target/BqLog.pdb"
fi
fi
echo "::endgroup::"
copied_any=1
done
if [[ "$copied_any" -ne 1 ]]; then
echo "Error: No prebuilds were staged."
exit 1
fi
- name: List staged prebuilds
run: |
find wrapper/typescript/prebuilds -maxdepth 2 -type f -print | sort
- name: Build NPM
run: |
cd build/wrapper/nodejs
chmod +x *.sh
./build_all_and_pack.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: nodejs_npm_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
- name: Delete intermediate artifacts
uses: geekyeggo/delete-artifact@v6
with:
name: tmp_node_*
failOnError: false
# Unreal plugin
unreal_plugin_build_on_linux:
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: build plugin
run: |
cd build/plugin/unreal
chmod +x *.sh
./linux_build_all_and_pack.sh
- name: Reorganize dist for upload
shell: bash
env:
VERSION: ${{ needs.extract_version.outputs.version }}
run: |
set -euo pipefail
DIST="${{ github.workspace }}/dist"
# Generic UE4/UE5 zip: root is BqLog/ (what users get from GitHub Release).
# The .uplugin EngineVersion stays as the two-segment "4.27" / "5.8" set by
# linux_build_all_and_pack.sh — two-segment values fail FEngineVersion::Parse,
# which makes FPluginManager::IsPluginCompatible short-circuit to true, so the
# plugin loads cleanly on any 4.22~4.27 / 5.0~5.8 without the "load anyway?" dialog.
for ue in ue4 ue5; do
mkdir -p "$DIST/$ue"
(cd "$DIST/$ue" && unzip -q "$DIST/bqlog-unreal-plugin-${VERSION}-${ue}.zip")
done
# Fab zips: one zip per supported engine minor version.
# Each zip ships with .uplugin rewritten so:
# - EngineVersion is the three-segment "X.Y.0" matching that Fab Project Version
# (Fab's review pipeline validates this field per listing).
# - UE4 targets use the legacy WhitelistPlatforms/BlacklistPlatforms keys
# (UE 4.27 and earlier ModuleDescriptor.cpp only reads those).
# - UE5 targets use PlatformAllowList/PlatformDenyList
# (UE 5.x ModuleDescriptor.cpp reads those first; legacy names remain as fallback).
# - Linux arm64 platform string differs: UE4 uses "LinuxAArch64", UE5 uses "LinuxArm64".
rewrite_uplugin_for_fab() {
local plugin_dir="$1" # directory containing BqLog.uplugin
local ue_major="$2" # 4 or 5
local ue_minor="$3" # 22, 23, ... 27 or 0, 1, ... 8
local uplugin="$plugin_dir/BqLog.uplugin"
# Set EngineVersion to "X.Y"
sed -i -E \
"s/\"EngineVersion\"[[:space:]]*:[[:space:]]*\"[^\"]*\"/\"EngineVersion\": \"${ue_major}.${ue_minor}\"/" \
"$uplugin"
if [[ "$ue_major" == "4" ]]; then
# UE4 ModuleDescriptor.cpp only recognizes the legacy key names.
sed -i 's/"PlatformAllowList"/"WhitelistPlatforms"/g' "$uplugin"
sed -i 's/"PlatformDenyList"/"BlacklistPlatforms"/g' "$uplugin"
# UE4 Linux arm64 target is spelled LinuxAArch64 (added in 4.25).
sed -i 's/"LinuxArm64"/"LinuxAArch64"/g' "$uplugin"
# UE 4.22~4.24 predate several tokens we use by default:
# - ModuleHostType.UncookedOnly was introduced in 4.24.
# 4.22/4.23 reject it with "Missing or invalid 'Type' field"
# (Enum.TryParse<ModuleHostType> fails). Fall back to Editor,
# which is the closest pre-4.24 equivalent for BqLogBPNodes
# (blueprint-graph helpers that only load inside the editor).
# - UnrealTargetPlatform.LinuxAArch64 was introduced in 4.25.
# 4.22/4.23/4.24 reject the platform name with
# "The platform name LinuxAArch64 is not a valid platform name".
if (( ue_minor < 24 )); then
# 4.22, 4.23: strip UncookedOnly entirely.
sed -i 's/"UncookedOnly"/"Editor"/g' "$uplugin"
fi
if (( ue_minor < 25 )); then
# 4.22, 4.23, 4.24: remove LinuxAArch64 (with surrounding comma
# and optional whitespace) from platform arrays.
# ", \"LinuxAArch64\"" → "" (middle or tail element)
# "\"LinuxAArch64\", " → "" (leading element)
# "\"LinuxAArch64\"" → "" (sole element, fallback)
sed -i -E \
-e 's/,[[:space:]]*"LinuxAArch64"//g' \
-e 's/"LinuxAArch64"[[:space:]]*,[[:space:]]*//g' \
-e 's/"LinuxAArch64"//g' \
"$uplugin"
fi
fi
}
build_fab_zip() {
local ue_variant="$1" # ue4 or ue5
local ue_major="$2"
local ue_minor="$3"
local src_dir="$DIST/$ue_variant/BqLog"
local stage_dir="$DIST/fab_stage_ue_${ue_major}_${ue_minor}"
local out_dir="$DIST/fab_ue_${ue_major}_${ue_minor}"
rm -rf "$stage_dir" "$out_dir"
mkdir -p "$stage_dir" "$out_dir"
# Fab zip layout: plugin contents at zip root (no BqLog/ wrapper).
cp -R "$src_dir/." "$stage_dir/"
rewrite_uplugin_for_fab "$stage_dir" "$ue_major" "$ue_minor"
cp -R "$stage_dir/." "$out_dir/"
}
for minor in 22 23 24 25 26 27; do
build_fab_zip ue4 4 "$minor"
done
for minor in 0 1 2 3 4 5 6 7 8; do
build_fab_zip ue5 5 "$minor"
done
- name: Upload UE4 Source Artifact
uses: actions/upload-artifact@v6
with:
name: unreal_plugin_sources_ue4_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/ue4
- name: Upload UE5 Source Artifact
uses: actions/upload-artifact@v6
with:
name: unreal_plugin_sources_ue5_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/ue5
- name: Upload UE4 Fab Source Artifacts (4.22~4.27)
uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_4_22_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_4_22
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_4_23_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_4_23
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_4_24_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_4_24
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_4_25_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_4_25
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_4_26_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_4_26
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_4_27_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_4_27
- name: Upload UE5 Fab Source Artifacts (5.0~5.8)
uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_0_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_0
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_1_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_1
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_2_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_2
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_3_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_3
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_4_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_4
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_5_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_5
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_6_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_6
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_7_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_7
- uses: actions/upload-artifact@v6
with:
name: _dont_download_this_only_for_fab_ue_5_8_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/fab_ue_5_8
# ── Temporary: publish ONLY the 14 Fab source zips to pippocao/BqLogFabRelease.
# Used to smoke-test the Fab release pipeline without waiting for the full CI
# (prebuilt job, Python/Java/Node publishing, etc.) to finish. Runs only on
# manual dispatch (github.event_name == 'workflow_dispatch') so that
# release.yml — which also publishes to BqLogFabRelease — never fires this.
# Remove this job once the Fab flow is verified end to end.
# fab_sources_only_release:
# runs-on: ubuntu-22.04
# if: ${{ github.event_name == 'workflow_dispatch' }}
# needs:
# - extract_version
# - unreal_plugin_build_on_linux
# steps:
# - name: Download Fab source artifacts
# uses: actions/download-artifact@v8
# with:
# pattern: _dont_download_this_only_for_fab_ue_*_${{ needs.extract_version.outputs.version }}
# path: downloaded_fab_sources/
#
# - name: Pack each Fab artifact into its own zip
# shell: bash
# run: |
# set -euo pipefail
# mkdir -p fab_release_assets
# for artifact_dir in downloaded_fab_sources/*/; do
# name="$(basename "$artifact_dir")"
# (cd "$artifact_dir" && zip -qry "$OLDPWD/fab_release_assets/${name}.zip" .)
# done
# echo "=== Fab release assets ==="
# ls -l fab_release_assets/
#
# - name: Publish test release to pippocao/BqLogFabRelease
# uses: softprops/action-gh-release@v3
# with:
# # Pass the cross-repo PAT via the `token` input, not env.GITHUB_TOKEN.
# # softprops/action-gh-release@v3's `token` input defaults to
# # `${{ github.token }}` and that default silently wins over any
# # GITHUB_TOKEN env var — using env alone causes 403 "Resource not
# # accessible by integration" because github.token can't write to
# # another repo.
# token: ${{ secrets.FAB_RELEASE_TOKEN }}
# repository: pippocao/BqLogFabRelease
# # Suffix with run_id so repeated smoke-test runs never collide on tag.
# tag_name: Test_Release_${{ needs.extract_version.outputs.version }}_${{ github.run_id }}
# name: Test Release ${{ needs.extract_version.outputs.version }} (Fab sources only, run ${{ github.run_id }})
# body: |
# Temporary smoke-test release of the 14 per-engine-version Fab source zips.
# Created by the `fab_sources_only_release` job in build.yml for BqLog
# ${{ needs.extract_version.outputs.version }}.
#
# Not for general consumption — delete once Fab review is verified.
# draft: false
# prerelease: true
# files: fab_release_assets/*
unreal_plugin_build_on_win64:
runs-on: windows-2022
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: build plugin
run: |
cd build\plugin\unreal
.\win_build_all_and_pack.bat
unreal_plugin_build_on_mac:
runs-on: macos-latest
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: build plugin
run: |
cd build/plugin/unreal
chmod +x *.sh
./mac_build_all_and_pack.sh
unreal_plugin_pack_prebuilt:
runs-on: ubuntu-22.04
needs:
- extract_version
- build_windows_x86_64_lib_MSVC
- build_windows_arm64_lib_MSVC
- build_ubuntu_x86_64_lib_Clang
- build_ubuntu_arm64_lib_Clang
- build_mac_lib
- build_ios_lib
- build_linux_android
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download native artifacts
uses: actions/download-artifact@v8
with:
path: downloaded_artifacts
- name: List all archives
shell: bash
run: |
set -euo pipefail
ls -l downloaded_artifacts
- name: Install tooling
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install -y unzip zip rsync
- name: Stage Unreal prebuilt plugin
shell: bash
env:
VERSION: ${{ needs.extract_version.outputs.version }}
run: |
set -euo pipefail
if [[ -z "${VERSION:-}" ]]; then
echo "VERSION env not set" >&2
exit 1
fi
ROOT="$(pwd)"
ARTIFACT_ROOT="$ROOT/downloaded_artifacts"
TMP_ROOT="$ROOT/artifacts/plugin/unreal/tmp_prebuilt"
DIST_DIR="$ROOT/dist"
TEMPLATE_DIR="$ROOT/plugin/unreal/BqLog"
mkdir -p "$TMP_ROOT" "$DIST_DIR"
find_preferred() {
local base="$1"
local name="$2"
local prefer="${3:-RelWithDebInfo}"
local required_segment="${4:-}"
local result
result=$(find "$base" -type f -name "$name" 2>/dev/null | { if [[ -n "$required_segment" ]]; then grep "$required_segment" || true; else cat; fi; } | grep "$prefer" | head -n1 || true)
if [[ -z "$result" ]]; then
result=$(find "$base" -type f -name "$name" 2>/dev/null | { if [[ -n "$required_segment" ]]; then grep "$required_segment" || true; else cat; fi; } | head -n1 || true)
fi
echo "$result"
}
find_linux_so() {
local base="$1"
local version="$2"
local result
result=$(find "$base" -type f -path "*dynamic_lib*/libBqLog.so.${VERSION}" 2>/dev/null | head -n1 || true)
if [[ -z "$result" ]]; then
result=$(find_preferred "$base" libBqLog.so "RelWithDebInfo" "dynamic_lib")
fi
echo "$result"
}
find_mac_dylib() {
local base="$1"
local version="$2"
local result
result=$(find "$base" -type f -path "*dynamic_lib*/libBqLog.${VERSION}.dylib" 2>/dev/null | head -n1 || true)
if [[ -z "$result" ]]; then
result=$(find_preferred "$base" libBqLog.dylib "RelWithDebInfo" "dynamic_lib")
fi
echo "$result"
}
copy_file() {
local src="$1"
local dst="$2"
if [[ -f "$src" ]]; then
mkdir -p "$(dirname "$dst")"
cp -f "$src" "$dst"
fi
}
copy_file_follow() {
local src="$1"
local dst="$2"
if [[ -e "$src" ]]; then
mkdir -p "$(dirname "$dst")"
cp -fL "$src" "$dst"
fi
}
copy_dir() {
local src="$1"
local dst="$2"
if [[ -d "$src" ]]; then
rm -rf "$dst"
mkdir -p "$(dirname "$dst")"
cp -R "$src" "$dst"
fi
}
copy_directory_all() {
local file_path="$1"
local dst_dir="$2"
if [[ -z "$file_path" ]]; then
return
fi
local src_dir
src_dir="$(dirname "$file_path")"
if [[ ! -d "$src_dir" ]]; then
return
fi
mkdir -p "$dst_dir"
rsync -a "$src_dir/" "$dst_dir/"
}
WIN_X64_BASE="$ARTIFACT_ROOT/windows_x86_64_libs_${VERSION}"
WIN_ARM64_BASE="$ARTIFACT_ROOT/windows_arm64_libs_${VERSION}"
LINUX_X64_BASE="$ARTIFACT_ROOT/linux_x86_64_libs_${VERSION}"
LINUX_ARM64_BASE="$ARTIFACT_ROOT/linux_arm64_libs_${VERSION}"
MAC_BASE="$ARTIFACT_ROOT/macos_universal_binary_libs_${VERSION}"
IOS_BASE="$ARTIFACT_ROOT/ios_libs_${VERSION}"
ANDROID_BASE="$ARTIFACT_ROOT/android_libs_${VERSION}"
DYNAMIC_INCLUDE_SRC=$(find "$WIN_X64_BASE" -type d -path "*/dynamic_lib/include" -print -quit)
if [[ -z "$DYNAMIC_INCLUDE_SRC" ]]; then
echo "ERROR: Failed to locate dynamic_lib include directory" >&2
exit 1
fi
STATIC_INCLUDE_SRC=$(find "$IOS_BASE" -type d -path "*/static_lib/include" -print -quit)
if [[ -z "$STATIC_INCLUDE_SRC" ]]; then
echo "ERROR: Failed to locate static_lib include directory for iOS" >&2
exit 1
fi
WIN_X64_DLL=$(find_preferred "$WIN_X64_BASE" BqLog.dll "RelWithDebInfo" "dynamic_lib")
WIN_X64_LIB=$(find_preferred "$WIN_X64_BASE" BqLog.lib "RelWithDebInfo" "dynamic_lib")
WIN_X64_PDB=$(find_preferred "$WIN_X64_BASE" BqLog.pdb "RelWithDebInfo" "dynamic_lib")
WIN_ARM64_DLL=$(find_preferred "$WIN_ARM64_BASE" BqLog.dll "RelWithDebInfo" "dynamic_lib")
WIN_ARM64_LIB=$(find_preferred "$WIN_ARM64_BASE" BqLog.lib "RelWithDebInfo" "dynamic_lib")
WIN_ARM64_PDB=$(find_preferred "$WIN_ARM64_BASE" BqLog.pdb "RelWithDebInfo" "dynamic_lib")
LINUX_X64_SO=$(find_linux_so "$LINUX_X64_BASE" "$VERSION")
LINUX_ARM64_SO=$(find_linux_so "$LINUX_ARM64_BASE" "$VERSION")
MAC_DYLIB=$(find_mac_dylib "$MAC_BASE" "$VERSION")
IOS_XCFRAMEWORK=$(find "$IOS_BASE" -type d -path "*dynamic_lib*/BqLog.xcframework" -print -quit)
ANDROID_AAR=$(find "$ANDROID_BASE" -type f -name "*bqlog-release.aar" -print -quit)
if [[ -z "$ANDROID_AAR" ]]; then
echo "ERROR: Missing Android AAR package" >&2
exit 1
fi
ANDROID_PREFAB_DIR="$TMP_ROOT/android_prefab_so"
rm -rf "$ANDROID_PREFAB_DIR"
mkdir -p "$ANDROID_PREFAB_DIR"
unzip -qo "$ANDROID_AAR" 'prefab/modules/BqLog/libs/*/libBqLog.so' -d "$ANDROID_PREFAB_DIR"
declare -A ANDROID_SO
for abi in armeabi-v7a arm64-v8a x86 x86_64; do
so_path="$ANDROID_PREFAB_DIR/prefab/modules/BqLog/libs/android.${abi}/libBqLog.so"
if [[ ! -f "$so_path" ]]; then
echo "ERROR: Missing prefab libBqLog.so for ABI ${abi} in AAR" >&2
exit 1
fi
ANDROID_SO[$abi]="$so_path"
done
if [[ -z "$WIN_X64_DLL" || -z "$WIN_X64_LIB" ]]; then
echo "ERROR: Missing Windows x86_64 binaries" >&2
exit 1
fi
if [[ -z "$WIN_ARM64_DLL" || -z "$WIN_ARM64_LIB" ]]; then
echo "ERROR: Missing Windows arm64 binaries" >&2
exit 1
fi
if [[ -z "$LINUX_X64_SO" || -z "$LINUX_ARM64_SO" ]]; then
echo "ERROR: Missing Linux shared libraries" >&2
exit 1
fi
if [[ -z "$MAC_DYLIB" ]]; then
echo "ERROR: Missing macOS dylib" >&2
exit 1
fi
if [[ -z "$IOS_XCFRAMEWORK" ]]; then
echo "ERROR: Missing iOS xcframework" >&2
exit 1
fi
UE_VARIANTS=(ue4 ue5)
for ue in "${UE_VARIANTS[@]}"; do
stage_dir="$TMP_ROOT/$ue"
rm -rf "$stage_dir"
mkdir -p "$stage_dir"
rsync -a "$TEMPLATE_DIR/" "$stage_dir/BqLog/"
plugin_dir="$stage_dir/BqLog"
public_dir="$plugin_dir/Source/BqLog/Public"
thirdparty_root="$plugin_dir/Source/BqLog/ThirdParty/BqLog"
rm -rf "$plugin_dir/Source/BqLog/ThirdParty"
rm -rf "$public_dir/ThirdParty"
mkdir -p "$thirdparty_root/Shared/Dynamic/include"
mkdir -p "$thirdparty_root/Shared/Static/include"
cp -R "$DYNAMIC_INCLUDE_SRC/." "$thirdparty_root/Shared/Dynamic/include/"
cp -R "$STATIC_INCLUDE_SRC/." "$thirdparty_root/Shared/Static/include/"
if [[ -f "$public_dir/BqLog_h_${ue}.txt" ]]; then
mv "$public_dir/BqLog_h_${ue}.txt" "$public_dir/BqLog.h"
fi
rm -f "$public_dir"/BqLog_h_*.txt
# Replace version in .uplugin
VERSION_MAJOR=$(echo "$VERSION" | cut -d. -f1)
VERSION_MINOR=$(echo "$VERSION" | cut -d. -f2)
VERSION_PATCH=$(echo "$VERSION" | cut -d. -f3)
VERSION_INT=$(( VERSION_MAJOR * 10000 + VERSION_MINOR * 100 + VERSION_PATCH ))
sed -i "s/\"Version\": 1/\"Version\": $VERSION_INT/" "$plugin_dir/BqLog.uplugin"
sed -i "s/\"VersionName\": \"1.0\"/\"VersionName\": \"$VERSION\"/" "$plugin_dir/BqLog.uplugin"
if [[ "$ue" == "ue4" ]]; then
sed -i "s/\"EngineVersion\": \"5.8\"/\"EngineVersion\": \"4.27\"/" "$plugin_dir/BqLog.uplugin"
sed -i 's/"PlatformAllowList"/"WhitelistPlatforms"/g' "$plugin_dir/BqLog.uplugin"
sed -i 's/"PlatformDenyList"/"BlacklistPlatforms"/g' "$plugin_dir/BqLog.uplugin"
sed -i 's/"LinuxArm64"/"LinuxAArch64"/g' "$plugin_dir/BqLog.uplugin"
fi
rm -rf "$plugin_dir/Binaries/Win64" "$plugin_dir/Binaries/Win64Arm64" "$plugin_dir/Binaries/Linux" "$plugin_dir/Binaries/LinuxAArch64" "$plugin_dir/Binaries/Mac" "$plugin_dir/Binaries/IOS"
mkdir -p "$plugin_dir/Binaries/Win64" "$plugin_dir/Binaries/Win64Arm64" "$plugin_dir/Binaries/Linux" "$plugin_dir/Binaries/LinuxAArch64" "$plugin_dir/Binaries/Mac" "$plugin_dir/Binaries/IOS" "$plugin_dir/Binaries/Android"
copy_file "$WIN_X64_LIB" "$thirdparty_root/Win64/x86_64/lib/BqLog.lib"
copy_file "$WIN_ARM64_LIB" "$thirdparty_root/Win64/arm64/lib/BqLog.lib"
copy_file "$WIN_X64_DLL" "$plugin_dir/Binaries/Win64/BqLog.dll"
copy_file "$WIN_X64_PDB" "$plugin_dir/Binaries/Win64/BqLog.pdb"
copy_file "$WIN_ARM64_DLL" "$plugin_dir/Binaries/Win64Arm64/BqLog.dll"
copy_file "$WIN_ARM64_PDB" "$plugin_dir/Binaries/Win64Arm64/BqLog.pdb"
copy_directory_all "$LINUX_X64_SO" "$thirdparty_root/Linux/x86_64/lib"
copy_directory_all "$LINUX_X64_SO" "$plugin_dir/Binaries/Linux"
copy_directory_all "$LINUX_ARM64_SO" "$thirdparty_root/Linux/arm64/lib"
copy_directory_all "$LINUX_ARM64_SO" "$plugin_dir/Binaries/LinuxAArch64"
copy_directory_all "$MAC_DYLIB" "$thirdparty_root/Mac/lib"
rm -rf "$thirdparty_root/Mac/lib/"*.framework
copy_directory_all "$MAC_DYLIB" "$plugin_dir/Binaries/Mac"
rm -rf "$plugin_dir/Binaries/Mac/"*.framework
copy_dir "$IOS_XCFRAMEWORK" "$thirdparty_root/IOS/BqLog.xcframework"
copy_dir "$IOS_XCFRAMEWORK" "$plugin_dir/Binaries/IOS/BqLog.xcframework"
rm -f "$plugin_dir/Binaries/Android/bqlog.aar"
copy_file "$ANDROID_AAR" "$plugin_dir/Binaries/Android/bqlog.aar"
for abi in "${!ANDROID_SO[@]}"; do
copy_file_follow "${ANDROID_SO[$abi]}" "$thirdparty_root/Android/$abi/libBqLog.so"
done
find "$plugin_dir" -name ".gitkeep" -delete
zip_name="bqlog-unreal-plugin-prebuilt-${VERSION}-${ue}.zip"
rm -f "$DIST_DIR/$zip_name" "$DIST_DIR/$zip_name.sha256"
(cd "$stage_dir" && zip -qry "$DIST_DIR/$zip_name" "BqLog")
(cd "$DIST_DIR" && sha256sum "$zip_name" | tr '[:upper:]' '[:lower:]' > "$zip_name.sha256")
done
echo "Packaged Unreal plugin archives:"
find "$DIST_DIR" -type f -printf '%P\n' | sort
- name: Reorganize dist for upload
shell: bash
env:
VERSION: ${{ needs.extract_version.outputs.version }}
run: |
set -euo pipefail
DIST="${{ github.workspace }}/dist"
# Generic UE4/UE5 prebuilt zip (for GitHub Release). EngineVersion is
# the two-segment value "4.27"/"5.8" baked in by the Stage step — that
# fails FEngineVersion::Parse, which makes IsPluginCompatible bail out
# to true, so the plugin loads without a "load anyway?" dialog on any
# supported engine version.
for ue in ue4 ue5; do
mkdir -p "$DIST/$ue"
(cd "$DIST/$ue" && unzip -q "$DIST/bqlog-unreal-plugin-prebuilt-${VERSION}-${ue}.zip")
done
- name: Upload UE4 Prebuilt Artifact
uses: actions/upload-artifact@v6
with:
name: unreal_plugin_prebuilt_ue4_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/ue4
- name: Upload UE5 Prebuilt Artifact
uses: actions/upload-artifact@v6
with:
name: unreal_plugin_prebuilt_ue5_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/ue5
# Unity & Tuanjie packages (shared logic via matrix)
engine_package_build:
runs-on: ubuntu-22.04
strategy:
matrix:
engine: [unity, tuanjie]
include:
- engine: unity
has_ohos: false
- engine: tuanjie
has_ohos: true
needs:
- extract_version
- build_linux_android
- build_ios_lib
- build_ubuntu_x86_64_lib_Clang
- build_mac_lib
- build_windows_x86_64_lib_MSVC
- build_harmony_os_on_mac
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download all artifacts from native builds
uses: actions/download-artifact@v8
with:
path: downloaded_artifacts
- name: Prepare tools
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install -y unzip
sudo apt-get install -y nodejs npm
- name: Copy from unity folder to tuanjie folder
if: matrix.engine == 'tuanjie'
run: |
set -euo pipefail
rm -rf plugin/tuanjie
cp -R plugin/unity plugin/tuanjie
- name: update package.json
shell: bash
env:
VERSION: ${{ needs.extract_version.outputs.version }}
ENGINE: ${{ matrix.engine }}
run: |
set -euo pipefail
PLUGIN_DIR="plugin/${ENGINE}"
# Update package.json (ensure VERSION is visible to node)
if [[ -f "${PLUGIN_DIR}/package.json" ]]; then
node -e "const fs=require('fs');const p='${PLUGIN_DIR}/package.json';const j=JSON.parse(fs.readFileSync(p,'utf8'));if(!j.name)throw new Error('package.json missing name');if(!process.env.VERSION)throw new Error('VERSION env missing');j.version=process.env.VERSION;fs.writeFileSync(p,JSON.stringify(j,null,2));console.log('Updated',p,'to version',j.version);"
else
echo "${PLUGIN_DIR}/package.json not found!" >&2
exit 1
fi
# Sanity check: ensure version exists after write
if ! grep -q '"version"' "${PLUGIN_DIR}/package.json"; then
echo "ERROR: version field missing in ${PLUGIN_DIR}/package.json after update" >&2
cat "${PLUGIN_DIR}/package.json"
exit 1
fi
echo 'Sanity check package.json:'
cat "${PLUGIN_DIR}/package.json"
- name: List all archives
shell: bash
run: |
set -euo pipefail
ls -l downloaded_artifacts
- name: Stage libs into plugin tree
shell: bash
env:
VERSION: ${{ needs.extract_version.outputs.version }}
ENGINE: ${{ matrix.engine }}
HAS_OHOS: ${{ matrix.has_ohos }}
run: |
set -euo pipefail
: "${VERSION:?VERSION env not set}"
BASE="downloaded_artifacts"
PLUGIN_DIR="plugin/${ENGINE}"
# Target folders
ANDROID_DIR="${PLUGIN_DIR}/Runtime/Plugins/Android"
OHOS_DIR="${PLUGIN_DIR}/Runtime/Plugins/OpenHarmony"
WIN_X64_DIR="${PLUGIN_DIR}/Runtime/Plugins/Windows/x86_64"
LINUX_X64_DIR="${PLUGIN_DIR}/Runtime/Plugins/Linux/x86_64"
IOS_DIR="${PLUGIN_DIR}/Runtime/Plugins/iOS"
MACOS_DIR="${PLUGIN_DIR}/Runtime/Plugins/macOS"
mkdir -p "$ANDROID_DIR" "$WIN_X64_DIR" "$LINUX_X64_DIR" "$IOS_DIR" "$MACOS_DIR"
# 对于不支持鸿蒙的引擎,删除 OpenHarmony 目录及其 meta 文件
if [[ "$HAS_OHOS" != "true" ]]; then
rm -rf "$OHOS_DIR"
rm -rf "${OHOS_DIR}.meta"
fi
copy_one() {
local src="$1"
local dst="$2"
echo "Copy: $src -> $dst/"
mkdir -p "$dst"
cp -a "$src" "$dst/"
}
# Android (.aar) -> rename to bqlog.aar
mapfile -t android_aar < <(find "$BASE" -type f -path "*/android_libs_${VERSION}/*/dynamic_lib/*bqlog-release.aar" | sort)
if (( ${#android_aar[@]} )); then
echo "Copy: ${android_aar[0]} -> $ANDROID_DIR/bqlog.aar"
cp -f "${android_aar[0]}" "$ANDROID_DIR/bqlog.aar"
else
echo "WARN: Android AAR not found for version ${VERSION}"
exit 1
fi
# HarmonyOS (.har) -> rename to bqlog.har (仅团结引擎)
if [[ "$HAS_OHOS" == "true" ]]; then
mapfile -t ohos_aar < <(find "$BASE" -type f -path "*/harmony_os_libs_${VERSION}/*/dynamic_lib/bqlog.har" | sort)
if (( ${#ohos_aar[@]} )); then
mkdir -p "$OHOS_DIR"
echo "Copy: ${ohos_aar[0]} -> $OHOS_DIR/bqlog.har"
cp -f "${ohos_aar[0]}" "$OHOS_DIR/bqlog.har"
else
echo "WARN: HarmonyOS HAR not found for version ${VERSION}"
exit 1
fi
fi
# Windows x86_64 (BqLog.dll + optional BqLog.pdb + optional BqLog.lib)
mapfile -t win_dll < <(find "$BASE" -type f -path "*/windows_x86_64_libs_${VERSION}/*/dynamic_lib/lib/RelWithDebInfo/BqLog.dll" | sort)
if (( ${#win_dll[@]} )); then
dll="${win_dll[0]}"
win_dir="$(dirname "$dll")"
mkdir -p "$WIN_X64_DIR"
echo "Copy: $dll -> $WIN_X64_DIR/"
cp -f "$dll" "$WIN_X64_DIR/"
if [[ -f "$win_dir/BqLog.pdb" ]]; then
echo "Copy: $win_dir/BqLog.pdb -> $WIN_X64_DIR/"
cp -f "$win_dir/BqLog.pdb" "$WIN_X64_DIR/"
fi
else
echo "WARN: Windows x86_64 DLL not found for version ${VERSION}"
exit 1
fi
# Linux x86_64 (libBqLog.so) - use exact versioned real .so (.so.${VERSION}) and copy as libBqLog.so
mapfile -t linux_real_so < <(find "$BASE" -type f -path "*/linux_x86_64_libs_${VERSION}/*/dynamic_lib/lib/RelWithDebInfo/libBqLog.so.${VERSION}" | sort)
if (( ${#linux_real_so[@]} )); then
REAL_SO="${linux_real_so[0]}"
else
# Fallback to unversioned .so if versioned one not found
mapfile -t linux_real_so < <(find "$BASE" -type f -path "*/linux_x86_64_libs_${VERSION}/*/dynamic_lib/lib/RelWithDebInfo/libBqLog.so" | sort)
if (( ${#linux_real_so[@]} )); then
REAL_SO="${linux_real_so[0]}"
else
echo "ERROR: Expected libBqLog.so for Linux x86_64 not found" >&2
exit 1
fi
fi
echo "Copy (real .so): $REAL_SO -> $LINUX_X64_DIR/libBqLog.so"
mkdir -p "$LINUX_X64_DIR"
# -L to dereference symlink if any; final name must be libBqLog.so
cp -Lf "$REAL_SO" "$LINUX_X64_DIR/libBqLog.so"
# iOS (BqLog.xcframework)
mapfile -t ios_fw < <(find "$BASE" -type d -path "*/ios_libs_${VERSION}/*/dynamic_lib/lib/RelWithDebInfo/BqLog.xcframework" | sort)
if (( ${#ios_fw[@]} )); then
copy_one "${ios_fw[0]}" "$IOS_DIR"
else
echo "WARN: iOS framework not found for version ${VERSION}"
exit 1
fi
# macOS universal (libBqLog.dylib) - prefer exact versioned real .dylib (libBqLog.${VERSION}.dylib) and copy as libBqLog.dylib
mapfile -t macos_real_dylib < <(find "$BASE" -type f -path "*/macos_universal_binary_libs_${VERSION}/*/dynamic_lib/lib/RelWithDebInfo/libBqLog.${VERSION}.dylib" | sort)
if (( ${#macos_real_dylib[@]} )); then
REAL_DYLIB="${macos_real_dylib[0]}"
else
# Fallback to unversioned .dylib if versioned one not found
mapfile -t macos_real_dylib < <(find "$BASE" -type f -path "*/macos_universal_binary_libs_${VERSION}/*/dynamic_lib/lib/RelWithDebInfo/libBqLog.dylib" | sort)
if (( ${#macos_real_dylib[@]} )); then
REAL_DYLIB="${macos_real_dylib[0]}"
else
echo "ERROR: Expected libBqLog.dylib for macOS not found" >&2
exit 1
fi
fi
echo "Copy (real .dylib): $REAL_DYLIB -> $MACOS_DIR/libBqLog.dylib"
mkdir -p "$MACOS_DIR"
# -L to dereference symlink if any; final name must be libBqLog.dylib
cp -Lf "$REAL_DYLIB" "$MACOS_DIR/libBqLog.dylib"
echo "Staged files/directories (Plugins subtree, up to depth 6):"
/usr/bin/find "${PLUGIN_DIR}/Runtime/Plugins" -maxdepth 6 -print | sort
- name: Copy source codes
env:
ENGINE: ${{ matrix.engine }}
run: |
set -euo pipefail
PLUGIN_DIR="plugin/${ENGINE}"
# Copy the contents of wrapper/csharp/src into Runtime/src (avoid nesting src/src)
mkdir -p "${PLUGIN_DIR}/Runtime/src"
cp -r wrapper/csharp/src/. "${PLUGIN_DIR}/Runtime/src/"
- name: Build Package
env:
ENGINE: ${{ matrix.engine }}
run: |
set -euo pipefail
PLUGIN_DIR="plugin/${ENGINE}"
echo "Verifying package.json before pack:"
test -f "${PLUGIN_DIR}/package.json" && cat "${PLUGIN_DIR}/package.json" || (echo "package.json missing"; exit 1)
echo "::group::npm pack --dry-run"
cd "${PLUGIN_DIR}"
npm pack --dry-run || true
echo "::endgroup::"
mkdir -p ../../dist/plugins/${ENGINE}
npm pack --pack-destination ../../dist/plugins/${ENGINE}
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: ${{ matrix.engine }}_package_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist
#########################################################Python Wrapper Build####################################################
build_python_wrapper:
name: python_build_(${{ matrix.name }})
runs-on: ${{ matrix.runner }}
needs: extract_version
strategy:
fail-fast: false
matrix:
include:
- name: macos_universal
runner: macos-latest
build_cmd: |
chmod +x build/wrapper/python/build_all_and_pack.sh
bash build/wrapper/python/build_all_and_pack.sh
- name: linux_x86_64
runner: ubuntu-22.04
build_cmd: |
chmod +x build/wrapper/python/build_all_and_pack.sh
bash build/wrapper/python/build_all_and_pack.sh
- name: linux_arm64
runner: ubuntu-22.04-arm
build_cmd: |
chmod +x build/wrapper/python/build_all_and_pack.sh
bash build/wrapper/python/build_all_and_pack.sh
- name: windows_x86_64
runner: windows-2022
build_cmd: build\wrapper\python\build_all_and_pack.bat
- name: windows_arm64
runner: windows-11-arm
build_cmd: build\wrapper\python\build_all_and_pack.bat
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Build Python Wrapper
env:
PY_PYTHON: '3.11'
run: ${{ matrix.build_cmd }}
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: python_wrapper_${{ matrix.name }}_${{ needs.extract_version.outputs.version }}
path: install/wrapper_python/
#FreeBSD Python Wrapper (requires VM, cannot use matrix)
build_python_wrapper_freebsd_x86_64:
name: python_build_(freebsd_x86_64)
runs-on: ubuntu-22.04
needs: extract_version
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Download FreeBSD dep snapshot (host)
run: sh build/ci/ghcr_anonymous_pull.sh ghcr.io/pippocao/bqlog-ci-deps/bsd:freebsd-13-amd64 deps-freebsd-13-amd64.tar.gz
- name: Run in FreeBSD(Attempt 1)
continue-on-error: true
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash python3
PYVER=$(python3 -c 'import sys; print(f"{sys.version_info[0]}{sys.version_info[1]}")')
pkg -o REPOS_DIR=/tmp/repoconf install -y "py${PYVER}-pip" "py${PYVER}-setuptools" "py${PYVER}-wheel" || { python3 -m ensurepip --upgrade && python3 -m pip install --upgrade pip setuptools wheel; }
run: |
touch BUILD_STARTED
set -e -x
chmod +x build/wrapper/python/build_all_and_pack_unix.sh
bash build/wrapper/python/build_all_and_pack_unix.sh
touch BUILD_SUCCESS
- name: Check Retry
id: CheckRetry
run: |
if [ ! -f "BUILD_STARTED" ]; then
echo "retry=true" >> $GITHUB_OUTPUT
elif [ ! -f "BUILD_SUCCESS" ]; then
echo "::error::Python build script execution failed! (Not retrying)"
exit 1
fi
- name: Cleanup Before Retry
if: steps.CheckRetry.outputs.retry == 'true'
run: |
set +e
DOMAINS="$(sudo virsh list --all --name 2>/dev/null | grep -v "^$" || true)"
if [ -z "$DOMAINS" ]; then
echo "No lingering domains found."
else
for DOMAIN in $DOMAINS; do
sudo virsh destroy "$DOMAIN" 2>/dev/null || true
sudo virsh undefine "$DOMAIN" --nvram 2>/dev/null \
|| sudo virsh undefine "$DOMAIN" 2>/dev/null || true
done
fi
find . -name "*.qcow2" -delete 2>/dev/null || true
sudo find /home/runner/work/_actions/vmactions -name "*.qcow2" -delete 2>/dev/null || true
sudo rm -f /var/lib/libvirt/dnsmasq/*.leases 2>/dev/null || true
sleep 5
echo "Cleanup complete."
- name: Run in FreeBSD(Attempt 2)
if: steps.CheckRetry.outputs.retry == 'true'
uses: vmactions/freebsd-vm@v1
with:
release: "13.2"
usesh: true
mem: 8192
prepare: |
mkdir -p /deps && tar xzf "$GITHUB_WORKSPACE/deps-freebsd-13-amd64.tar.gz" -C /deps
export IGNORE_OSVERSION=yes
pkg repo /deps
mkdir -p /tmp/repoconf && echo 'local: { url: "file:///deps", enabled: true }' > /tmp/repoconf/local.conf
pkg -o REPOS_DIR=/tmp/repoconf update -f
pkg -o REPOS_DIR=/tmp/repoconf install -y llvm cmake bash python3
PYVER=$(python3 -c 'import sys; print(f"{sys.version_info[0]}{sys.version_info[1]}")')
pkg -o REPOS_DIR=/tmp/repoconf install -y "py${PYVER}-pip" "py${PYVER}-setuptools" "py${PYVER}-wheel" || { python3 -m ensurepip --upgrade && python3 -m pip install --upgrade pip setuptools wheel; }
run: |
touch BUILD_STARTED
set -e -x
chmod +x build/wrapper/python/build_all_and_pack_unix.sh
bash build/wrapper/python/build_all_and_pack_unix.sh
touch BUILD_SUCCESS
- name: Upload Artifacts
uses: actions/upload-artifact@v6
with:
name: python_wrapper_freebsd_x86_64_${{ needs.extract_version.outputs.version }}
path: install/wrapper_python/
####################################################### Java Fat JAR (Maven Central) ########################################
java_maven_fat_jar_collect:
runs-on: ubuntu-22.04
needs:
- extract_version
- build_windows_java11_wrapper
- build_windows_x86_64_lib_MSVC
- build_windows_arm64_lib_MSVC
- build_ubuntu_x86_64_lib_Clang
- build_ubuntu_arm64_lib_Clang
- build_debian_x86_lib_Clang
- build_mac_lib
- build_freebsd_x86_64_libs_Clang
- build_freebsd_arm64_libs_Clang
- build_openbsd_x86_64_libs_Clang
- build_openbsd_arm64_libs_Clang
- build_netbsd_x86_64_libs_Clang
- build_netbsd_arm64_libs_Clang
- build_dragonflybsd_x86_64_libs_Clang
- build_solaris_x86_64_libs_GCC
- build_omnios_x86_64_libs_gcc
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Java 11
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'temurin'
- name: Download all needed artifacts
uses: actions/download-artifact@v8
with:
path: downloaded_artifacts
- name: List downloaded artifacts
run: ls -l downloaded_artifacts
- name: Install tools
run: |
sudo apt-get update -qq
sudo apt-get install -y unzip zip
- name: Stage natives and inject into fat JAR
shell: bash
env:
VERSION: ${{ needs.extract_version.outputs.version }}
run: |
set -euo pipefail
: "${VERSION:?VERSION env not set}"
BASE="downloaded_artifacts"
NATIVES_STAGE="$(pwd)/fat_jar_natives"
# ── helpers ─────────────────────────────────────────────────────
find_lib() {
# find_lib <artifact_base_dir> <filename> [preferred_build_type]
local base="$1" name="$2" prefer="${3:-RelWithDebInfo}"
local result
result=$(find "$base" -type f -name "$name" 2>/dev/null | grep "$prefer" | head -n1 || true)
[[ -z "$result" ]] && result=$(find "$base" -type f -name "$name" 2>/dev/null | head -n1 || true)
echo "$result"
}
copy_native() {
local src="$1" dst_dir="$2"
if [[ -f "$src" ]]; then
mkdir -p "$dst_dir"
cp -Lf "$src" "$dst_dir/"
echo " staged: $(basename "$src") → $dst_dir/"
else
echo " WARN: not found: $src" >&2
fi
}
# ── locate JARs from java_wrapper artifact ───────────────────────
JAVA_BASE="$BASE/java_wrapper_${VERSION}"
BINARY_JAR=$(find "$JAVA_BASE" -type f -name "BqLogWrapper_Java-*.jar" \
! -name "*sources*" ! -name "*javadoc*" | head -n1 || true)
SOURCES_JAR=$(find "$JAVA_BASE" -type f -name "*-sources.jar" | head -n1 || true)
JAVADOC_JAR=$(find "$JAVA_BASE" -type f -name "*-javadoc.jar" | head -n1 || true)
for v in BINARY_JAR SOURCES_JAR JAVADOC_JAR; do
eval "p=\$$v"
if [[ -z "$p" ]]; then
echo "ERROR: $v not found under $JAVA_BASE" >&2; exit 1
fi
echo "Found $v: $p"
done
# ── locate native libraries ──────────────────────────────────────
WIN_X64_DLL=$(find_lib "$BASE/windows_x86_64_libs_${VERSION}" "BqLog.dll")
WIN_ARM64_DLL=$(find_lib "$BASE/windows_arm64_libs_${VERSION}" "BqLog.dll")
LINUX_X64_SO=$(find_lib "$BASE/linux_x86_64_libs_${VERSION}" "libBqLog.so")
LINUX_ARM64_SO=$(find_lib "$BASE/linux_arm64_libs_${VERSION}" "libBqLog.so")
LINUX_X86_SO=$(find_lib "$BASE/linux_x86_libs_${VERSION}" "libBqLog.so")
MAC_DYLIB=$(find_lib "$BASE/macos_universal_binary_libs_${VERSION}" "libBqLog.dylib")
FREEBSD_X64=$(find_lib "$BASE/freebsd_x86_64_libs_${VERSION}" "libBqLog.so")
FREEBSD_ARM64=$(find_lib "$BASE/freebsd_arm64_libs_${VERSION}" "libBqLog.so")
OPENBSD_X64=$(find_lib "$BASE/openbsd_x86_64_libs_${VERSION}" "libBqLog.so")
OPENBSD_ARM64=$(find_lib "$BASE/openbsd_arm64_libs_${VERSION}" "libBqLog.so")
NETBSD_X64=$(find_lib "$BASE/netbsd_x86_64_libs_${VERSION}" "libBqLog.so")
NETBSD_ARM64=$(find_lib "$BASE/netbsd_arm64_libs_${VERSION}" "libBqLog.so")
DRAGONFLY_X64=$(find_lib "$BASE/dragonflybsd_x86_64_libs_${VERSION}" "libBqLog.so")
SOLARIS_X64=$(find_lib "$BASE/solaris_x86_64_libs_${VERSION}" "libBqLog.so")
OMNIOS_X64=$(find_lib "$BASE/omnios_x86_64_libs_${VERSION}" "libBqLog.so")
# Mandatory platforms — fail fast if missing
for v in WIN_X64_DLL WIN_ARM64_DLL LINUX_X64_SO LINUX_ARM64_SO MAC_DYLIB; do
eval "p=\$$v"
[[ -z "$p" ]] && { echo "ERROR: $v not found" >&2; exit 1; }
done
# ── copy into staging directory ──────────────────────────────────
mkdir -p "$NATIVES_STAGE"
copy_native "$WIN_X64_DLL" "$NATIVES_STAGE/windows-x86_64"
copy_native "$WIN_ARM64_DLL" "$NATIVES_STAGE/windows-arm64"
copy_native "$LINUX_X64_SO" "$NATIVES_STAGE/linux-x86_64"
copy_native "$LINUX_ARM64_SO" "$NATIVES_STAGE/linux-arm64"
[[ -n "$LINUX_X86_SO" ]] && copy_native "$LINUX_X86_SO" "$NATIVES_STAGE/linux-x86"
# macOS universal binary covers both archs
copy_native "$MAC_DYLIB" "$NATIVES_STAGE/macos-x86_64"
copy_native "$MAC_DYLIB" "$NATIVES_STAGE/macos-arm64"
[[ -n "$FREEBSD_X64" ]] && copy_native "$FREEBSD_X64" "$NATIVES_STAGE/freebsd-x86_64"
[[ -n "$FREEBSD_ARM64" ]] && copy_native "$FREEBSD_ARM64" "$NATIVES_STAGE/freebsd-arm64"
[[ -n "$OPENBSD_X64" ]] && copy_native "$OPENBSD_X64" "$NATIVES_STAGE/openbsd-x86_64"
[[ -n "$OPENBSD_ARM64" ]] && copy_native "$OPENBSD_ARM64" "$NATIVES_STAGE/openbsd-arm64"
[[ -n "$NETBSD_X64" ]] && copy_native "$NETBSD_X64" "$NATIVES_STAGE/netbsd-x86_64"
[[ -n "$NETBSD_ARM64" ]] && copy_native "$NETBSD_ARM64" "$NATIVES_STAGE/netbsd-arm64"
[[ -n "$DRAGONFLY_X64" ]] && copy_native "$DRAGONFLY_X64" "$NATIVES_STAGE/dragonfly-x86_64"
# solaris and omnios both map to sunos-x86_64; omnios written last (either is fine)
[[ -n "$SOLARIS_X64" ]] && copy_native "$SOLARIS_X64" "$NATIVES_STAGE/sunos-x86_64"
[[ -n "$OMNIOS_X64" ]] && copy_native "$OMNIOS_X64" "$NATIVES_STAGE/sunos-x86_64"
echo "Staged native layout:"
find "$NATIVES_STAGE" -type f | sort
# ── build a temp inject tree: natives/<target>/<file> ────────────
TMP_INJECT="$(mktemp -d)"
while IFS= read -r f; do
rel="${f#$NATIVES_STAGE/}" # e.g. linux-x86_64/libBqLog.so
dst="$TMP_INJECT/natives/$rel"
mkdir -p "$(dirname "$dst")"
cp -Lf "$f" "$dst"
done < <(find "$NATIVES_STAGE" -type f)
# ── copy binary JAR and inject natives/ ──────────────────────────
FAT_JAR="$(pwd)/BqLogWrapper_Java-${VERSION}.jar"
cp -f "$BINARY_JAR" "$FAT_JAR"
pushd "$TMP_INJECT" >/dev/null
jar uf "$FAT_JAR" natives
popd >/dev/null
rm -rf "$TMP_INJECT"
echo "Fat JAR natives/ layout:"
jar tf "$FAT_JAR" | grep "^natives/" | sort
# ── collect all three JARs into dist ─────────────────────────────
mkdir -p dist/maven/java
cp -f "$FAT_JAR" "dist/maven/java/BqLogWrapper_Java-${VERSION}.jar"
cp -f "$SOURCES_JAR" "dist/maven/java/BqLogWrapper_Java-${VERSION}-sources.jar"
cp -f "$JAVADOC_JAR" "dist/maven/java/BqLogWrapper_Java-${VERSION}-javadoc.jar"
echo "dist/maven/java:"
ls -lh dist/maven/java/
- name: Upload fat JAR artifact
uses: actions/upload-artifact@v6
with:
name: java_maven_fat_jar_${{ needs.extract_version.outputs.version }}
path: ${{ github.workspace }}/dist/maven/java