name: CI on: push: branches: [ "**" ] pull_request: branches: [ "**" ] jobs: miqt_genbindings: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 # WARNING: This loads the cache but does not commit back any new changes to # it unless the cache is invalidated in GitHub # It will help to do that every time a new Qt library is added - name: Cache clang ASTs uses: actions/cache@v4 with: path: cmd/genbindings/cachedir key: linux64-clang-cache - name: Rebuild binding source run: make genbindings - name: Assert no changes run: git update-index --really-refresh && git diff-index HEAD miqt_buildall: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 # This uses the `genbindings` container in miqt-docker - name: Rebuild all libraries and examples run: make build-all - name: Run marshalling test suite run: cmd/miqt-docker/miqt-docker genbindings /bin/bash -c 'cd examples/marshalling && env QT_QPA_PLATFORM=offscreen go test -v' miqt_linux64_qt5: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Linux64 bindings compile run: | make cmd/miqt-docker/miqt-docker cd qt && ../cmd/miqt-docker/miqt-docker linux64-go1.19-qt5.15-dynamic go build miqt_linux64_qt6_4: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Linux64 bindings compile run: | make cmd/miqt-docker/miqt-docker cd qt6 && ../cmd/miqt-docker/miqt-docker linux64-go1.19-qt6.4-dynamic go build miqt_linux64_qt6_8: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Linux64 bindings compile run: | make cmd/miqt-docker/miqt-docker cd qt6 && ../cmd/miqt-docker/miqt-docker linux64-go1.23-qt6.8-dynamic go build miqt_win32_qt5: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Win32 bindings compile run: | make cmd/miqt-docker/miqt-docker cmd/miqt-docker/miqt-docker win32-cross-go1.23-qt5.15-static /bin/bash -c 'cd qt && go build && cd ../examples/helloworld && go build' miqt_win64_qt5: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Win64 bindings compile run: | make cmd/miqt-docker/miqt-docker cmd/miqt-docker/miqt-docker win64-cross-go1.23-qt5.15-static /bin/bash -c 'cd qt && go build && cd ../examples/helloworld && go build' miqt_win64_qt68: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Win64 bindings compile run: | make cmd/miqt-docker/miqt-docker cmd/miqt-docker/miqt-docker win64-cross-go1.23-qt6.8-dynamic /bin/bash -c 'cd qt6 && go build && cd ../examples/helloworld6 && go build' miqt_android_qt5: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Android compile run: | make cmd/miqt-docker/miqt-docker cd examples/helloworld ../../cmd/miqt-docker/miqt-docker android-armv8a-go1.23-qt5.15-dynamic -android-build test -f helloworld.apk miqt_android_qt6: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Android compile run: | make cmd/miqt-docker/miqt-docker cd examples/helloworld6 ../../cmd/miqt-docker/miqt-docker android-armv8a-go1.23-qt6.6-dynamic -android-build test -f helloworld6.apk