#-----------------------------------------------------------------------# # OpenRGB E1.31 Receiver Plugin GitLab CI Configuration # #-----------------------------------------------------------------------# variables: GIT_SUBMODULE_STRATEGY: recursive GIT_DEPTH: 0 .shared_windows_runners: tags: - shared-windows - windows stages: - build - deploy before_script: - echo "started by ${GITLAB_USER_NAME}" #reusable templates .ccache_init: &ccache_init before_script: - export QT_SELECT=qt5 - export APPIMAGE_EXTRACT_AND_RUN=1 #-----------------------------------------------------------------------# # Linux i386 Build Target # #-----------------------------------------------------------------------# "Linux i386": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-i386 tags: - linux - i386 stage: build script: - export QT_SELECT=qt5 - export $(dpkg-architecture) - ./scripts/build-plugin.sh artifacts: name: "${CI_PROJECT_NAME}_Linux_i386_${CI_COMMIT_SHORT_SHA}" paths: - ./libOpenRGBE131ReceiverPlugin.so expire_in: 30 days #-----------------------------------------------------------------------# # Linux amd64 Build Target # #-----------------------------------------------------------------------# "Linux amd64": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-amd64 tags: - linux - amd64 stage: build script: - export QT_SELECT=qt5 - export $(dpkg-architecture) - ./scripts/build-plugin.sh artifacts: name: "${CI_PROJECT_NAME}_Linux_amd64_${CI_COMMIT_SHORT_SHA}" paths: - ./libOpenRGBE131ReceiverPlugin.so expire_in: 30 days #-----------------------------------------------------------------------# # Linux armhf Build Target # #-----------------------------------------------------------------------# "Linux armhf": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-armhf tags: - linux - armhf stage: build script: - export QT_SELECT=qt5 - export $(dpkg-architecture) - ./scripts/build-plugin.sh artifacts: name: "${CI_PROJECT_NAME}_Linux_armhf_${CI_COMMIT_SHORT_SHA}" paths: - ./libOpenRGBE131ReceiverPlugin.so expire_in: 30 days #-----------------------------------------------------------------------# # Linux arm64 Build Target # #-----------------------------------------------------------------------# "Linux arm64": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-arm64 tags: - linux - arm64 stage: build script: - export QT_SELECT=qt5 - export $(dpkg-architecture) - ./scripts/build-plugin.sh artifacts: name: "${CI_PROJECT_NAME}_Linux_arm64_${CI_COMMIT_SHORT_SHA}" paths: - ./libOpenRGBE131ReceiverPlugin.so expire_in: 30 days #-----------------------------------------------------------------------# # Linux (.deb) Debian Bookworm i386 Build Target # #-----------------------------------------------------------------------# "Linux i386 .deb (Debian Bookworm)": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-i386 tags: - linux - i386 stage: build script: - ./scripts/build-package-files.sh debian/changelog - dpkg-architecture -l - dpkg-buildpackage -us -B - rm -v ../openrgb-plugin-e131-receiver-dbgsym*.deb - mv -v ../openrgb-plugin-e131-receiver*.deb ./ artifacts: name: "${CI_PROJECT_NAME}_Linux_i386_deb_${CI_COMMIT_SHORT_SHA}" paths: - openrgb-plugin-e131-receiver*.deb exclude: - openrgb-plugin-e131-receiver-dbgsym*.deb expire_in: 30 days #-----------------------------------------------------------------------# # Linux (.deb) Debian Bookworm amd64 Build Target # #-----------------------------------------------------------------------# "Linux amd64 .deb (Debian Bookworm)": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-amd64 tags: - linux - amd64 stage: build script: - ./scripts/build-package-files.sh debian/changelog - dpkg-architecture -l - dpkg-buildpackage -us -B - rm -v ../openrgb-plugin-e131-receiver-dbgsym*.deb - mv -v ../openrgb-plugin-e131-receiver*.deb ./ artifacts: name: "${CI_PROJECT_NAME}_Linux_amd64_deb_${CI_COMMIT_SHORT_SHA}" paths: - openrgb-plugin-e131-receiver*.deb exclude: - openrgb-plugin-e131-receiver-dbgsym*.deb expire_in: 30 days #-----------------------------------------------------------------------# # Linux (.deb) Debian Bookworm armhf Build Target # #-----------------------------------------------------------------------# "Linux armhf .deb (Debian Bookworm)": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-armhf tags: - linux - armhf stage: build script: - ./scripts/build-package-files.sh debian/changelog - dpkg-architecture -l - dpkg-buildpackage -us -B - rm -v ../openrgb-plugin-e131-receiver-dbgsym*.deb - mv -v ../openrgb-plugin-e131-receiver*.deb ./ artifacts: name: "${CI_PROJECT_NAME}_Linux_armhf_deb_${CI_COMMIT_SHORT_SHA}" paths: - openrgb-plugin-e131-receiver*.deb exclude: - openrgb-plugin-e131-receiver-dbgsym*.deb expire_in: 30 days #-----------------------------------------------------------------------# # Linux (.deb) Debian Bookworm arm64 Build Target # #-----------------------------------------------------------------------# "Linux arm64 .deb (Debian Bookworm)": <<: *ccache_init image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-arm64 tags: - linux - arm64 stage: build script: - ./scripts/build-package-files.sh debian/changelog - dpkg-architecture -l - dpkg-buildpackage -us -B - rm -v ../openrgb-plugin-e131-receiver-dbgsym*.deb - mv -v ../openrgb-plugin-e131-receiver*.deb ./ artifacts: name: "${CI_PROJECT_NAME}_Linux_arm64_deb_${CI_COMMIT_SHORT_SHA}" paths: - openrgb-plugin-e131-receiver*.deb exclude: - openrgb-plugin-e131-receiver-dbgsym*.deb expire_in: 30 days #-----------------------------------------------------------------------# # Windows (32-bit) Build Target # #-----------------------------------------------------------------------# "Windows 32": extends: - .shared_windows_runners stage: build script: - scripts\build-windows.bat 5.15.0 2019 32 - mv "OpenRGBE131ReceiverPlugin Windows 32-Bit\OpenRGBE131ReceiverPlugin.dll" . artifacts: name: "${CI_PROJECT_NAME}_Windows_32_${CI_COMMIT_SHORT_SHA}" paths: - OpenRGBE131ReceiverPlugin.dll expire_in: 30 days #-----------------------------------------------------------------------# # Windows (64-bit) Build Target # #-----------------------------------------------------------------------# "Windows 64": extends: - .shared_windows_runners stage: build script: - scripts\build-windows.bat 5.15.0 2019 64 - mv "OpenRGBE131ReceiverPlugin Windows 64-Bit\OpenRGBE131ReceiverPlugin.dll" . artifacts: name: "${CI_PROJECT_NAME}_Windows_64_${CI_COMMIT_SHORT_SHA}" paths: - OpenRGBE131ReceiverPlugin.dll expire_in: 30 days #-----------------------------------------------------------------------# # MacOS Build Target # #-----------------------------------------------------------------------# "MacOS ARM64": tags: - macos stage: build script: - eval $(/opt/homebrew/bin/brew shellenv) - qmake OpenRGBE131ReceiverPlugin.pro - make -j16 - install_name_tool libOpenRGBE131ReceiverPlugin.dylib -change /opt/homebrew/opt/qt@5/lib/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets - install_name_tool libOpenRGBE131ReceiverPlugin.dylib -change /opt/homebrew/opt/qt@5/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui - install_name_tool libOpenRGBE131ReceiverPlugin.dylib -change /opt/homebrew/opt/qt@5/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore - codesign --force --verify -s OpenRGB libOpenRGBE131ReceiverPlugin.dylib artifacts: paths: - libOpenRGBE131ReceiverPlugin.dylib expire_in: 30 days rules: - if: '$CI_PROJECT_PATH == "OpenRGBDevelopers/OpenRGBE131ReceiverPlugin"' when: on_success - if: '$BUILD_MACOS =~ /.+/' when: on_success "MacOS Intel": tags: - macos stage: build script: - eval $(/usr/local/bin/brew shellenv) - arch -x86_64 /usr/local/bin/qmake OpenRGBE131ReceiverPlugin.pro - arch -x86_64 make -j16 - arch -x86_64 install_name_tool libOpenRGBE131ReceiverPlugin.dylib -change /usr/local/bin/opt/qt@5/lib/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets - arch -x86_64 install_name_tool libOpenRGBE131ReceiverPlugin.dylib -change /usr/local/bin/opt/qt@5/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui - arch -x86_64 install_name_tool libOpenRGBE131ReceiverPlugin.dylib -change /usr/local/bin/opt/qt@5/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore - arch -x86_64 codesign --force --verify -s OpenRGB libOpenRGBE131ReceiverPlugin.dylib artifacts: paths: - libOpenRGBE131ReceiverPlugin.dylib expire_in: 30 days rules: - if: '$CI_PROJECT_PATH == "OpenRGBDevelopers/OpenRGBE131ReceiverPlugin"' when: on_success - if: '$BUILD_MACOS =~ /.+/' when: on_success #-----------------------------------------------------------------------# # Windows (64-bit) MSI Target # #-----------------------------------------------------------------------# "Windows 64 MSI": image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-i386 stage: deploy tags: - linux - i386 script: - ls -la - ./scripts/build-msi.sh dependencies: - "Windows 64" needs: - "Windows 64" artifacts: name: "${CI_PROJECT_NAME}_Windows_64_msi_${CI_COMMIT_SHORT_SHA}" paths: - OpenRGB_E131_Receiver_Plugin_Windows_64.msi expire_in: 30 days