diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 371d173b..9226ba0d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,7 +32,10 @@ before_script: #-----------------------------------------------------------------------# "Supported Devices": <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-64 + image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-amd64 + tags: + - linux + - amd64 stage: build script: - qmake @@ -53,18 +56,21 @@ before_script: allow_failure: true #-----------------------------------------------------------------------# -# Linux (AppImage) 32-bit Build Target # +# Linux (AppImage) i386 Build Target # #-----------------------------------------------------------------------# -"Linux 32 AppImage": +"Linux i386 AppImage": <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-32 + image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-i386 + tags: + - linux + - i386 stage: build script: - export $(dpkg-architecture) - ./scripts/build-appimage.sh artifacts: - name: "${CI_PROJECT_NAME}_Linux_32_${CI_COMMIT_SHORT_SHA}" + name: "${CI_PROJECT_NAME}_Linux_i386_${CI_COMMIT_SHORT_SHA}" paths: - OpenRGB-i386.AppImage - 60-openrgb.rules @@ -79,18 +85,21 @@ before_script: allow_failure: true #-----------------------------------------------------------------------# -# Linux (AppImage) 64-bit Build Target # +# Linux (AppImage) amd64 Build Target # #-----------------------------------------------------------------------# -"Linux 64 AppImage": +"Linux amd64 AppImage": <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-64 + image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-amd64 + tags: + - linux + - amd64 stage: build script: - export $(dpkg-architecture) - ./scripts/build-appimage.sh artifacts: - name: "${CI_PROJECT_NAME}_Linux_64_${CI_COMMIT_SHORT_SHA}" + name: "${CI_PROJECT_NAME}_Linux_amd64_${CI_COMMIT_SHORT_SHA}" paths: - OpenRGB-x86_64.AppImage - 60-openrgb.rules @@ -98,127 +107,58 @@ before_script: expire_in: 30 days #-----------------------------------------------------------------------# -# Linux (.deb) Debian Buster (Legacy) 32-bit Build Target # +# Linux (AppImage) armhf Build Target # #-----------------------------------------------------------------------# -"Linux 32 .deb (Debian Buster)": +"Linux armhf AppImage": <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:buster-32 + 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 --target-arch i386 -us -B - - rm -v ../openrgb-dbgsym*.*deb - - mv -v ../openrgb*.deb ./ + - export $(dpkg-architecture) + - ./scripts/build-appimage.sh artifacts: - name: "${CI_PROJECT_NAME}_Linux_32_deb_${CI_COMMIT_SHORT_SHA}" + name: "${CI_PROJECT_NAME}_Linux_armhf_${CI_COMMIT_SHORT_SHA}" paths: - - openrgb*.deb - exclude: - - openrgb-dbgsym*.*deb + - OpenRGB-armhf.AppImage + - 60-openrgb.rules + - README.md expire_in: 30 days - rules: - - if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"' - when: on_success - - if: $CI_PIPELINE_SOURCE == "push" - when: manual - allow_failure: true - #-----------------------------------------------------------------------# -# Linux (.deb) Debian Buster (Legacy) 64-bit Build Target # +# Linux (AppImage) arm64 Build Target # #-----------------------------------------------------------------------# -"Linux 64 .deb (Debian Buster)": +"Linux arm64 AppImage": <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:buster-64 + 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-dbgsym*.*deb - - mv -v ../openrgb*.deb ./ + - export $(dpkg-architecture) + - ./scripts/build-appimage.sh artifacts: - name: "${CI_PROJECT_NAME}_Linux_64_deb_${CI_COMMIT_SHORT_SHA}" + name: "${CI_PROJECT_NAME}_Linux_arm64_${CI_COMMIT_SHORT_SHA}" paths: - - openrgb*.deb - exclude: - - openrgb-dbgsym*.*deb + - OpenRGB-arm64.AppImage + - 60-openrgb.rules + - README.md expire_in: 30 days - rules: - - if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"' - when: on_success - - if: $CI_PIPELINE_SOURCE == "push" - when: manual - allow_failure: true - #-----------------------------------------------------------------------# -# Linux (.deb) Debian Bullseye 32-bit Build Target # +# Linux (.deb) Debian Bookworm i386 Build Target # #-----------------------------------------------------------------------# -"Linux 32 .deb (Debian Bullseye)": +"Linux i386 .deb (Debian Bookworm)": <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-32 - stage: build - script: - - ./scripts/build-package-files.sh debian/changelog - - dpkg-architecture -l - - dpkg-buildpackage --target-arch i386 -us -B - - rm -v ../openrgb-dbgsym*.*deb - - mv -v ../openrgb*.deb ./ - - artifacts: - name: "${CI_PROJECT_NAME}_Linux_32_deb_${CI_COMMIT_SHORT_SHA}" - paths: - - openrgb*.deb - exclude: - - openrgb-dbgsym*.*deb - expire_in: 30 days - - rules: - - if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"' - when: on_success - - if: $CI_PIPELINE_SOURCE == "push" - when: manual - allow_failure: true - -#-----------------------------------------------------------------------# -# Linux (.deb) Debian Bullseye 64-bit Build Target # -#-----------------------------------------------------------------------# -"Linux 64 .deb (Debian Bullseye)": - <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-64 - stage: build - script: - - ./scripts/build-package-files.sh debian/changelog - - dpkg-architecture -l - - dpkg-buildpackage -us -B - - rm -v ../openrgb-dbgsym*.*deb - - mv -v ../openrgb*.deb ./ - - artifacts: - name: "${CI_PROJECT_NAME}_Linux_64_deb_${CI_COMMIT_SHORT_SHA}" - paths: - - openrgb*.deb - exclude: - - openrgb-dbgsym*.*deb - expire_in: 30 days - - rules: - - if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"' - when: on_success - - if: $CI_PIPELINE_SOURCE == "push" - when: manual - allow_failure: true - -#-----------------------------------------------------------------------# -# Linux (.deb) Debian Bookworm 32-bit Build Target # -#-----------------------------------------------------------------------# -"Linux 32 .deb (Debian Bookworm)": - <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-32 + 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 @@ -228,7 +168,7 @@ before_script: - mv -v ../openrgb*.deb ./ artifacts: - name: "${CI_PROJECT_NAME}_Linux_32_deb_${CI_COMMIT_SHORT_SHA}" + name: "${CI_PROJECT_NAME}_Linux_i386_deb_${CI_COMMIT_SHORT_SHA}" paths: - openrgb*.deb exclude: @@ -243,11 +183,14 @@ before_script: allow_failure: true #-----------------------------------------------------------------------# -# Linux (.deb) Debian Bookworm 64-bit Build Target # +# Linux (.deb) Debian Bookworm amd64 Build Target # #-----------------------------------------------------------------------# -"Linux 64 .deb (Debian Bookworm)": +"Linux amd64 .deb (Debian Bookworm)": <<: *ccache_init - image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-64 + 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 @@ -257,7 +200,71 @@ before_script: - mv -v ../openrgb*.deb ./ artifacts: - name: "${CI_PROJECT_NAME}_Linux_64_deb_${CI_COMMIT_SHORT_SHA}" + name: "${CI_PROJECT_NAME}_Linux_amd64_deb_${CI_COMMIT_SHORT_SHA}" + paths: + - openrgb*.deb + exclude: + - openrgb-dbgsym*.deb + expire_in: 30 days + + rules: + - if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"' + when: on_success + - if: $CI_PIPELINE_SOURCE == "push" + when: manual + allow_failure: true + +#-----------------------------------------------------------------------# +# 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-dbgsym*.deb + - mv -v ../openrgb*.deb ./ + + artifacts: + name: "${CI_PROJECT_NAME}_Linux_armhf_deb_${CI_COMMIT_SHORT_SHA}" + paths: + - openrgb*.deb + exclude: + - openrgb-dbgsym*.deb + expire_in: 30 days + + rules: + - if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"' + when: on_success + - if: $CI_PIPELINE_SOURCE == "push" + when: manual + allow_failure: true + +#-----------------------------------------------------------------------# +# 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-dbgsym*.deb + - mv -v ../openrgb*.deb ./ + + artifacts: + name: "${CI_PROJECT_NAME}_Linux_arm64_deb_${CI_COMMIT_SHORT_SHA}" paths: - openrgb*.deb exclude: @@ -307,73 +314,9 @@ before_script: allow_failure: true #-----------------------------------------------------------------------# -# Debian 32 Buster test # +# Debian i386 Bookworm test # #-----------------------------------------------------------------------# -"Debian 32 Buster": - image: i386/debian:buster - stage: test - script: - - apt update - - DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*i386.deb - - openrgb --version - - apt remove -y openrgb - dependencies: - - "Linux 32 .deb (Debian Buster)" - needs: - - "Linux 32 .deb (Debian Buster)" - -#-----------------------------------------------------------------------# -# Debian 64 Buster test # -#-----------------------------------------------------------------------# -"Debian 64 Buster": - image: amd64/debian:buster - stage: test - script: - - apt update - - DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*amd64.deb - - openrgb --version - - apt remove -y openrgb - dependencies: - - "Linux 64 .deb (Debian Buster)" - needs: - - "Linux 64 .deb (Debian Buster)" - -#-----------------------------------------------------------------------# -# Debian 32 Bullseye test # -#-----------------------------------------------------------------------# -"Debian 32 Bullseye": - image: i386/debian:bullseye - stage: test - script: - - apt update - - DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*i386.deb - - openrgb --version - - apt remove -y openrgb - dependencies: - - "Linux 32 .deb (Debian Bullseye)" - needs: - - "Linux 32 .deb (Debian Bullseye)" - -#-----------------------------------------------------------------------# -# Debian 64 Bullseye test # -#-----------------------------------------------------------------------# -"Debian 64 Bullseye": - image: amd64/debian:bullseye - stage: test - script: - - apt update - - DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*amd64.deb - - openrgb --version - - apt remove -y openrgb - dependencies: - - "Linux 64 .deb (Debian Bullseye)" - needs: - - "Linux 64 .deb (Debian Bullseye)" - -#-----------------------------------------------------------------------# -# Debian 32 Bookworm test # -#-----------------------------------------------------------------------# -"Debian 32 Bookworm": +"Debian i386 Bookworm": image: i386/debian:bookworm stage: test script: @@ -382,14 +325,14 @@ before_script: - openrgb --version - apt remove -y openrgb dependencies: - - "Linux 32 .deb (Debian Bookworm)" + - "Linux i386 .deb (Debian Bookworm)" needs: - - "Linux 32 .deb (Debian Bookworm)" + - "Linux i386 .deb (Debian Bookworm)" #-----------------------------------------------------------------------# -# Debian 64 Bookworm test # +# Debian amd64 Bookworm test # #-----------------------------------------------------------------------# -"Debian 64 Bookworm": +"Debian amd64 Bookworm": image: amd64/debian:bookworm stage: test script: @@ -398,30 +341,14 @@ before_script: - openrgb --version - apt remove -y openrgb dependencies: - - "Linux 64 .deb (Debian Bookworm)" + - "Linux amd64 .deb (Debian Bookworm)" needs: - - "Linux 64 .deb (Debian Bookworm)" + - "Linux amd64 .deb (Debian Bookworm)" #-----------------------------------------------------------------------# -# Ubuntu 64 20.04LTS test # +# Ubuntu amd64 22.04 test # #-----------------------------------------------------------------------# -"Ubuntu 64 20.04LTS": - image: ubuntu:focal - stage: test - script: - - apt update - - DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*amd64.deb - - openrgb --version - - apt remove -y openrgb - dependencies: - - "Linux 64 .deb (Debian Buster)" - needs: - - "Linux 64 .deb (Debian Buster)" - -#-----------------------------------------------------------------------# -# Ubuntu 64 22.04 test # -#-----------------------------------------------------------------------# -"Ubuntu 64 22.04LTS": +"Ubuntu amd64 22.04LTS": image: ubuntu:jammy stage: test script: @@ -430,9 +357,9 @@ before_script: - openrgb --version - apt remove -y openrgb dependencies: - - "Linux 64 .deb (Debian Bookworm)" + - "Linux amd64 .deb (Debian Bookworm)" needs: - - "Linux 64 .deb (Debian Bookworm)" + - "Linux amd64 .deb (Debian Bookworm)" #-----------------------------------------------------------------------# # Fedora 64 v40 test # diff --git a/scripts/build-appimage.sh b/scripts/build-appimage.sh index e27597e7..78129469 100755 --- a/scripts/build-appimage.sh +++ b/scripts/build-appimage.sh @@ -25,6 +25,13 @@ if [ ${DEB_HOST_ARCH:0:1} == ${DEB_HOST_GNU_CPU:0:1} ]; then else ARCH="$DEB_HOST_GNU_CPU" fi + +if [ "$ARCH" == "arm64" ]; then + ARCH_LINUXDEPLOY="aarch64" +else + ARCH_LINUXDEPLOY="$ARCH" +fi + echo Inputs: "$DEB_HOST_ARCH" "$DEB_HOST_GNU_CPU" echo Calculated: "$ARCH" @@ -74,12 +81,12 @@ make install INSTALL_ROOT=AppDir #-----------------------------------------------------------------------# export QML_SOURCES_PATHS="$REPO_ROOT"/src -linuxdeploy-"$ARCH".AppImage --appdir AppDir -e "$TARGET" -i "$REPO_ROOT"/qt/org.openrgb.OpenRGB.png -d "$REPO_ROOT"/qt/org.openrgb.OpenRGB.desktop -linuxdeploy-plugin-qt-"$ARCH".AppImage --appdir AppDir -linuxdeploy-"$ARCH".AppImage --appdir AppDir --output appimage +linuxdeploy-"$ARCH_LINUXDEPLOY".AppImage --appdir AppDir -e "$TARGET" -i "$REPO_ROOT"/qt/org.openrgb.OpenRGB.png -d "$REPO_ROOT"/qt/org.openrgb.OpenRGB.desktop +linuxdeploy-plugin-qt-"$ARCH_LINUXDEPLOY".AppImage --appdir AppDir +linuxdeploy-"$ARCH_LINUXDEPLOY".AppImage --appdir AppDir --output appimage #-----------------------------------------------------------------------# # Move built AppImage & udev_rules back into original CWD # #-----------------------------------------------------------------------# mv -v "$BUILD_DIR"/60-openrgb.rules "$OLD_CWD" -mv -v "$TARGET"*.AppImage "$OLD_CWD" +mv -v "$TARGET"*.AppImage "$OLD_CWD/OpenRGB-$ARCH.AppImage"