βοΈ Saucer Prebuilt #15
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
| on: | |
| push: | |
| branches: | |
| - "main" | |
| pull_request: | |
| workflow_dispatch: | |
| release: | |
| types: [created] | |
| name: βοΈ Saucer Prebuilt | |
| jobs: | |
| build-windows: | |
| # if: false # Temp disable for testing | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build-type: | |
| - Release | |
| # - Debug | |
| platform: | |
| # - { arch: x86 } | |
| - { arch: x86_64 } | |
| runs-on: windows-latest | |
| name: "Windows-WebView2-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| steps: | |
| - name: π₯ Checkout actions code | |
| uses: actions/checkout@v4 | |
| - name: πΈ Checkout Saucer bindings code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: saucer/bindings | |
| path: bindings | |
| ref: main | |
| - name: π¨ Compile | |
| uses: ./.github/actions/compile | |
| with: | |
| backend: WebView2 | |
| platform: Windows | |
| build-type: ${{ matrix.build-type }} | |
| cmake-args: -Dsaucer_msvc_hack=ON -Dsaucer_serializer=Rflpp | |
| - name: βοΈ Reorganize files | |
| shell: bash | |
| run: | | |
| mkdir to_upload | |
| cp "bindings/build/${{ matrix.build-type }}/saucer-bindings.dll" to_upload | |
| cp "bindings/build/_deps/saucer-build/${{ matrix.build-type }}/saucer.dll" to_upload | |
| cp "bindings/build/modules/desktop/${{ matrix.build-type }}/saucer-bindings-desktop.dll" to_upload | |
| cp "bindings/build/modules/pdf/${{ matrix.build-type }}/saucer-bindings-pdf.dll" to_upload | |
| cp "bindings/build/modules/loop/${{ matrix.build-type }}/saucer-bindings-loop.dll" to_upload | |
| - name: π¦ Upload Artifact | |
| uses: ./.github/actions/upload-artifact | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| name: "Windows-WebView2-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| path: "to_upload" | |
| build-macos: | |
| # if: false # Temp disable for testing | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build-type: | |
| - Release | |
| # - Debug | |
| platform: | |
| # - { arch: x86_64, os: [self-hosted, macOS, x64, macos14-intel] } # Self hosted runner, thanks Max! | |
| - { arch: x86_64, os: macos-15-intel } | |
| - { arch: aarch64, os: macos-15 } | |
| runs-on: ${{ matrix.platform.os }} | |
| name: "macOS-WebKit-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| steps: | |
| - name: π₯ Checkout actions code | |
| uses: actions/checkout@v4 | |
| - name: πΈ Checkout Saucer bindings code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: saucer/bindings | |
| path: bindings | |
| ref: main | |
| - name: π¨ Compile | |
| uses: ./.github/actions/compile | |
| with: | |
| backend: WebKit | |
| platform: macOS | |
| build-type: ${{ matrix.build-type }} | |
| - name: βοΈ Reorganize files | |
| shell: bash | |
| run: | | |
| mkdir to_upload | |
| cp "bindings/build/libsaucer-bindings.dylib" to_upload | |
| cp "bindings/build/_deps/saucer-build/libsaucer.dylib" to_upload | |
| cp "bindings/build/modules/desktop/libsaucer-bindings-desktop.dylib" to_upload | |
| cp "bindings/build/modules/pdf/libsaucer-bindings-pdf.dylib" to_upload | |
| cp "bindings/build/modules/loop/libsaucer-bindings-loop.dylib" to_upload | |
| - name: π¦ Upload Artifact | |
| uses: ./.github/actions/upload-artifact | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| name: "macOS-WebKit-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| path: "to_upload" | |
| build-gnu_linux_qt6: | |
| # if: false # Temp disable for testing | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build-type: | |
| - Release | |
| # - Debug | |
| platform: | |
| # Check these for architecture compatibility: | |
| # https://packages.debian.org/search?searchon=names&keywords=qt6-webengine-dev | |
| # https://hub.docker.com/_/debian/tags?page=&page_size=&ordering=&name=sid-slim | |
| # https://github.com/tonistiigi/binfmt?tab=readme-ov-file#build-test-image | |
| - { arch: "x86_64", qemuArch: "linux/amd64" } | |
| - { arch: "x86", qemuArch: "linux/386" } | |
| - { arch: "aarch64", qemuArch: "linux/arm64/v8" } | |
| runs-on: ubuntu-latest | |
| name: "GNU_Linux-Qt6-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| steps: | |
| - name: π₯ Checkout actions code | |
| uses: actions/checkout@v4 | |
| - name: πΈ Checkout Saucer bindings code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: saucer/bindings | |
| path: bindings | |
| ref: main | |
| - name: π¨βπ» Setup container | |
| uses: ./.github/actions/setup-container | |
| with: | |
| qemuArch: ${{ matrix.platform.qemuArch }} | |
| dockerArch: ${{ matrix.platform.dockerArch || 'SAME_AS_QEMU' }} | |
| image: "debian:sid-slim" | |
| - name: π Install dependencies | |
| uses: ./.github/actions/run-in-container | |
| with: | |
| command: apt update && apt install -y build-essential git gcc-14 cmake xvfb qt6-base-dev qt6-tools-dev qt6-declarative-dev qt6-webchannel-dev qt6-webengine-dev qt6-svg-dev | |
| - name: π¨ Compile | |
| uses: ./.github/actions/compile | |
| with: | |
| backend: Qt | |
| platform: Linux | |
| build-type: ${{ matrix.build-type }} | |
| in-container: true | |
| arm-hack: ${{ matrix.platform.arch }} | |
| - name: βοΈ Reorganize files | |
| shell: bash | |
| run: | | |
| mkdir to_upload | |
| cp "bindings/build/libsaucer-bindings.so" to_upload | |
| cp "bindings/build/_deps/saucer-build/libsaucer.so" to_upload | |
| cp "bindings/build/modules/desktop/libsaucer-bindings-desktop.so" to_upload | |
| cp "bindings/build/modules/pdf/libsaucer-bindings-pdf.so" to_upload | |
| cp "bindings/build/modules/loop/libsaucer-bindings-loop.so" to_upload | |
| - name: π¦ Upload Artifact | |
| uses: ./.github/actions/upload-artifact | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| name: "GNU_Linux-Qt6-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| path: "to_upload" | |
| build-gnu_linux_gtk: | |
| # if: false # Temp disable for testing | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build-type: | |
| - Release | |
| # - Debug | |
| platform: | |
| # Check these for architecture compatibility: | |
| # https://packages.debian.org/search?searchon=names&keywords=libgtk-4-dev | |
| # https://hub.docker.com/_/debian/tags?page=&page_size=&ordering=&name=sid-slim | |
| # https://github.com/tonistiigi/binfmt?tab=readme-ov-file#build-test-image | |
| - { arch: "x86_64", qemuArch: "linux/amd64" } | |
| - { arch: "x86", qemuArch: "linux/386" } | |
| - { arch: "aarch64", qemuArch: "linux/arm64" } | |
| # - { arch: "arm", qemuArch: "linux/arm/v5" } | |
| - { arch: "ppc64le", qemuArch: "linux/ppc64le" } | |
| - { arch: "riscv64", qemuArch: "linux/riscv64" } | |
| - { arch: "s390x", qemuArch: "linux/s390x" } | |
| # - { arch: "mips64el", qemuArch: "linux/mips64le" } # el in LLVM, le in qemu/docker. | |
| runs-on: ubuntu-latest | |
| name: "GNU_Linux-WebKitGtk-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| steps: | |
| - name: π₯ Checkout actions code | |
| uses: actions/checkout@v4 | |
| - name: πΈ Checkout Saucer bindings code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: saucer/bindings | |
| path: bindings | |
| ref: main | |
| - name: π¨βπ» Setup container | |
| uses: ./.github/actions/setup-container | |
| with: | |
| qemuArch: ${{ matrix.platform.qemuArch }} | |
| dockerArch: ${{ matrix.platform.dockerArch || 'SAME_AS_QEMU' }} | |
| image: "debian:sid-slim" | |
| - name: π Install dependencies | |
| uses: ./.github/actions/run-in-container | |
| with: | |
| command: apt update && apt install -y build-essential git gcc-14 cmake xvfb libgtk-4-dev libwebkitgtk-6.0-dev libadwaita-1-dev libjson-glib-dev | |
| - name: π¨ Compile | |
| uses: ./.github/actions/compile | |
| with: | |
| backend: WebKitGtk | |
| platform: Linux | |
| build-type: ${{ matrix.build-type }} | |
| in-container: true | |
| arm-hack: ${{ matrix.platform.arch }} | |
| - name: βοΈ Reorganize files | |
| shell: bash | |
| run: | | |
| mkdir to_upload | |
| cp "bindings/build/libsaucer-bindings.so" to_upload | |
| cp "bindings/build/_deps/saucer-build/libsaucer.so" to_upload | |
| cp "bindings/build/modules/desktop/libsaucer-bindings-desktop.so" to_upload | |
| cp "bindings/build/modules/pdf/libsaucer-bindings-pdf.so" to_upload | |
| cp "bindings/build/modules/loop/libsaucer-bindings-loop.so" to_upload | |
| - name: π¦ Upload Artifact | |
| uses: ./.github/actions/upload-artifact | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| name: "GNU_Linux-WebKitGtk-${{ matrix.platform.arch }}-${{ matrix.build-type }}" | |
| path: "to_upload" |