diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 19ce069f..501976dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -45,7 +45,9 @@ codesign-windows: stage: sign image: win10-base tags: [libvirt,powershell] - resource_group: windows_signingA + rules: + - if : '$CI_PIPELINE_TRIGGERED == null && $CI_COMMIT_REF_PROTECTED == "true"' + resource_group: windows_signing environment: name: windows_signing #variables: @@ -53,16 +55,58 @@ codesign-windows: script: - Get-ChildItem -Path Cert:CurrentUser\My - ./.ci/windows/sign.bat + - mkdir -p artifacts + - mv nheko.msix artifacts/nheko.msix needs: - job: build-windows - rules: - - if : '$CI_COMMIT_REF_PROTECTED == "true"' artifacts: paths: - - nheko.msix + - artifacts/nheko.msix name: nheko-${CI_COMMIT_SHORT_SHA}-windows expose_as: 'windows-app' +upload-windows: + stage: deploy + image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest + tags: [docker] + rules: + - 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"' + variables: + GIT_STRATEGY: none + PACKAGE_NAME: "windows-nightly" + before_script: + - apk add curl unzip + script: + - export VERSION=$(unzip -p artifacts/nheko.msix AppxManifest.xml | sed -n 's/.* Version="\([0-9.]*\)".*/\1/p') + - '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"' + needs: + - job: codesign-windows + +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') + - sed "s/0.11.3.4/${LATEST_WINDOWS_NIGHTLY}/g" -i resources/NhekoNightly.appinstaller + - mkdir public + - mv resources/NhekoNightly.appinstaller public + needs: + - job: upload-windows + optional: true + artifacts: false + artifacts: + paths: + - public + build-clazy: stage: build image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest @@ -375,6 +419,7 @@ github-release: #- appimage-amd64 <- disabled because of missing packages - build-flatpak - codesign-macos + - codesign-windows before_script: - apk update && apk add jq curl perl script: diff --git a/im.nheko.Nheko.yaml b/im.nheko.Nheko.yaml index 2b315692..f8da2a22 100644 --- a/im.nheko.Nheko.yaml +++ b/im.nheko.Nheko.yaml @@ -178,15 +178,17 @@ modules: - buildsystem: meson name: gstreamer sources: - - commit: ecd471f5ea4645102b206a43d863f0f0fe7d04ec - tag: 1.22.3 + - commit: 4d13eddc8b6d3f42ba44682ba42048acf170547f + tag: 1.22.7 type: git url: https://gitlab.freedesktop.org/gstreamer/gstreamer.git config-opts: - --auto-features=disabled - -Dgood=enabled - -Dgst-plugins-good:qt6=enabled - #- -Dqt6=enabled <- not available on 1.22 + - -Dgst-plugins-good:qt-egl=enabled + - -Dgst-plugins-good:qt-wayland=enabled + - -Dgst-plugins-good:qt-x11=enabled - -Dbase=enabled - -Dgst-plugins-base:gl=enabled - -Dgst-plugins-base:gl_platform=glx,egl diff --git a/resources/AppxManifest.xml b/resources/AppxManifest.xml index 417d0229..978fda8c 100644 --- a/resources/AppxManifest.xml +++ b/resources/AppxManifest.xml @@ -16,7 +16,7 @@ - + diff --git a/resources/NhekoNightly.appinstaller b/resources/NhekoNightly.appinstaller new file mode 100644 index 00000000..bd94f5d9 --- /dev/null +++ b/resources/NhekoNightly.appinstaller @@ -0,0 +1,10 @@ + + + + + + + true + + + diff --git a/src/timeline/InputBar.cpp b/src/timeline/InputBar.cpp index ba1d7880..7d5e8ba3 100644 --- a/src/timeline/InputBar.cpp +++ b/src/timeline/InputBar.cpp @@ -464,11 +464,11 @@ InputBar::message(const QString &msg, MarkdownOverride useMarkdown, bool rainbow text.body = replaceMatrixToMarkdownLink(msg.trimmed()).toStdString(); // Don't send formatted_body, when we don't need to - // Specifically, if it includes no html tag and no newlines (which behave differently in - // formatted bodies). Probably we forgot something, so this might need to expand at some - // point. + // Specifically, if it includes no html tag and no newlines or + // backslashes (which behave differently in formatted bodies). Probably + // we forgot something, so this might need to expand at some point. if (text.formatted_body.find('<') == std::string::npos && - text.body.find('\n') == std::string::npos) + text.body.find('\n') == std::string::npos && text.body.find('\\') == std::string::npos) text.formatted_body = ""; else text.format = "org.matrix.custom.html"; @@ -883,7 +883,7 @@ InputBar::command(const QString &command, QString args) err->matrix_error.error); }); } else if (command == QLatin1String("shrug")) { - message("¯\\_(ツ)_/¯" + (args.isEmpty() ? QLatin1String("") : " " + args)); + message("¯\\\\\\_(ツ)\\_/¯" + (args.isEmpty() ? QLatin1String("") : " " + args)); } else if (command == QLatin1String("fliptable")) { message(QStringLiteral("(╯°□°)╯︵ ┻━┻")); } else if (command == QLatin1String("unfliptable")) {