open-hyperion/.gitlab-ci.yml

313 lines
No EOL
10 KiB
YAML

#-----------------------------------------------------------------------#
# 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