2023-02-21 01:17:37 +03:00
|
|
|
stages:
|
|
|
|
- build
|
|
|
|
- sign
|
|
|
|
- deploy
|
|
|
|
|
2020-05-01 02:27:27 +03:00
|
|
|
variables:
|
|
|
|
CCACHE_COMPILERCHECK: content
|
|
|
|
CCACHE_DIR: "${CI_PROJECT_DIR}/.ccache"
|
|
|
|
# prevent configure tzdata hanging apt install commands
|
|
|
|
DEBIAN_FRONTEND: noninteractive
|
2023-12-13 19:37:47 +03:00
|
|
|
FF_SCRIPT_SECTIONS: 1
|
|
|
|
FF_USE_FASTZIP: 1
|
2020-05-01 02:27:27 +03:00
|
|
|
|
2023-12-06 06:46:10 +03:00
|
|
|
build-windows:
|
|
|
|
stage: build
|
|
|
|
image: win10-base
|
|
|
|
tags: [libvirt,powershell]
|
2023-12-13 22:10:09 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
2023-12-06 06:46:10 +03:00
|
|
|
variables:
|
|
|
|
APPVEYOR_REPO_BRANCH: "${CI_COMMIT_REF_NAME}"
|
|
|
|
APPVEYOR_REPO_COMMIT: "${CI_COMMIT_SHORT_SHA}"
|
2023-12-12 05:30:25 +03:00
|
|
|
CMAKE_BUILD_PARALLEL_LEVEL: 8
|
2023-12-06 06:46:10 +03:00
|
|
|
before_script:
|
2023-12-13 10:11:31 +03:00
|
|
|
- mkdir -p hunter -f
|
2023-12-06 06:46:10 +03:00
|
|
|
- Move-Item -Path hunter -Destination C:/hunter
|
|
|
|
script:
|
|
|
|
- ./.ci/windows/build.bat
|
|
|
|
after_script:
|
|
|
|
- ./.ci/upload-nightly.ps1
|
|
|
|
- Move-Item -Path C:/hunter -Destination hunter -Force
|
|
|
|
cache:
|
|
|
|
key: "$CI_JOB_NAME"
|
|
|
|
paths:
|
|
|
|
- hunter/
|
|
|
|
- build/_deps
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- nheko.msix
|
|
|
|
- nheko_win_64.zip
|
2023-12-14 03:41:17 +03:00
|
|
|
name: nheko-${CI_COMMIT_SHORT_SHA}-windows-unsigned
|
|
|
|
expose_as: 'windows-app-unsigned'
|
|
|
|
|
|
|
|
codesign-windows:
|
|
|
|
stage: sign
|
|
|
|
image: win10-base
|
|
|
|
tags: [libvirt,powershell]
|
2023-12-19 05:23:50 +03:00
|
|
|
rules:
|
2023-12-20 02:23:32 +03:00
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null && $CI_COMMIT_REF_PROTECTED == "true"'
|
2023-12-19 05:23:50 +03:00
|
|
|
resource_group: windows_signing
|
2023-12-14 03:41:17 +03:00
|
|
|
environment:
|
|
|
|
name: windows_signing
|
|
|
|
#variables:
|
|
|
|
# GIT_STRATEGY: none
|
|
|
|
script:
|
|
|
|
- Get-ChildItem -Path Cert:CurrentUser\My
|
|
|
|
- ./.ci/windows/sign.bat
|
2023-12-20 02:23:32 +03:00
|
|
|
- mkdir -p artifacts
|
|
|
|
- mv nheko.msix artifacts/nheko.msix
|
2023-12-14 03:41:17 +03:00
|
|
|
needs:
|
|
|
|
- job: build-windows
|
|
|
|
artifacts:
|
|
|
|
paths:
|
2023-12-20 02:23:32 +03:00
|
|
|
- artifacts/nheko.msix
|
2023-12-06 06:46:10 +03:00
|
|
|
name: nheko-${CI_COMMIT_SHORT_SHA}-windows
|
|
|
|
expose_as: 'windows-app'
|
|
|
|
|
2023-12-20 02:23:32 +03:00
|
|
|
upload-windows:
|
|
|
|
stage: deploy
|
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
|
|
|
|
tags: [docker]
|
|
|
|
rules:
|
2023-12-20 03:07:53 +03:00
|
|
|
- if: '$CI_PIPELINE_TRIGGERED == null && $CI_COMMIT_REF_PROTECTED == "true" && $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/'
|
|
|
|
variables:
|
|
|
|
PACKAGE_NAME: "windows"
|
|
|
|
- if: '$CI_PIPELINE_TRIGGERED == null && $CI_COMMIT_REF_PROTECTED == "true"'
|
2023-12-20 02:23:32 +03:00
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none
|
2023-12-20 03:07:53 +03:00
|
|
|
PACKAGE_NAME: "windows-nightly"
|
2023-12-20 02:23:32 +03:00
|
|
|
before_script:
|
|
|
|
- apk add curl unzip
|
|
|
|
script:
|
|
|
|
- export VERSION=$(unzip -p artifacts/nheko.msix AppxManifest.xml | sed -n 's/.* Version="\([0-9.]*\)".*/\1/p')
|
2023-12-20 03:07:53 +03:00
|
|
|
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file artifacts/nheko.msix "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PACKAGE_NAME}/${VERSION}/nheko.msix"'
|
2023-12-20 02:23:32 +03:00
|
|
|
needs:
|
|
|
|
- job: codesign-windows
|
|
|
|
|
2023-12-20 03:07:53 +03:00
|
|
|
pages:
|
|
|
|
stage: deploy
|
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
|
|
|
|
tags: [docker]
|
|
|
|
rules:
|
|
|
|
- if: '$CI_PIPELINE_TRIGGERED == null && $CI_COMMIT_REF_PROTECTED == "true"'
|
|
|
|
interruptible: true
|
|
|
|
before_script:
|
|
|
|
- apk add curl jq
|
|
|
|
script:
|
|
|
|
- export LATEST_WINDOWS_NIGHTLY=$(curl "https://nheko.im/api/v4/projects/2/packages?package_name=windows-nightly&order_by=version&sort=desc" | jq -r '.[0].version')
|
2024-06-13 01:34:55 +03:00
|
|
|
#- export LATEST_WINDOWS=$(curl "https://nheko.im/api/v4/projects/2/packages?package_name=windows&order_by=version&sort=desc" | jq -r '.[0].version')
|
|
|
|
# hardcoded to avoid fuzzy matching
|
|
|
|
- export LATEST_WINDOWS='0.12.0.35798'
|
2024-06-11 23:24:35 +03:00
|
|
|
- sed "s/0.12.0.0/${LATEST_WINDOWS_NIGHTLY}/g" -i resources/NhekoNightly.appinstaller
|
2024-06-12 22:50:59 +03:00
|
|
|
- sed "s/0.12.0.0/${LATEST_WINDOWS}/g" -i resources/Nheko.appinstaller
|
2023-12-20 03:07:53 +03:00
|
|
|
- mkdir public
|
|
|
|
- mv resources/NhekoNightly.appinstaller public
|
2024-06-12 22:50:59 +03:00
|
|
|
- mv resources/Nheko.appinstaller public
|
2023-12-20 03:07:53 +03:00
|
|
|
needs:
|
|
|
|
- job: upload-windows
|
|
|
|
optional: true
|
|
|
|
artifacts: false
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- public
|
|
|
|
|
2021-12-29 01:34:21 +03:00
|
|
|
build-clazy:
|
|
|
|
stage: build
|
2023-05-25 23:21:53 +03:00
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
|
2021-12-29 01:34:21 +03:00
|
|
|
tags: [docker]
|
|
|
|
variables:
|
|
|
|
CLAZY_CHECKS: level0,level1,no-non-pod-global-static
|
|
|
|
TRAVIS_OS_NAME: linux
|
|
|
|
before_script:
|
2023-12-13 16:59:55 +03:00
|
|
|
- apk add asciidoctor cmake cmark-dev gst-plugins-bad-dev gst-plugins-base-dev gstreamer-dev lmdb-dev lmdbxx nlohmann-json olm-dev openssl-dev qt6-qtbase-dev qt6-qtdeclarative-dev qt6-qtmultimedia-dev qt6-qtsvg-dev qt6-qttools-dev samurai spdlog-dev xcb-util-wm-dev zlib-dev ccache curl-dev libevent-dev meson clazy clang16 gcc musl-dev git re2-dev libsecret-dev
|
2021-12-29 01:34:21 +03:00
|
|
|
script:
|
2023-05-25 23:21:53 +03:00
|
|
|
- export PATH="/usr/lib/ccache:${PATH}"
|
2021-12-29 01:34:21 +03:00
|
|
|
- export CMAKE_BUILD_PARALLEL_LEVEL=$(cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l)
|
2023-12-06 06:46:10 +03:00
|
|
|
- export CLANGXX=clang++-16
|
2021-12-29 01:34:21 +03:00
|
|
|
- cmake -GNinja -H. -Bbuild
|
|
|
|
-DCMAKE_INSTALL_PREFIX=.deps/usr
|
2023-11-20 04:38:58 +03:00
|
|
|
-DHUNTER_ENABLED=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_MTXCLIENT=ON -DUSE_BUNDLED_COEURL=ON -DUSE_BUNDLED_OLM=ON -DUSE_BUNDLED_QTKEYCHAIN=ON -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON
|
2021-12-29 01:34:21 +03:00
|
|
|
-DVOIP=OFF
|
|
|
|
-DCMAKE_BUILD_TYPE=Release
|
2022-05-14 12:09:54 +03:00
|
|
|
-DCI_BUILD=ON -DFETCHCONTENT_QUIET=OFF -DCMAKE_CXX_COMPILER=clazy
|
2021-12-29 01:34:21 +03:00
|
|
|
- cmake --build build
|
2022-10-28 01:21:58 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
2021-12-29 01:34:21 +03:00
|
|
|
cache:
|
|
|
|
key: "$CI_JOB_NAME"
|
|
|
|
paths:
|
|
|
|
- .ccache
|
|
|
|
|
2023-06-03 02:57:47 +03:00
|
|
|
# disabled until I find a qt6.5 ppa
|
|
|
|
.build-gcc11:
|
2020-05-01 02:27:27 +03:00
|
|
|
stage: build
|
2023-03-26 05:11:36 +03:00
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/ubuntu:22.04
|
2020-05-01 02:27:27 +03:00
|
|
|
tags: [docker]
|
|
|
|
variables:
|
|
|
|
TRAVIS_OS_NAME: linux
|
|
|
|
before_script:
|
|
|
|
- apt-get update
|
2022-10-28 01:21:58 +03:00
|
|
|
- apt-get -y install --no-install-suggests --no-install-recommends ca-certificates build-essential ninja-build cmake gcc make automake ccache liblmdb-dev
|
|
|
|
libssl-dev libqt5multimedia5-plugins libqt5multimediagsttools5 libqt5multimediaquick5 libqt5svg5-dev
|
|
|
|
qtmultimedia5-dev qtquickcontrols2-5-dev qttools5-dev qttools5-dev-tools qtdeclarative5-dev
|
2024-10-09 00:04:41 +03:00
|
|
|
qml-module-qtmultimedia qml-module-qtquick-controls2 qml-module-qtquick-layouts
|
2023-06-03 02:31:11 +03:00
|
|
|
qt5keychain-dev ccache libcurl4-openssl-dev libevent-dev libspdlog-dev git nlohmann-json3-dev libcmark-dev asciidoc time # libolm-dev
|
2020-05-01 02:27:27 +03:00
|
|
|
# need recommended deps for wget
|
|
|
|
- apt-get -y install wget
|
|
|
|
- /usr/sbin/update-ccache-symlinks
|
2021-06-30 13:45:41 +03:00
|
|
|
- rm -rf ../.hunter && mv .hunter ../.hunter || true
|
2020-05-01 02:27:27 +03:00
|
|
|
script:
|
2022-09-22 19:42:11 +03:00
|
|
|
- export PATH="/usr/lib/ccache:${PATH}"
|
|
|
|
- cmake -GNinja -H. -Bbuild
|
|
|
|
-DCMAKE_INSTALL_PREFIX=.deps/usr
|
|
|
|
-DHUNTER_ROOT="../.hunter"
|
2023-11-20 04:38:58 +03:00
|
|
|
-DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_LMDB=OFF -DUSE_BUNDLED_QTKEYCHAIN=OFF -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON
|
2022-09-22 19:42:11 +03:00
|
|
|
-DVOIP=OFF
|
|
|
|
-DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release
|
|
|
|
-DCI_BUILD=ON -DFETCHCONTENT_QUIET=OFF
|
|
|
|
-DJSON_ImplicitConversions=OFF
|
2023-04-11 03:33:40 +03:00
|
|
|
- /usr/bin/time cmake --build build
|
2022-09-22 19:42:11 +03:00
|
|
|
after_script:
|
|
|
|
- mv ../.hunter .hunter
|
2022-10-28 01:21:58 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
2022-09-22 19:42:11 +03:00
|
|
|
cache:
|
|
|
|
key: "$CI_JOB_NAME"
|
|
|
|
paths:
|
|
|
|
- .hunter/
|
|
|
|
- .ccache
|
|
|
|
|
2023-03-26 04:07:58 +03:00
|
|
|
build-tw:
|
|
|
|
stage: build
|
2023-03-26 05:11:36 +03:00
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/opensuse/tumbleweed
|
2023-03-26 04:07:58 +03:00
|
|
|
tags: [docker]
|
|
|
|
variables:
|
|
|
|
TRAVIS_OS_NAME: linux
|
|
|
|
before_script:
|
|
|
|
- >
|
|
|
|
zypper --non-interactive install
|
|
|
|
"appstream-glib"
|
|
|
|
"asciidoc"
|
|
|
|
"ccache"
|
|
|
|
"cmake"
|
|
|
|
"cmark-devel"
|
|
|
|
"desktop-file-utils"
|
|
|
|
"gcc-c++"
|
|
|
|
"git"
|
|
|
|
"libappstream-glib8"
|
|
|
|
"lmdb-devel"
|
|
|
|
"memory-constraints"
|
|
|
|
"ninja"
|
|
|
|
"nlohmann_json-devel"
|
|
|
|
"olm-devel"
|
|
|
|
"openssl-devel"
|
|
|
|
"pkgconfig"
|
|
|
|
"spdlog-devel"
|
|
|
|
"zlib-devel"
|
|
|
|
"cmake(re2)"
|
2023-06-03 02:44:07 +03:00
|
|
|
"cmake(Qt6Core)"
|
|
|
|
"cmake(Qt6DBus)"
|
|
|
|
"cmake(Qt6Keychain)"
|
|
|
|
"cmake(Qt6LinguistTools)"
|
|
|
|
"cmake(Qt6Multimedia)"
|
|
|
|
"cmake(Qt6QuickControls2)"
|
|
|
|
"cmake(Qt6Svg)"
|
|
|
|
"cmake(Qt6Widgets)"
|
|
|
|
"cmake(Qt6Gui)"
|
2023-10-09 22:58:21 +03:00
|
|
|
"qt6-qml-private-devel"
|
2023-11-20 05:20:26 +03:00
|
|
|
"qt6-gui-private-devel"
|
2023-03-26 04:07:58 +03:00
|
|
|
"pkgconfig(libcurl)"
|
|
|
|
"pkgconfig(libevent)"
|
|
|
|
"pkgconfig(gstreamer-webrtc-1.0)"
|
|
|
|
"pkgconfig(xcb)"
|
|
|
|
"pkgconfig(xcb-ewmh)"
|
2023-04-11 03:33:40 +03:00
|
|
|
"time"
|
2023-03-26 04:07:58 +03:00
|
|
|
script:
|
|
|
|
- export PATH="/usr/lib64/ccache:${PATH}"
|
|
|
|
- cmake -GNinja -H. -Bbuild
|
|
|
|
-DCMAKE_INSTALL_PREFIX=.deps/usr
|
2023-11-20 04:38:58 +03:00
|
|
|
-DUSE_BUNDLED_MTXCLIENT=ON -DUSE_BUNDLED_COEURL=ON -DUSE_BUNDLED_LMDBXX=ON -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON
|
2023-03-26 04:07:58 +03:00
|
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
|
|
-DCMAKE_CXX_FLAGS="-Wno-error=array-bounds"
|
|
|
|
-DCI_BUILD=ON -DFETCHCONTENT_QUIET=OFF
|
|
|
|
# temporarily disabled because of mtxclient failures
|
|
|
|
#-DJSON_ImplicitConversions=OFF
|
2023-04-11 03:33:40 +03:00
|
|
|
- /usr/bin/time cmake --build build
|
2023-03-26 04:07:58 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
|
|
|
cache:
|
|
|
|
key: "$CI_JOB_NAME"
|
|
|
|
paths:
|
|
|
|
- .ccache
|
|
|
|
|
2020-05-01 02:27:27 +03:00
|
|
|
build-macos:
|
|
|
|
stage: build
|
|
|
|
tags: [macos]
|
|
|
|
before_script:
|
2021-06-30 13:45:41 +03:00
|
|
|
- rm -rf ../.hunter && mv .hunter ../.hunter || true
|
2020-05-01 02:27:27 +03:00
|
|
|
script:
|
2022-10-28 01:21:58 +03:00
|
|
|
- ./.ci/macos/build.sh
|
2020-12-08 23:34:07 +03:00
|
|
|
after_script:
|
2021-06-30 13:45:41 +03:00
|
|
|
- mv ../.hunter .hunter
|
2022-10-28 01:21:58 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
2020-12-08 23:34:07 +03:00
|
|
|
artifacts:
|
|
|
|
paths:
|
2023-06-19 04:12:50 +03:00
|
|
|
- nheko.app # not putting this in 'artifacts' subdir because we don't want to put it on releases
|
2021-09-03 21:53:31 +03:00
|
|
|
name: nheko-${CI_COMMIT_SHORT_SHA}-macos-app
|
|
|
|
expose_as: 'macos-app'
|
|
|
|
public: false
|
2020-05-01 02:27:27 +03:00
|
|
|
cache:
|
|
|
|
key: "${CI_JOB_NAME}"
|
|
|
|
paths:
|
|
|
|
- .hunter/
|
|
|
|
- "${CCACHE_DIR}"
|
|
|
|
|
2024-02-17 22:47:30 +03:00
|
|
|
build-macos-as:
|
|
|
|
extends: build-macos
|
2024-11-17 23:29:14 +03:00
|
|
|
image: ghcr.io/cirruslabs/macos-sequoia-xcode:16.1
|
2024-02-17 22:47:30 +03:00
|
|
|
tags: [macos-tart]
|
|
|
|
before_script:
|
|
|
|
- brew bundle --file .ci/macos/Brewfile
|
2024-02-27 23:35:00 +03:00
|
|
|
- pipx install aqtinstall
|
|
|
|
- pipx ensurepath
|
|
|
|
- . ~/.zshrc
|
2024-02-17 22:47:30 +03:00
|
|
|
- mkdir $HOME/Qt
|
2024-10-08 23:37:00 +03:00
|
|
|
- aqt install-qt --outputdir $HOME/qt mac desktop 6.8 clang_64 -m qtlocation qtimageformats qtmultimedia qtpositioning qtshadertools
|
2024-02-17 22:47:30 +03:00
|
|
|
script:
|
|
|
|
- export QTPATH=($HOME/qt/6.*/macos/bin)
|
|
|
|
- export PATH="$QTPATH:${PATH}"
|
|
|
|
- ./.ci/macos/build.sh
|
|
|
|
|
2024-02-27 23:35:00 +03:00
|
|
|
.codesign-macos: &codesign_macos
|
2023-02-21 01:17:37 +03:00
|
|
|
stage: sign
|
2021-09-03 21:53:31 +03:00
|
|
|
before_script:
|
2024-02-27 23:35:00 +03:00
|
|
|
- pipx install dmgbuild
|
|
|
|
- pipx ensurepath
|
|
|
|
tags: [macos]
|
2021-09-03 21:53:31 +03:00
|
|
|
script:
|
2023-11-06 22:49:54 +03:00
|
|
|
- export QTPATH=(/Users/jdonof/Qt/6.*/macos/bin)
|
|
|
|
- export PATH=${QTPATH}:${PATH}
|
2021-09-03 21:53:31 +03:00
|
|
|
- ./.ci/macos/notarize.sh
|
|
|
|
after_script:
|
2023-03-01 00:16:24 +03:00
|
|
|
- ./.ci/upload-nightly-gitlab.sh artifacts/nheko-${CI_COMMIT_SHORT_SHA}-${PLAT}.dmg
|
2024-02-27 23:35:00 +03:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- artifacts/nheko-${CI_COMMIT_SHORT_SHA}-${PLAT}.dmg
|
|
|
|
name: nheko-${CI_COMMIT_SHORT_SHA}-macos
|
|
|
|
|
|
|
|
codesign-macos-intel:
|
|
|
|
<<: *codesign_macos
|
|
|
|
variables:
|
|
|
|
PLAT: "intel"
|
2021-09-03 21:53:31 +03:00
|
|
|
needs:
|
2022-10-28 01:21:58 +03:00
|
|
|
- job: build-macos
|
2024-02-27 23:35:00 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_COMMIT_BRANCH == "master"'
|
|
|
|
- if : $CI_COMMIT_TAG
|
|
|
|
|
|
|
|
codesign-macos-as:
|
|
|
|
<<: *codesign_macos
|
|
|
|
tags: [macos]
|
|
|
|
variables:
|
|
|
|
PLAT: "apple_silicon"
|
|
|
|
needs:
|
2024-02-17 23:13:09 +03:00
|
|
|
- job: build-macos-as
|
2024-02-27 23:35:00 +03:00
|
|
|
optional: true # optional since we want to be able to also trigger this job from cirrus ci for apple silicon builds.
|
2021-09-03 21:53:31 +03:00
|
|
|
rules:
|
2022-10-28 01:55:52 +03:00
|
|
|
- if : '$CI_PIPELINE_TRIGGERED && $CI_COMMIT_REF_PROTECTED == "true"'
|
2022-10-28 01:21:58 +03:00
|
|
|
variables:
|
2023-02-21 01:17:37 +03:00
|
|
|
PLAT: "apple_silicon"
|
2022-10-28 02:08:27 +03:00
|
|
|
- if : '$CI_COMMIT_BRANCH == "master"'
|
2021-09-03 21:53:31 +03:00
|
|
|
- if : $CI_COMMIT_TAG
|
|
|
|
|
2023-03-25 15:05:00 +03:00
|
|
|
build-flatpak:
|
2020-05-01 02:27:27 +03:00
|
|
|
stage: build
|
2024-01-06 19:14:14 +03:00
|
|
|
image:
|
|
|
|
name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/ubuntu:latest
|
|
|
|
#docker:
|
|
|
|
# platform: ${ARCH}
|
2020-05-01 02:27:27 +03:00
|
|
|
#image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master'
|
2023-03-25 15:05:00 +03:00
|
|
|
tags:
|
2024-01-06 19:14:14 +03:00
|
|
|
- docker-amd64
|
2023-03-25 15:05:00 +03:00
|
|
|
parallel:
|
|
|
|
matrix:
|
2023-06-20 00:08:32 +03:00
|
|
|
- ARCH: amd64
|
2024-01-06 19:14:14 +03:00
|
|
|
AARCH: x86_64
|
2023-06-20 00:08:32 +03:00
|
|
|
JOBS: 0
|
|
|
|
- ARCH: arm64
|
2024-01-06 19:14:14 +03:00
|
|
|
AARCH: aarch64
|
2023-06-20 03:12:18 +03:00
|
|
|
JOBS: 3
|
2020-05-01 02:27:27 +03:00
|
|
|
before_script:
|
2022-04-23 02:08:23 +03:00
|
|
|
- apt-get update && apt-get -y install flatpak-builder git python3 curl python3-aiohttp python3-tenacity gir1.2-ostree-1.0
|
2020-05-01 02:27:27 +03:00
|
|
|
- flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
2023-01-18 07:04:45 +03:00
|
|
|
# see https://github.com/flatpak/flatpak-builder/issues/495
|
|
|
|
- git config --global protocol.file.allow always
|
2020-05-01 02:27:27 +03:00
|
|
|
script:
|
|
|
|
- export VERSION=$(git describe)
|
2024-05-09 01:41:31 +03:00
|
|
|
# workaround for https://github.com/flatpak/flatpak/issues/5076
|
|
|
|
- dbus-send --system /org/freedesktop/DBus org.freedesktop.DBus || dbus-daemon --system --fork
|
2020-05-01 02:27:27 +03:00
|
|
|
- mkdir -p build-flatpak
|
|
|
|
- cd build-flatpak
|
2024-01-06 19:14:14 +03:00
|
|
|
- flatpak-builder --arch=${AARCH} --install-deps-from=flathub --user --disable-rofiles-fuse --ccache --repo=repo --default-branch=${CI_COMMIT_REF_NAME//\//_} --subject="Build of Nheko ${VERSION} `date` for ${ARCH}" app ../im.nheko.Nheko.yaml --jobs=$JOBS
|
2024-05-09 01:41:31 +03:00
|
|
|
- flatpak install --user -y flathub org.flatpak.Builder
|
|
|
|
- flatpak run --command=flatpak-builder-lint org.flatpak.Builder appstream app/files/share/app-info/xmls/im.nheko.Nheko.xml.gz
|
2024-01-06 19:14:14 +03:00
|
|
|
- flatpak --arch=${AARCH} build-bundle repo nheko-${ARCH}.flatpak im.nheko.Nheko ${CI_COMMIT_REF_NAME//\//_}
|
2020-05-01 02:27:27 +03:00
|
|
|
after_script:
|
2023-03-25 15:05:00 +03:00
|
|
|
- bash ./.ci/upload-nightly-gitlab.sh build-flatpak/nheko-${ARCH}.flatpak
|
2023-04-14 22:06:07 +03:00
|
|
|
- (cd ./scripts && ./upload-to-flatpak-repo.sh ../build-flatpak/repo) || exit_code=$?
|
2022-10-28 01:21:58 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
2020-05-01 02:27:27 +03:00
|
|
|
cache:
|
|
|
|
key: "$CI_JOB_NAME"
|
|
|
|
paths:
|
|
|
|
- build-flatpak/.flatpak-builder/
|
2023-04-14 23:00:00 +03:00
|
|
|
when: always # because the arm runner is slow and ooms often otherwise!
|
2020-05-01 02:27:27 +03:00
|
|
|
artifacts:
|
2023-03-25 15:05:00 +03:00
|
|
|
expose_as: 'flatpak'
|
2023-04-14 22:06:07 +03:00
|
|
|
paths: ['build-flatpak/nheko-${ARCH}.flatpak']
|
2023-03-25 15:05:00 +03:00
|
|
|
name: flatpak-${CI_COMMIT_REF_NAME}-${VERSION}-${ARCH}
|
2020-05-01 02:27:27 +03:00
|
|
|
|
2024-01-06 19:14:14 +03:00
|
|
|
|
2023-06-03 02:57:47 +03:00
|
|
|
# disabled until I find a qt6.5 ppa for Ubuntu
|
|
|
|
.appimage-amd64:
|
2022-10-20 07:02:46 +03:00
|
|
|
stage: build
|
2023-03-26 05:11:36 +03:00
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/ubuntu:22.04
|
2022-10-20 07:02:46 +03:00
|
|
|
tags: [docker]
|
2022-10-21 06:43:21 +03:00
|
|
|
allow_failure: true
|
2022-10-20 07:02:46 +03:00
|
|
|
before_script:
|
2023-03-25 15:05:00 +03:00
|
|
|
|
2022-10-20 07:02:46 +03:00
|
|
|
# Installing the packages needed to download and install third-party tools
|
2023-01-05 06:16:08 +03:00
|
|
|
- apt-get update && apt-get install -y software-properties-common git wget curl python3 python3-pip python3-setuptools
|
2022-10-20 07:02:46 +03:00
|
|
|
|
|
|
|
# Installing the packages needed to compile nheko and third-party tools
|
|
|
|
- apt-get -y install --no-install-suggests --no-install-recommends ca-certificates build-essential ninja-build cmake gcc make automake ccache liblmdb-dev
|
|
|
|
libssl-dev libqt5multimedia5-plugins libqt5multimediagsttools5 libqt5multimediaquick5 libqt5svg5-dev
|
|
|
|
qtmultimedia5-dev qtquickcontrols2-5-dev qttools5-dev qttools5-dev-tools qtdeclarative5-dev
|
2024-10-09 00:04:41 +03:00
|
|
|
qml-module-qtmultimedia qml-module-qtquick-controls2 qml-module-qtquick-layouts
|
2023-06-03 02:31:11 +03:00
|
|
|
qt5keychain-dev ccache libcurl4-openssl-dev libevent-dev libspdlog-dev nlohmann-json3-dev libcmark-dev asciidoc libre2-dev libgtest-dev libgl1-mesa-dev qml-module-qtquick-particles2
|
2022-10-20 07:02:46 +03:00
|
|
|
|
|
|
|
# Installing the packages needed to build AppImage
|
|
|
|
- apt-get -yq install breeze-icon-theme desktop-file-utils elfutils fakeroot file gnupg2 gtk-update-icon-cache libgdk-pixbuf2.0-dev libgdk-pixbuf2.0-0 libglib2.0-bin librsvg2-dev libyaml-dev strace zsync squashfs-tools
|
|
|
|
|
|
|
|
- wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool && \
|
|
|
|
- chmod +x /usr/local/bin/appimagetool
|
|
|
|
|
2023-01-05 05:46:00 +03:00
|
|
|
- export HOME_DIR=$(pwd)
|
|
|
|
|
2023-01-05 03:51:46 +03:00
|
|
|
# Workaround for https://github.com/AppImageCrafters/appimage-builder/issues/280
|
|
|
|
- cd /tmp
|
|
|
|
- git clone https://github.com/AppImageCrafters/appimage-builder
|
2023-01-05 05:46:00 +03:00
|
|
|
- cd appimage-builder
|
2023-01-05 03:51:46 +03:00
|
|
|
- git checkout 9733877eed75aea0fa8e9a1cd26c22d77a10aa4a
|
|
|
|
- pip3 install .
|
|
|
|
- pip3 install cffi
|
2023-01-05 05:46:00 +03:00
|
|
|
- cd $HOME_DIR
|
2022-10-20 07:02:46 +03:00
|
|
|
|
|
|
|
- /usr/sbin/update-ccache-symlinks
|
|
|
|
- rm -rf ../.hunter && mv .hunter ../.hunter || true
|
2023-03-25 15:05:00 +03:00
|
|
|
|
2022-10-20 07:02:46 +03:00
|
|
|
|
|
|
|
script:
|
|
|
|
- export PATH="/usr/local/bin/:/usr/lib/ccache:${PATH}"
|
2022-10-21 07:34:21 +03:00
|
|
|
- cmake -GNinja -H. -Bbuild
|
|
|
|
-DCMAKE_INSTALL_PREFIX=/usr
|
|
|
|
-DHUNTER_ROOT=".hunter"
|
2023-11-20 04:38:58 +03:00
|
|
|
-DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_LMDB=OFF -DUSE_BUNDLED_QTKEYCHAIN=OFF -DUSE_BUNDLED_LIBEVENT=OFF -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON
|
2022-10-21 07:34:21 +03:00
|
|
|
-DVOIP=OFF -DMAN=OFF
|
|
|
|
-DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release
|
|
|
|
-DCI_BUILD=ON -DFETCHCONTENT_QUIET=OFF
|
|
|
|
-DJSON_ImplicitConversions=OFF
|
2022-10-20 07:02:46 +03:00
|
|
|
- DESTDIR=`pwd`/AppDir ninja -C build install/local
|
|
|
|
- DESTDIR=`pwd`/AppDir ninja -C build _deps/cmark-build/src/install
|
|
|
|
- mkdir -p AppDir/usr/lib/x86_64-linux-gnu AppDir/lib/x86_64-linux-gnu
|
|
|
|
- appimage-builder --skip-test
|
|
|
|
after_script:
|
2023-02-28 21:39:11 +03:00
|
|
|
- mkdir -p artifacts && cp nheko-latest-x86_64.AppImage artifacts/
|
2022-10-20 07:02:46 +03:00
|
|
|
- bash ./.ci/upload-nightly-gitlab.sh nheko-latest-x86_64.AppImage
|
2023-01-05 07:06:26 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
2022-10-20 07:02:46 +03:00
|
|
|
artifacts:
|
|
|
|
paths:
|
2023-02-28 21:39:11 +03:00
|
|
|
- 'artifacts/nheko-latest-x86_64.AppImage'
|
2022-10-20 07:02:46 +03:00
|
|
|
expire_in: 1 week
|
|
|
|
expose_as: 'appimage-amd64'
|
|
|
|
cache:
|
|
|
|
key: "$CI_JOB_NAME"
|
|
|
|
paths:
|
|
|
|
- .hunter/
|
|
|
|
- .ccache
|
|
|
|
|
2020-05-01 02:27:27 +03:00
|
|
|
linting:
|
|
|
|
stage: build
|
2023-03-26 05:11:36 +03:00
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
|
2020-05-01 02:27:27 +03:00
|
|
|
tags: [docker]
|
|
|
|
before_script:
|
2023-10-26 22:03:36 +03:00
|
|
|
- apk update && apk add make git python3 py3-pip qt6-qtdeclarative-dev
|
2024-06-23 20:03:52 +03:00
|
|
|
# clang18 seems to mess with the emit keyword when using the `->` operator
|
|
|
|
- apk add clang17-extra-tools --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main
|
|
|
|
- export PATH="$PATH:/usr/lib/llvm17/bin/:/root/.local/bin"
|
2023-12-06 06:46:10 +03:00
|
|
|
- pip3 install --break-system-packages --user reuse
|
2020-05-01 02:27:27 +03:00
|
|
|
script:
|
|
|
|
- make lint
|
2021-03-05 02:35:15 +03:00
|
|
|
- make license
|
2022-10-28 01:21:58 +03:00
|
|
|
rules:
|
|
|
|
- if : '$CI_PIPELINE_TRIGGERED == null'
|
2020-12-25 21:14:32 +03:00
|
|
|
|
2023-02-21 01:17:37 +03:00
|
|
|
github-release:
|
|
|
|
stage: deploy
|
2023-03-26 05:11:36 +03:00
|
|
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
|
2023-02-21 01:17:37 +03:00
|
|
|
tags: [docker]
|
|
|
|
rules:
|
2023-03-01 01:44:22 +03:00
|
|
|
- if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/'
|
2023-02-28 21:39:11 +03:00
|
|
|
dependencies:
|
2023-06-03 02:57:47 +03:00
|
|
|
#- appimage-amd64 <- disabled because of missing packages
|
2023-03-25 15:05:00 +03:00
|
|
|
- build-flatpak
|
2024-02-27 23:35:00 +03:00
|
|
|
- codesign-macos-intel
|
|
|
|
- codesign-macos-as
|
2023-12-20 02:23:32 +03:00
|
|
|
- codesign-windows
|
2023-02-21 01:17:37 +03:00
|
|
|
before_script:
|
2023-02-28 01:34:31 +03:00
|
|
|
- apk update && apk add jq curl perl
|
2023-02-21 01:17:37 +03:00
|
|
|
script:
|
2023-02-21 03:16:43 +03:00
|
|
|
- ./.ci/update-github-release.sh
|