Build #155
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: | |
| permissions: | |
| contents: write | |
| jobs: | |
| #########################################################Extract Version###################################################### | |
| extract_version: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| version: ${{ steps.extract.outputs.version }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Windows | |
| run: | | |
| cd build\lib\win64 | |
| .\build_all_and_pack.bat native msvc YES NO | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_windows_x86_64_lib_Clang: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Windows | |
| run: | | |
| cd build\lib\win64 | |
| .\build_all_and_pack.bat native clang YES NO | |
| build_windows_x86_64_lib_MinGW: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java (JDK 11) | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows_mingw_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_windows_x86_64_tools: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build Tools | |
| run: | | |
| cd build\tools\win64 | |
| .\build_all_and_pack.bat | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows_x86_64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_windows_arm64_lib_MSVC: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Windows | |
| run: | | |
| cd build\lib\win64 | |
| .\build_all_and_pack.bat arm64 msvc YES NO | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows_arm64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_windows_arm64_lib_Clang: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Windows | |
| run: | | |
| cd build\lib\win64 | |
| .\build_all_and_pack.bat arm64 clang YES NO | |
| build_windows_arm64_lib_MinGW: | |
| runs-on: windows-11-arm | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java (JDK 21) | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'adopt' | |
| - 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows_mingw_arm64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_windows_arm64_tools: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build Tools | |
| run: | | |
| cd build\tools\win64 | |
| .\build_all_and_pack.bat arm64 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows_arm64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| #Android | |
| build_windows_android: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'adopt' | |
| - name: Set up Android SDK (with NDK) | |
| id: setup-android | |
| uses: android-actions/setup-android@v3 | |
| - 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@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'adopt' | |
| - name: Set up Android SDK (with NDK) | |
| id: setup-android | |
| uses: android-actions/setup-android@v3 | |
| - 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'adopt' | |
| - name: Set up Android SDK (with NDK) | |
| id: setup-android | |
| uses: android-actions/setup-android@v3 | |
| - 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@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Linux | |
| run: | | |
| cd build/lib/linux | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh native clang YES NO | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_ubuntu_x86_64_lib_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Linux | |
| run: | | |
| cd build/lib/linux | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh native gcc YES NO | |
| build_ubuntu_x86_64_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - 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@v4 | |
| with: | |
| name: linux_x86_64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_ubuntu_x86_64_tools_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - 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-24.04-arm | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Linux | |
| run: | | |
| cd build/lib/linux | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh native clang YES NO | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux_arm64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_ubuntu_arm64_lib_GCC: | |
| runs-on: ubuntu-24.04-arm | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Linux | |
| run: | | |
| cd build/lib/linux | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh native gcc YES NO | |
| build_ubuntu_arm64_tools_Clang: | |
| runs-on: ubuntu-24.04-arm | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - 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@v4 | |
| with: | |
| name: linux_arm64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_ubuntu_arm64_tools_GCC: | |
| runs-on: ubuntu-24.04-arm | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - 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-latest | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/i386_debian:latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux_x86_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_debian_x86_lib_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/i386_debian:latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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 | |
| build_debian_x86_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/i386_debian:latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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@v4 | |
| with: | |
| name: linux_x86_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_debian_x86_tools_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/i386_debian:latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Enable UTF-8 locale | |
| run: | | |
| apt-get update | |
| apt-get install -y locales | |
| sed -i 's/# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen | |
| sed -i 's/# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen | |
| locale-gen | |
| update-locale LANG=en_US.UTF-8 | |
| echo "LANG=en_US.UTF-8" >> $GITHUB_ENV | |
| echo "LC_ALL=en_US.UTF-8" >> $GITHUB_ENV | |
| echo "LANGUAGE=en_US:en" >> $GITHUB_ENV | |
| locale | |
| - name: Install necessary tools (gcc and clang) | |
| run: | | |
| apt-get update | |
| apt-get install -y gcc clang g++ make cmake gdb | |
| apt-get install -y software-properties-common | |
| apt-get update | |
| apt-get install -y openjdk-17-jdk | |
| apt-get install -y openssh-client | |
| - name: Set up Java | |
| run: | | |
| export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386 | |
| echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-i386" >> $GITHUB_ENV | |
| - name: Build for Debian 32 | |
| run: | | |
| cd build/tools/linux | |
| chmod +x category_log_generator/*.sh | |
| chmod +x log_decoder/*.sh | |
| chmod +x *.sh | |
| ./build_all_and_pack_gcc.sh | |
| #Mac | |
| build_mac_lib: | |
| runs-on: macos-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Build for Mac | |
| run: | | |
| cd build/lib/mac | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh YES NO | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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@v4 | |
| - 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@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: freebsd_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_freebsd_x86_64_libs_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| build_freebsd_x86_64_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: freebsd_x86_64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_freebsd_x86_64_tools_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| #freebsd_arm64 | |
| build_freebsd_arm64_libs_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: freebsd_arm64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_freebsd_arm64_libs_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| build_freebsd_arm64_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: freebsd_arm64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_freebsd_arm64_tools_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| #openbsd_x86_64 | |
| build_openbsd_x86_64_libs_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OpenBSD | |
| id: RunInOpenBSD | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: openbsd_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_openbsd_x86_64_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OpenBSD | |
| id: RunInOpenBSD | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OpenBSD | |
| id: RunInOpenBSD | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: openbsd_arm64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_openbsd_arm64_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OpenBSD | |
| id: RunInOpenBSD | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in Solaris (GCC) | |
| id: RunInSolarisGcc | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: solaris_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_solaris_x86_64_tools_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in Solaris (GCC) | |
| id: RunInSolarisToolsGcc | |
| 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in DragonFlyBSD | |
| id: RunInDragonFlyBSDLibs | |
| uses: vmactions/dragonflybsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dragonflybsd_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_dragonflybsd_x86_64_libs_gcc: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in DragonFlyBSD | |
| id: RunInDragonFlyBSDLibs | |
| uses: vmactions/dragonflybsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| build_dragonflybsd_x86_64_tools_clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in DragonFlyBSD | |
| id: RunInDragonFlyBSDTools | |
| uses: vmactions/dragonflybsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dragonflybsd_x86_64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_dragonflybsd_x86_64_tools_gcc: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in DragonFlyBSD | |
| id: RunInDragonFlyBSDTools | |
| uses: vmactions/dragonflybsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| # OmniOS | |
| build_omnios_x86_64_libs_gcc: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OmniOS (GCC only) | |
| id: RunInOmniOSLibs | |
| uses: vmactions/omnios-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| set -e | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: omnios_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_omnios_x86_64_tools_gcc: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OmniOS (GCC only) | |
| id: RunInOmniOSTools | |
| uses: vmactions/omnios-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| set -e | |
| 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (Clang, x86_64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: netbsd_x86_64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_netbsd_x86_64_libs_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (GCC, x86_64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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 | |
| build_netbsd_x86_64_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (Clang, x86_64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: netbsd_x86_64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_netbsd_x86_64_tools_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (GCC, x86_64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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 | |
| # netbsd_arm64 (aarch64) | |
| build_netbsd_arm64_libs_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (Clang, arm64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: netbsd_arm64_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_netbsd_arm64_libs_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (GCC, arm64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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 | |
| build_netbsd_arm64_tools_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (Clang, arm64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: netbsd_arm64_tools_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| build_netbsd_arm64_tools_GCC: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (GCC, arm64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets/xbase.tar.xz" | |
| ;; | |
| aarch64|arm64|evbarm) | |
| # aarch64 | |
| URLS="https://cdn.netbsd.org/pub/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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| 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 | |
| #iOS | |
| build_ios_lib: | |
| runs-on: macos-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Build for Mac | |
| run: | | |
| cd build/lib/ios | |
| chmod +x *.sh | |
| ./build_all_and_pack.sh | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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@v4 | |
| - name: Restore extracted dir cache | |
| id: cache-restore | |
| uses: actions/cache/restore@v4 | |
| 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@v4 | |
| with: | |
| name: harmony_os_libs_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| #Java wrapper | |
| build_windows_java11_wrapper: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Build for Java | |
| run: | | |
| cd build\wrapper\java | |
| .\build_all_and_pack.bat | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: java_wrapper_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| #C# wrapper | |
| build_windows_csharp_wrapper: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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@v4 | |
| with: | |
| name: c#_wrapper_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| #########################################################NodeJS Build#################################################### | |
| #Windows | |
| nodejs_build_windows_x86_64_lib_MSVC: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| nodejs_build_windows_arm64_lib_MSVC: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| #Linux-ubuntu-x86_64 | |
| nodejs_build_ubuntu_x86_64_lib_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| #Linux-ubuntu-arm64 | |
| nodejs_build_ubuntu_arm64_lib_Clang: | |
| runs-on: ubuntu-24.04-arm | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-24.04-arm | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '11' | |
| distribution: 'adopt' | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| #Linux-debian-x86 | |
| nodejs_build_debian_x86_lib_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/i386_debian:latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| container: | |
| image: ghcr.io/pippocao/bqlog/i386_debian:latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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 | |
| #Mac | |
| nodejs_build_mac_lib: | |
| runs-on: macos-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg install -y llvm cmake bash openjdk11 gdb gcc node | |
| pkg install -y npm-node22 || pkg install -y npm-node20 || pkg 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg install -y llvm cmake bash openjdk11 gdb gcc node | |
| pkg install -y npm-node22 || pkg install -y npm-node20 || pkg 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 | |
| nodejs_build_freebsd_arm64_libs_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSDArmClang | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg install -y llvm cmake bash openjdk11 gdb gcc node | |
| pkg install -y npm-node22 || pkg install -y npm-node20 || pkg 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in FreeBSD | |
| id: RunInFreeBSDArmGcc | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg install -y llvm cmake bash openjdk11 gdb gcc node | |
| pkg install -y npm-node22 || pkg install -y npm-node20 || pkg 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 | |
| nodejs_build_openbsd_x86_64_libs_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OpenBSD | |
| id: RunInOpenBSDLibsClang | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg_add cmake bash jdk%11 | |
| pkg_add node || pkg_add node-22.* || pkg_add node-20.* || pkg_add node-18.* | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OpenBSD | |
| id: RunInOpenBSDArmLibsClang | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| arch: aarch64 | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg_add cmake bash jdk%11 | |
| pkg_add node || pkg_add node-22.* || pkg_add node-20.* || pkg_add node-18.* | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in Solaris (GCC) | |
| id: RunInSolarisGccNode | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in OmniOS (GCC only) | |
| id: RunInOmniOSLibsNode | |
| uses: vmactions/omnios-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| set -e | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in DragonFlyBSD | |
| id: RunInDragonFlyBSDLibsClang | |
| uses: vmactions/dragonflybsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in DragonFlyBSD | |
| id: RunInDragonFlyBSDLibsGcc | |
| uses: vmactions/dragonflybsd-vm@v1 | |
| with: | |
| usesh: true | |
| mem: 8192 | |
| prepare: | | |
| pkg 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 | |
| nodejs_build_netbsd_x86_64_libs_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (Clang, x86_64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/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" | |
| ;; | |
| *) | |
| 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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| pkgin -y install nodejs npm || true | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (GCC, x86_64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/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" | |
| ;; | |
| *) | |
| 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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| pkgin -y install nodejs npm || true | |
| 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 | |
| nodejs_build_netbsd_arm64_libs_Clang: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (Clang, arm64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/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" | |
| ;; | |
| *) | |
| 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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| pkgin -y install nodejs npm || true | |
| 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 | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| 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-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run in NetBSD (GCC, arm64) | |
| 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" | |
| /usr/sbin/pkg_add -v pkgin || true | |
| pkgin -y update || true | |
| pkgin -y install cmake gmake bash gdb || true | |
| pkgin -y install clang || true | |
| pkgin -y install gcc12 || pkgin -y install gcc13 || pkgin -y install gcc10 || true | |
| ARCH="$(uname -m)" | |
| URLS="" | |
| case "$ARCH" in | |
| amd64|x86_64) | |
| URLS="https://cdn.netbsd.org/pub/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" | |
| ;; | |
| *) | |
| 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 (tried: $URLS)" >&2 | |
| exit 1 | |
| fi | |
| ls /usr/X11R7/lib/libX11.so.* >/dev/null 2>&1 || { echo "xbase extracted but libX11 missing"; exit 1; } | |
| pkgin -y install openjdk17 || true | |
| pkgin -y install nodejs npm || true | |
| 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 | |
| nodejs_collect_and_stage_prebuilds: | |
| runs-on: ubuntu-latest | |
| 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@v4 | |
| - name: Download all artifacts from native builds | |
| uses: actions/download-artifact@v4 | |
| 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@v4 | |
| with: | |
| name: nodejs_npm_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| - name: Delete intermediate artifacts | |
| uses: geekyeggo/delete-artifact@v5 | |
| with: | |
| name: tmp_node_* | |
| failOnError: false | |
| # Unreal plugin | |
| unreal_plugin_build_on_linux: | |
| runs-on: ubuntu-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: build plugin | |
| run: | | |
| cd build/plugin/unreal | |
| chmod +x *.sh | |
| ./linux_build_all_and_pack.sh | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: unreal_plugin_sources_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| unreal_plugin_build_on_win64: | |
| runs-on: windows-latest | |
| needs: extract_version | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - 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@v4 | |
| - name: build plugin | |
| run: | | |
| cd build/plugin/unreal | |
| chmod +x *.sh | |
| ./mac_build_all_and_pack.sh | |
| unreal_plugin_pack_prebuilt: | |
| runs-on: ubuntu-latest | |
| 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@v4 | |
| - name: Download native artifacts | |
| uses: actions/download-artifact@v4 | |
| 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" | |
| } | |
| find_android_so() { | |
| local base="$1" | |
| local abi="$2" | |
| local result | |
| result=$(find "$base" -type f -path "*dynamic_lib*/*${abi}*/libBqLog.so" 2>/dev/null | grep "RelWithDebInfo" | head -n1 || true) | |
| if [[ -z "$result" ]]; then | |
| result=$(find "$base" -type f -path "*dynamic_lib*/*${abi}*/libBqLog.so" 2>/dev/null | head -n1 || true) | |
| 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 "*static_lib*/BqLog.xcframework" -print -quit) | |
| declare -A ANDROID_SO | |
| for abi in armeabi-v7a arm64-v8a x86 x86_64; do | |
| path=$(find_android_so "$ANDROID_BASE" "$abi") | |
| if [[ -z "$path" ]]; then | |
| echo "ERROR: Missing Android libBqLog.so for ABI ${abi}" >&2 | |
| exit 1 | |
| fi | |
| ANDROID_SO[$abi]="$path" | |
| done | |
| ANDROID_AAR=$(find "$ANDROID_BASE" -type f -name "*bqlog*.aar" -print -quit) | |
| if [[ -z "$ANDROID_AAR" ]]; then | |
| echo "ERROR: Missing Android AAR package" >&2 | |
| exit 1 | |
| fi | |
| 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 | |
| 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 | |
| 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") | |
| sha256sum "$DIST_DIR/$zip_name" | tr '[:upper:]' '[:lower:]' > "$DIST_DIR/$zip_name.sha256" | |
| done | |
| echo "Packaged Unreal plugin archives:" | |
| find "$DIST_DIR" -maxdepth 1 -type f -printf '%f\n' | sort | |
| - name: Upload prebuilt Unreal plugin | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: unreal_plugin_prebuilt_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist | |
| # Unity package | |
| unity_package_build: | |
| runs-on: ubuntu-latest | |
| needs: | |
| - extract_version | |
| - build_linux_android | |
| - build_ios_lib | |
| - build_ubuntu_x86_64_lib_Clang | |
| - build_mac_lib | |
| - build_windows_x86_64_lib_MSVC | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Download all artifacts from native builds | |
| uses: actions/download-artifact@v4 | |
| 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: update package.json | |
| shell: bash | |
| env: | |
| VERSION: ${{ needs.extract_version.outputs.version }} | |
| run: | | |
| set -euo pipefail | |
| # Update plugin/unity/package.json (ensure VERSION is visible to node) | |
| if [[ -f plugin/unity/package.json ]]; then | |
| node -e "const fs=require('fs');const p='plugin/unity/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/unity/package.json not found!' >&2 | |
| exit 1 | |
| fi | |
| # Sanity check: ensure version exists after write | |
| if ! grep -q '"version"' plugin/unity/package.json; then | |
| echo 'ERROR: version field missing in plugin/unity/package.json after update' >&2 | |
| cat plugin/unity/package.json | |
| exit 1 | |
| fi | |
| echo 'Sanity check package.json:' | |
| cat plugin/unity/package.json | |
| - name: List all archives | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| ls -l downloaded_artifacts | |
| - name: Stage libs into plugin/unity/Runtime/Plugins | |
| shell: bash | |
| env: | |
| VERSION: ${{ needs.extract_version.outputs.version }} | |
| run: | | |
| set -euo pipefail | |
| : "${VERSION:?VERSION env not set}" | |
| BASE="downloaded_artifacts" | |
| # Target folders | |
| ANDROID_DIR="plugin/unity/Runtime/Plugins/Android" | |
| WIN_X64_DIR="plugin/unity/Runtime/Plugins/Windows/x86_64" | |
| LINUX_X64_DIR="plugin/unity/Runtime/Plugins/Linux/x86_64" | |
| IOS_DIR="plugin/unity/Runtime/Plugins/iOS" | |
| MACOS_DIR="plugin/unity/Runtime/Plugins/macOS" | |
| mkdir -p "$ANDROID_DIR" "$WIN_X64_DIR" "$LINUX_X64_DIR" "$IOS_DIR" "$MACOS_DIR" | |
| 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 | |
| # 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}/*/static_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/unity/Runtime/Plugins -maxdepth 6 -print | sort | |
| - name: Copy source codes | |
| run: | | |
| set -euo pipefail | |
| # Copy the contents of wrapper/csharp/src into Runtime/src (avoid nesting src/src) | |
| mkdir -p plugin/unity/Runtime/src | |
| cp -r wrapper/csharp/src/. plugin/unity/Runtime/src/ | |
| - name: Build Unity Package | |
| run: | | |
| set -euo pipefail | |
| echo "Verifying package.json before pack:" | |
| test -f plugin/unity/package.json && cat plugin/unity/package.json || (echo "package.json missing"; exit 1) | |
| echo "::group::npm pack --dry-run" | |
| cd plugin/unity | |
| npm pack --dry-run || true | |
| echo "::endgroup::" | |
| mkdir -p ../../dist/plugins/unity | |
| npm pack --pack-destination ../../dist/plugins/unity | |
| - name: Upload Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: unity_package_${{ needs.extract_version.outputs.version }} | |
| path: ${{ github.workspace }}/dist |