Build #267
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| #PS5 | |
| build_ps5_lib: | |
| runs-on: ubuntu-22.04 | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/debian:ps5-sdk | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Build for PS5 | |
| run: | | |
| cd build/lib/ps5 | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ps5_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| #Switch | |
| build_switch_lib: | |
| runs-on: ubuntu-22.04 | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/debian:switch-devkita64 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Build for Switch | |
| run: | | |
| cd build/lib/switch | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: switch_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| #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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/openbsd-7.7-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-openbsd-7.7-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/openbsd-7.7-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-openbsd-7.7-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/openbsd-7.7-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-openbsd-7.7-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/openbsd-7.7-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-openbsd-7.7-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/dragonflybsd-6.4.2-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-dragonflybsd-6.4.2-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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 | |
| 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 | |
| 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/dragonflybsd-6.4.2-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-dragonflybsd-6.4.2-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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 | |
| 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 | |
| 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/dragonflybsd-6.4.2-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-dragonflybsd-6.4.2-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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 | |
| 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 | |
| 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/dragonflybsd-6.4.2-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-dragonflybsd-6.4.2-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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 | |
| 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 | |
| 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/openbsd-7.7-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-openbsd-7.7-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/openbsd-7.7-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-openbsd-7.7-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/dragonflybsd-6.4.2-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-dragonflybsd-6.4.2-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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 | |
| 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 | |
| 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/dragonflybsd-6.4.2-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-dragonflybsd-6.4.2-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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 | |
| 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 | |
| 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/netbsd-10.1-aarch64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-netbsd-10.1-aarch64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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: | | |
| T=$(curl -fsSL "https://ghcr.io/token?scope=repository:pippocao/bqlog-ci-deps/bsd:pull" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p') | |
| M=$(curl -fsSL -H "Authorization: Bearer $T" -H "Accept: application/vnd.oci.image.manifest.v1+json" "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/manifests/freebsd-13-amd64") | |
| D=$(echo "$M" | tr ',' '\n' | sed -n 's/.*"digest":"\(sha256:[^"]*\)".*/\1/p' | tail -n1) | |
| curl -fsSL -H "Authorization: Bearer $T" -o deps-freebsd-13-amd64.tar.gz "https://ghcr.io/v2/pippocao/bqlog-ci-deps/bsd/blobs/$D" | |
| - 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 |