freebsd #346
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: JQtide | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - main | |
| jobs: | |
| # to run all jobs, enable all | |
| # for selected jobs, disable all and disable the selected needs | |
| all: | |
| #if: false | |
| if: true | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: echo "Runall jobs" | |
| # linux ---------------------------------------------------------------- | |
| jqtlinux: | |
| needs: all | |
| name: JQtide (Linux) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt from source | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| aqtversion: '==3.3.*' | |
| version: 6.10.0 | |
| host: 'linux' | |
| target: 'desktop' | |
| arch: 'linux_gcc_64' | |
| dir: '${{github.workspace}}' | |
| modules: 'all' | |
| - name: Compile JQtide | |
| run: script/makelinux.sh linux '6.10.0' | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-linux.tar.gz,jqt-linux-slim.tar.gz,version.txt" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # macOS ---------------------------------------------------------------- | |
| jqtmacos: | |
| needs: all | |
| name: JQtide (macOS) | |
| runs-on: macos-15-intel | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt from source | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: '6.10.0' | |
| target: 'desktop' | |
| dir: '${{github.workspace}}' | |
| modules: 'all' | |
| aqtversion: '==3.3.*' | |
| - name: Compile JQtide | |
| env: | |
| CC: clang | |
| run: QM=${{github.workspace}}/Qt/6.10.0/macos/bin/qmake script/makemac.sh '6.10.0' mac | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-mac.zip,jqt-mac-slim.zip" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # rpi64arm ------------------------------------------------------------- | |
| jqtrpi64arm: | |
| needs: all | |
| name: JQtide (Linux arm) | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup Environment (Linux arm) | |
| run: | | |
| script/install-rpi.sh | |
| sudo apt-get update -y | |
| sudo apt-cache search qt5 1>&2 | |
| sudo apt-cache search qt6 1>&2 | |
| - name: Install Qt from source | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| aqtversion: '==3.3.*' | |
| version: 6.10.0 | |
| host: 'linux_arm64' | |
| target: 'desktop' | |
| arch: 'linux_gcc_arm64' | |
| dir: '${{github.workspace}}' | |
| modules: 'all' | |
| - name: Compile JQtide | |
| run: script/makelinux.sh raspberry '6.10.0' | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-raspberry.tar.gz,jqt-raspberry-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # rpi64arm ------------------------------------------------------------- | |
| jqtrpi64arm5: | |
| needs: all | |
| name: JQtide (Linux arm) | |
| if: ${{ false }} | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt from distro | |
| run: script/installqt.sh raspberry '5.15.2' | |
| - name: Compile JQtide | |
| run: script/makelinux.sh raspberry '5.15.2' # previous 5.15.2 | |
| # run: QM=${{github.workspace}}/Qt/5.15.2/gcc_64/bin/qmake script/makelinux.sh raspberry '5.15.2' | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-raspberry.tar.gz,jqt-raspberry-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # rpi64 ---------------------------------------------------------------- | |
| jqtrpi64: | |
| needs: all | |
| name: JQtide (Raspberry) | |
| if: ${{ false }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt, Compile JQtide | |
| uses: pguyot/arm-runner-action@v2 | |
| with: | |
| cpu: cortex-a53 | |
| cpu_info: cpuinfo/raspberrypi_zero2_w_arm64 | |
| base_image: raspios_lite_arm64:latest | |
| image_additional_mb: 2048 | |
| copy_artifact_path: output | |
| commands: | | |
| script/installqt.sh raspberry '5.15.2' | |
| export CC=clang | |
| mkdir -p output | |
| script/makelinux.sh raspberry '5.15.2' | |
| find output -type d -exec chmod a+rwx {} \; | |
| find output -type f -exec chmod a+rw {} \; | |
| - name: Transfer JQtide | |
| run: | | |
| ls output/* | |
| mv output/* . | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-raspberry.tar.gz,jqt-raspberry-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # rpi32arm ------------------------------------------------------------- | |
| jqtrpi32arm: | |
| needs: all | |
| name: JQtide (Linux arm32) | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Environment (Linux arm) | |
| run: | | |
| script/install-rpi.sh | |
| sudo apt-get update -y | |
| sudo apt-cache search qt5 1>&2 | |
| sudo apt-cache search qt6 1>&2 | |
| - name: Install Qt from distro | |
| run: script/installqt.sh raspberry-arm32 '6.10.0' | |
| - name: Compile JQtide | |
| env: | |
| CC: arm-linux-gnueabihf-gcc | |
| CXX: arm-linux-gnueabihf-g++ | |
| run: script/makelinux.sh raspberry-arm32 '6.10.0' # previous 5.15.2 | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-raspberry-arm32.tar.gz,jqt-raspberry-arm32-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # rpi32 ---------------------------------------------------------------- | |
| jqtrpi32: | |
| needs: all | |
| name: JQtide (Raspberry-arm32) | |
| if: ${{ false }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt, Compile JQtide | |
| uses: pguyot/arm-runner-action@v2 | |
| with: | |
| cpu: arm1176 | |
| cpu_info: cpuinfo/raspberrypi_zero2_w | |
| base_image: raspios_lite:latest | |
| image_additional_mb: 2048 | |
| copy_artifact_path: output | |
| commands: | | |
| export CC=gcc | |
| script/installqt.sh raspberry-arm32 '5.15.2' | |
| script/makelinux.sh raspberry-arm32 '5.15.2' | |
| find output -type d -exec chmod a+rwx {} \; | |
| find output -type f -exec chmod a+rw {} \; | |
| - name: Transfer JQtide | |
| run: | | |
| ls output/* | |
| mv output/* . | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-raspberry-arm32.tar.gz,jqt-raspberry-arm32-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # openbsd -------------------------------------------------------------- | |
| jqtopenbsd: | |
| needs: all | |
| name: JQtide (OpenBSD cross-platform-actions) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Git repository | |
| uses: actions/checkout@v4 | |
| - name: Install Qt, Compile JQtide | |
| uses: cross-platform-actions/action@v0.27.0 | |
| with: | |
| operating_system: openbsd | |
| architecture: x86-64 | |
| version: '7.6' | |
| shell: bash | |
| run: | | |
| rm -f jobdone | |
| export IGNORE_OSVERSION=yes | |
| sudo pkg_add -u | |
| sudo pkg_info -Q qt6 | |
| sudo pkg_add curl zip gmake | |
| sudo rdate time.cloudflare.com || true | |
| export CC=clang | |
| script/installqt.sh openbsd '6.6.3' || exit 1 | |
| script/makelinux.sh openbsd '6.6.3' || exit 1 | |
| touch jobdone | |
| - name: Check Status | |
| run: | | |
| test -f jobdone || exit 1 | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-openbsd.tar.gz,jqt-openbsd-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # freebsd -------------------------------------------------------------- | |
| jqtfreebsd: | |
| needs: all | |
| name: JQtide (FreeBSD vmactions) | |
| if: ${{ false }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt, Compile JQtide | |
| uses: vmactions/freebsd-vm@v0 | |
| with: | |
| usesh: true | |
| sync: sshfs | |
| prepare: | | |
| rdate time.cloudflare.com || true | |
| pkg install -y curl zip gmake sudo | |
| run: | | |
| rm -f jobdone | |
| export IGNORE_OSVERSION=yes | |
| pkg search 'qt6*' 1>&2 | |
| pkg install -y curl zip gmake | |
| rdate time.cloudflare.com || true | |
| export CC=clang | |
| script/installqt.sh freebsd '5.15.2' || exit 1 | |
| script/makelinux.sh freebsd '5.15.2' || exit 1 | |
| touch jobdone | |
| - name: Check Status | |
| run: | | |
| test -f jobdone || exit 1 | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-freebsd.tar.gz,jqt-freebsd-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # freebsd -------------------------------------------------------------- | |
| jqtfreebsd2: | |
| needs: all | |
| name: JQtide (FreeBSD cross-platform-actions) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Git repository | |
| uses: actions/checkout@v4 | |
| - name: Install Qt, Compile JQtide | |
| uses: cross-platform-actions/action@v0.27.0 | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '14.2' | |
| shell: bash | |
| run: | | |
| rm -f jobdone | |
| export IGNORE_OSVERSION=yes | |
| sudo pkg upgrade -y | |
| sudo pkg search 'qt6*' 1>&2 | |
| sudo pkg install -y curl zip gmake | |
| sudo rdate time.cloudflare.com || true | |
| export CC=clang | |
| script/installqt.sh freebsd '6.9.3' || exit 1 | |
| script/makelinux.sh freebsd '6.9.3' || exit 1 | |
| touch jobdone | |
| - name: Check Status | |
| run: | | |
| test -f jobdone || exit 1 | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-freebsd.tar.gz,jqt-freebsd-slim.tar.gz" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # windows -------------------------------------------------------------- | |
| jqtwin: | |
| needs: all | |
| name: JQtide (Windows) | |
| runs-on: windows-2022 | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup Environment (Windows) | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| arch: amd64 | |
| - name: Install Qt from source | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: '6.10.0' | |
| host: 'windows' | |
| target: 'desktop' | |
| arch: 'win64_msvc2022_64' | |
| dir: '${{github.workspace}}' | |
| # modules: 'qtwebengine qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
| modules: 'all' | |
| aqtversion: '==3.3.*' | |
| - name: Compile JQtide | |
| shell: cmd | |
| run: script\makewin.cmd 6.10.0 x64 | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-win.zip,jqt-win-slim.zip" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # windows arm64 -------------------------------------------------------- | |
| jqtwinarm64: | |
| needs: all | |
| name: JQtide (Windows arm64) | |
| runs-on: windows-11-arm | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup Environment (Windows arm64) | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| arch: arm64 | |
| - name: Install Qt from source | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: '6.10.0' | |
| host: 'windows_arm64' | |
| target: 'desktop' | |
| arch: 'win64_msvc2022_arm64' | |
| dir: '${{github.workspace}}' | |
| # modules: 'qtwebengine qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
| modules: 'all' | |
| aqtversion: '==3.3.*' | |
| - name: Compile JQtide | |
| shell: cmd | |
| run: script\makewin.cmd 6.10.0 arm64 | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-winarm64.zip,jqt-winarm64-slim.zip" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # wasm ----------------------------------------------------------------- | |
| jqtwasm: | |
| needs: all | |
| name: JQtide (wasm) | |
| if: ${{ false }} | |
| runs-on: macos-15-intel | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt from source | |
| uses: Kidev/install-qt-action@v4.4.2 | |
| with: | |
| version: '6.10.0' | |
| target: 'desktop' | |
| dir: '${{github.workspace}}' | |
| # modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
| # modules: 'all' | |
| aqtversion: '==3.3.*' | |
| - name: Install Qt from source wasm | |
| uses: Kidev/install-qt-action@v4.4.2 | |
| with: | |
| version: '6.10.0' | |
| host: 'all_os' | |
| target: 'wasm' | |
| arch: 'wasm_multithread' | |
| dir: '${{github.workspace}}' | |
| # modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel' | |
| modules: 'all' | |
| aqtversion: '==3.3.*' | |
| - name: Install emsdk | |
| uses: mymindstorm/setup-emsdk@v14 | |
| with: | |
| version: '3.1.70' | |
| - name: Verify | |
| run: emcc -v | |
| - name: Compile JQtide | |
| env: | |
| CC: clang | |
| run: | | |
| ./cpjlib.sh | |
| ./cplibjtest.sh | |
| JQTSLIM=JQTSLIM QMAKESPEC=wasm-emscripten QM=${{github.workspace}}/Qt/6.10.0/wasm_multithread/bin/qmake ./makeall.sh | |
| rm -rf j32 | |
| mkdir j32 | |
| ls -l bin/wasm-wasm32/release | |
| cp bin/wasm-wasm32/release/* j32/. | |
| zip -r jqt-wasm-slim.zip j32 | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-wasm-slim.zip" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| # ios ------------------------------------------------------------------ | |
| jqtios: | |
| needs: all | |
| name: JQtide (ios) | |
| if: ${{ false }} | |
| runs-on: macos-15-intel | |
| steps: | |
| - name: Check Git repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt from source | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: '6.10.0' | |
| target: 'desktop' | |
| dir: '${{github.workspace}}' | |
| # modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
| # modules: 'all' | |
| aqtversion: '==3.3.*' | |
| - name: Install Qt from source ios | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: '6.10.0' | |
| target: 'ios' | |
| dir: '${{github.workspace}}' | |
| # modules: 'qt5compat qtwebsockets qtmultimedia qtwebchannel qtpositioning' | |
| modules: 'all' | |
| aqtversion: '==3.3.*' | |
| - name: Compile JQtide | |
| env: | |
| CC: clang | |
| run: | | |
| cd ~/ | |
| wget https://www.jsoftware.com/download/j9.6/install/j9.6_mac64.zip | |
| unzip j9.6_mac64.zip | |
| find j9.6 -type f -name 'jconsole' -exec chmod 755 {} \; | |
| j9.6/bin/jconsole -js "exit 0['install'jpkg'all'['update'jpkg''[load'pacman'" | |
| cd - | |
| rm -rf jlibrary | |
| mkdir -p jlibrary/bin | |
| cp -r ~/j9.6/addons jlibrary/. | |
| cp -r ~/j9.6/system jlibrary/. | |
| cp ~/j9.6/bin/profile.ijs jlibrary/bin/. | |
| rm -rf ~/j9.6 | |
| rm -rf ~/j9.6-user | |
| cd ~/ | |
| wget https://github.com/jsoftware/jsource/releases/download/build/m64.zip | |
| unzip m64.zip | |
| cd - | |
| rm -rf ios | |
| cp -r ~/j64/ios . | |
| rm -rf ~/m64.zip | |
| rm -rf ~/j64 | |
| mkdir -p ios/mpir | |
| cd ios/mpir | |
| wget https://www.jsoftware.com/download/jengine/mpir/apple/ios/libgmp.a | |
| cd - | |
| cd ~/ | |
| wget https://github.com/jsoftware/jsource/archive/master.tar.gz | |
| tar -xzf master.tar.gz | |
| cd - | |
| rm -rf test | |
| cp -r ~/jsource-master/test . | |
| rm -rf ~/jsource-master | |
| echo "QMAKE_XCODE_CODE_SIGN_IDENTITY = \"iPhone Developer\"" > ios_signature.pri | |
| echo "development_team.name = DEVELOPMENT_TEAM" >> ios_signature.pri | |
| echo "development_team.value = bill.w.lam@icloud.com" >> ios_signature.pri | |
| echo "QMAKE_MAC_XCODE_SETTINGS += development_team" >> ios_signature.pri | |
| QM=${{github.workspace}}/Qt/6.10.0/ios/bin/qmake script/makemac.sh '6.10.0' ios | |
| - name: Release JQtide | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: build | |
| artifacts: "jqt-ios-slim.zip" | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| allowUpdates: true | |
| replacesArtifacts: true | |
| webhook: | |
| name: Run Webhook | |
| runs-on: ubuntu-22.04 | |
| # needs: [jqtlinux, jqtmacos, jqtrpi64, jqtwin, jqtwinarm64, jqtfreebsd2, jqtopenbsd, jqtios, jqtwasm ] | |
| needs: [jqtlinux, jqtmacos, jqtrpi64arm, jqtwin, jqtwinarm64, jqtrpi32arm, jqtfreebsd2, jqtopenbsd ] | |
| steps: | |
| - name: update server | |
| uses: distributhor/workflow-webhook@v2 | |
| env: | |
| webhook_url: ${{ secrets.WEBHOOK_URL }} | |
| webhook_secret: ${{ secrets.WEBHOOK_SECRET }} | |
| data: '{ "id": "jqtbuild" }' |