48 Commits

Author SHA1 Message Date
68f867b914 ci: use concurrency groups to allow updates to a branch to cancel in progress run of old version of that branch 2026-02-12 12:32:45 +00:00
f9d7c75492 ci: use CodeQL v4
codeQL v3 is EOL in DEC 2026
2026-02-11 12:50:08 +00:00
933617d5b1 ci: use Fancy Checkout v2 2026-01-30 09:10:08 +00:00
567766508a ci: do not force ci to rerun if a pr was marked ready for review without additional code changes 2025-11-13 10:17:24 +00:00
1b67293d9c ci: name sonar and codeql jobs after their respective tools making them easier to distinguish on the ci report 2025-11-13 10:17:24 +00:00
75922cb944 ci: Skip CodeQL when the changes will not will change the scan results 2025-11-13 10:17:24 +00:00
8d577aaa93 fix: Always rune code scanning, even if draft PR 2025-10-13 08:10:30 -04:00
47662c359e chore: Use new SonarCloud action
refactor: Rename job from 'sonarcloud-analysis' to 'analyze' in SonarCloud workflow

refactor: Reorder SonarQube scan and build wrapper installation steps in SonarCloud workflow

refactor: Update SonarQube scan step to use new action and streamline options

fix: Update SonarQube scan step to correctly pass coverage report paths and environment variables

fix: Set CPU core count to a fixed value in SonarCloud analysis workflow

refactor: Move 'Install Build Wrapper' step to the correct position in the SonarCloud analysis workflow

refactor: Remove unused Sonar Scanner environment variables from analysis workflow
2025-10-13 08:10:30 -04:00
4fb76bec41 refactor: Remove matrix strategy for CodeQL analysis and set language directly 2025-10-13 08:10:30 -04:00
5945114b7b refactor: Run SonarCloud workflow standalone and cleanup comments
fix: Prevent SonarCloud analysis from running on draft pull requests
2025-10-13 08:10:30 -04:00
559b7b5a17 chore: Standardize quotes and formatting in CI workflow 2025-10-13 08:10:30 -04:00
c04610c561 chore: use fancy-checkout v1 tag 2025-02-14 13:46:44 +00:00
6846a97eec ci: Drop Docker container builds (not enough time saved)
Add user 'build' for arch to make a package
2024-10-23 14:13:37 +01:00
01565ba9a9 ci: make sure git is installed before calling fancy-checkout
When we want to use the base runners they do not have git
   Install devscripts for debian images that will make packages
2024-10-23 14:13:37 +01:00
b2532c81b9 ci: Add install-dependencies action 2024-10-22 12:29:17 -04:00
f967b9ed46 ci: use fancy checkout action 2024-10-21 15:24:06 -04:00
5d183c98e9 ci: Bump containers for analyze workflows 2024-10-21 14:15:05 -04:00
8424ffa438 ci: Ignore .editorconfig in workflows 2024-10-15 23:08:28 +01:00
5f78d175c9 ci: Ignore paths for CodeQL Analysis 2024-10-15 22:19:02 +01:00
572cc80577 ci: Restore pull_request trigger for codeql-analysis.yml 2024-10-14 18:00:17 +01:00
e4b348c183 ci: make sure checkouts fetch tags 2024-10-14 09:22:28 -04:00
abe8146631 ci: Run CI when landing to master branch
No longer run sonar or codeQL on push to master
    They are auto run by the CI job

s
2024-10-13 20:13:04 +01:00
132e1975d3 ci: Remove cache of Python .venv as it added complexity 2024-10-11 13:24:08 +01:00
806ef46393 ci: use job summary instead of pr comment 2024-09-23 17:12:07 +01:00
ed1217e9cc Use Deskflow Name (#7519)
* Use Deskflow Name

* Remove business-oriented options from issue templates

* Remove business-oriented workflow

* Bump version to 3.0.0 (to avoid confusion with previously used version numbers 1.x & 2.x)

* Update readme to reflect new project name and goals

* Found some more "synergy" to rename

* Rename `synlib` to `app`

* Rename `syntool` to `deskflow-legacy`

* Rename `synwinhk` to `dfwhook`

* Rename dirs from synergy to deskflow

* Rename more "Synergy" files

* Rename app bundle ID

* Fixed copyright typo

* Rename only title in serial key dialog (to be moved downstream later)

* Preserve original serial key window for moving downstream

* Restore dialogs ready for moving downstream

* Rename `QDeskflowApplication` to `DeskflowApplication` (the Q is confusing)

* Restore Volker's original project name

* Fixed mimetype

* Fixed weird grammar

* Fixed (more) weird grammar

* Broken link, restoring (but we should move all links out of source)

* Broken link, restoring (but we should move all links out of source)

* Add write permission to valgrind-analysis.yml

* Restore AUR conflicts

* Apply Clang format

* Update ChangeLog

* Back out version change

---------

Co-authored-by: Nick Bolton <nick@symless.com>
2024-09-17 20:00:25 +01:00
fe16ba63fd Use GitHub vars to determine custom runner names (#7509)
* Use `WINDOWS_RUNNER` var to determine custom runner name

* Remove `if` step

* Change var to `CI_WINDOWS_RUNNER`

* Use other runner vars and fall back to free runners

* Update ChangeLog

* Use `CI_MAC_INTEL_RUNNER`

* Set Mac name depending on var

* Use `CI_LINUX_ARM_RUNNER`

* Change CI var to `CI_ENABLE_PACKAGING`

* Use exclusions to remove ARM runners when var not set

* Switch to `CI_USE_LINUX_ARM_RUNNER` var

* Exclude arm runners if `CI_USE_LINUX_ARM_RUNNER` not set

* Fixed path and actually capture `matrix` as var

* Fixed path

* Add debug step

* Kick build

* Add EOL delimiters

* Move action to composite action for reuse

* Make JSON output pretty

* Add shell prop

* Fixed output var name

* Cleanup debug

* Move debug to same step

* Kick build

* Use `needs` on other jobs

* Also depend unix on setup
2024-09-12 14:12:28 +01:00
c30fbf9002 Use .venv dir for as Python venv and cache (#7485)
* Use .venv as Python venv dir

* Update refs to Python venv dir and use action to cache and setup

* Add missing shell: bash

* Source for Python deps

* Exclude .venv from lint

* Update ChangeLog

* Add cache-key arg for init-python

* Add missing "

* Use workflow specific Python cache names

* Fixed cache key for Linux

* Use bash if to make output clearer in case of skipping.

* Clearer debug output

* Add check for cache key

* Add missing shell

* Add SonarCloud and Valgrind venv cache

* Fixed typo
2024-09-06 13:50:59 +01:00
52b4786860 Move issue checker to Python script (#7484)
* Remove unnecessary submodules recursion

* Move issue checker to Python script

* Add workflow dispatch to test issue support workflow
2024-09-06 12:21:57 +01:00
4e844bf307 Wayland support (port Red Hat libei and libportal impl) (#7449)
* Add libei and libportal

* Port libei and libportal code by Peter Hutterer and Olivier Fourdan

* Add Peter Hutterer and Olivier Fourdan to important devs list

* Improve error handling for libei and libportal builds

* Checkout libportal  tags/0.7.1

* Hack out the gi-docgen clone

* Remove new submodules in favor of using ExternalProject_Add

* Remove submodule dirs

* Use ExternalProject_Add instead of submodules

* Fixed namespace

* Hack to work around type libportal causing type conflicts

* Add log helper functions

* Use original log functions

* Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency

* Restore a few events (much more work required)

* Add TODOs for supporting multiple lib versions

* Revert "Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency"

This reverts commit 610cebb5b6a08282eee68f4424fcdbe9eaab4bf9.

* Simplify cmake config by removing builds for libei and libportal (will do this in `install_deps.py` instead)

* Remove submodules

* Remove .gitmodules

* Use meson to build subprojects

* Update copyright with Peter Hutterer's guidance

* Use meson for installing deps

* Fixed typo in tag name

* Remove submodules

* Remove old submodules

* Fixed libei name

* Defaults for pugixml and gtest depending on whether source exists in subprojects

* Ignore some subproject dirs

* Make deps OS-specific

* Move python deps to pyproject

* Only compile and install on Linux with Meson

* Revert "Move python deps to pyproject"

This reverts commit 92c8a287b8376a4d166058c85f1d6081f6fdb423.

* Add ninja to brewfile

* Add python3-attr

* Restore original coverage config

* Add ninja for meson

* Include meson in same try-except

* Fixed ninja dep name

* Move libs to correct oS

* Fixed include for wintoast

* Disable docs for libportal

* More options for libei and libportal

* Fixed option for libei

* Use ninja directly to install

* Revert "Use ninja directly to install"

This reverts commit c926d78ba483406a55acd10fb157c39e13f90b71.

* Meson install verbose

* Prints stdout/stderr

* Remove `from None`

* Remove submodules that somehow crept back in?!

* Prepend sudo if exists

* Add libei deps for all distros

* Fixed Fedora package name

* Add more deps for other distros

* Add more libs (including pugixml)

* Fix lib name

* Drop -u from pacman

* Add vala to rhel

* Make libportal optional

* Make portal link optional

* Remove example code

* Always use system pugixml

* Disable interactive apt through install_deps.py

* Revert "Disable interactive apt through install_deps.py"

This reverts commit 5bbc8fd689182447c79b81db16c961b98361a292.

* Set DEBIAN_FRONTEND in workflows

* Set DEBIAN_FRONTEND in CodeQL workflow

* Add gtest dep

* Add bundled libei dep

* Add libei dep to Arch

* Use `googletest` on openSUSE

* Add gmock dep

* Remove gtest dep from openSUSE

* Add libei on Fedora

* Bundle libei for older Linux distros

* Disable libei dep for RPM

* Also bundle symlink to .so

* Use ${CMAKE_INSTALL_LIBDIR}

* Rename libei to fix openSUSE

* List installed files

* Add libei-devel to openSUSE

* Add googletest-devel to openSUSE

* Remove manual deps (probably resolved automatically)

* Remove googletest from openSUSE (doesn't provide google mock)

* Only add Portal* if libportal found

* WIP - Partial work on using old events system :'(

* Add deps install commands for subprojects

* Solved more compile issues related to events system, threads, etc

* Fixed bad config for adding x, ei, portal sources

* Remove redundant deps

* Remove (another) redundant dep

* Fixed pacman command

* Add Ubuntu and Linux Mint libei deps

* Fixed Ubuntu and Linux Mint libei deps aliases

* Only iterate subprojects if not None

* Add rhel, rocky, and alma for libei

* Make rhel-like deps same as fedora again

* Build libportal on rhel-like

* Re-enable meson rhel-like for libportal

* Remove dbus-python

* Make libportal optional (for rhel-like)

* Handle ei event queue results

* Re-introduce libportal

* Print libei and libportal versions

* Add ei/portal args and client screen

* Switch --use args to --no

* Don't build libei/libportal on older distros as it's pointless

* Make libei and libportal optional

* Add Debian 13 runner

* Make some packages optional

* Remove subprojects

* Improve comment

* Add comment for libportal

* Improve comment

* Add Debian 13 runner

* Make optional... optional

* Change continuation stripper to remove newline and continuation char

* Make command strip more uniform

* Fixed help var syntax

* Fixed libei linking

* Ensure `kHelpNoWayland` is always defined

* Improve help message

* Fixed Debian 13 runner name

* Include sstream and use const var

* Update ChangeLog

* Remove Wayland block

* Return new timer

* Make tray icon logging verbose

* Fixed arg parser for wayland args

* Fixed init of EI screen

* Fixed lint issues

* Update README to indicate Wayland support in GNOME 46

* Add missing word

* Fixed comment positions

* Automate CI env

* Tone down debug log messages

* Add missing comma

* Remove redundant log line
2024-08-30 15:53:25 +01:00
ce3f8869e7 Reduce GUI compile time by building a GUI library (#7412)
* Call ensure_in_venv before all imports

* Create `gui` lib and link to `synergy` and test bins

* Move GUI IPC code to GUI lib

* Improve `AppConfig` members and change `minimizeOnClose` to `closeToTray`

* Group getters and setters

* Add missing `m_CloseToTray` load

* Fixed lint issue

* Add TODO comment for main window integ test

* Remove redundant comments and add override

* Remove dead code

* Update ChangeLog

* Fixed activation related compile errors

* Disable concurrency cancel jobs

* Disable fail-fast for matrix
2024-07-23 20:17:40 +01:00
47849db4d9 Run Valgrind on unit tests in CI to detect memory leaks (#7401)
* Move QApplication out of main to reduce memory impact when running individual tests

* Add --valgrind arg and colorize output when command returns non-zero exit code

* Fixed: colorama not always available

* Test multiple Qt tests

* Fixed: Windows Qt test failing due to missing QCoreApplication

* Simplify fake args for Qt

* Use --ci-env arg

* Create Valgrind analysis workflow

* Rename vars for fake args

* Parse and output valgrind summary

* Add build mode to comment

* Use GITHUB_OUTPUT to output summary

* Merge valgrind comment

* Improve comment

* Use `tee` instead of `--log-file` to also print stdout

* Improve comment about debug and release

* Simplify output writing in parse step

* Improve step name

* Correct comment about summaries

* Remove commented out code

* Better var name

* Missing copyright

* Rename global to shared

* Remove space

* Revert change to ConfigTests.cpp
2024-07-17 09:22:46 +01:00
481680d072 Run install_deps.py script when building containers weekly (#7384)
* Don't run CodeQL in PR draft

* Speed up analysis workflows

* Run install deps on Debian

* Add badge to readme

* Fixed copy and use workdir

* Use mount instead of copy

* Fixed unwanted && and changed workdir

* Split deps and deps-full

* Fixed context

* Use /app dir

* Use copy instead

* Revert to --mount and use .py (not .sh)

* Test

* Add `./scripts/install_deps.py` to all platforms

* Add missing syntax

* Fixed Python dep for OpenSUSE

* Temp remove WORKDIR for OpenSUSE

* Re-add workdir

* Increase timeout

* Delete `zypper --non-interactive remove busybox-which`

* Restore python3

* Test

* Rename to `lint-source-code`

* Beef up analysis runners

* Fixed workflow runs-on

* Use deps script

* Try pipx for gcovr

* Use containers with deps

* Add -y arg

* Install curl

* Merge deps step

* Add unzip dep

* Make Git dir safe

* Add .local/bin to env

* Improve step name

* Use `pipx ensurepath`

* Install gcovr with apt

* Use Ubuntu 22 with pip

* Update ChangeLog

* Use 16-core for Windows

* Use choco cache

* Test

* Use 8-core for Windows (picked up quicker, more available?)
2024-07-11 15:26:38 +01:00
e9557b8c19 Improve workflow triggers to ensure correct run time (#7378)
* Improve workflow triggers to ensure correct run time

* Update ChangeLog
2024-07-09 18:50:54 +01:00
444b7d764e Repair macOS CI workflow ahead of combining all CI workflows (#7350)
* Test

* Fixed Mac image names

* Version lock to macOS 14

* Change name of Homebrew Qt package

* Use CMake to build

* Remove dep already installed

* Remove version source

* Remove env var not needed

* Add homebrew path to CMake presets

* Revert "Add homebrew path to CMake presets"

This reverts commit 6b1342cdc2f412cad3e840e51e3e018dd7470d21.

* Add Qt prefix to workflow

* Upgrade CodeQL analysis to v2

* Rename SonarCloud workflow for convention

* Delete test file

* Upgrade CodeQL analysis to v3
2024-06-11 11:48:15 +01:00
d34d9eef86 Add timeout to all GitHub workflows (#7325)
* Add 10 min timeout to all workflows

* Update ChangeLog

* Set analysis jobs to 20 min timeouts

* Update ChangeLog
2024-01-11 17:44:42 +00:00
d4133d1110 Use C++20 and CMake presets (#7322)
* Create tasks.json

* Delete gui.pro

* Swallow any exceptions from stopDesktop

* Upgrade to C++20

* Update ChangeLog

* Remove old versions of Ubuntu

* Ignore VS Code workspace

* Restore original CodeQL job name

* Add problem matcher and suppress warnings from within old CMake lib

* Bump CMake min version to 3.5

* Remove useless cmake_minimum_required

* HACK: temp comment out failing code

* Bump Qt to 5.12.6

* Delete tasks.json

* Create CMakePresets.json

* Fixed Qt link error: The input line is too long.

* Fixed invalid call to map erase

* Fixed incorrect use of RegCreateKeyEx

* Add VS Code tasks.json for cmake build

* Store `desktop` in char buf before using it

* Generate compile_commands.json

* Restore indentation

* Revert "Restore indentation"

This reverts commit d9f495460f337c37e8a01d8853b317e949ea085a.

* Restore original indentation (for now)

* Create extensions.json
2024-01-11 00:26:39 +00:00
55f68ed3e9 Switch to GitHub hosted Mac M1 runner (#7321)
* Switch to macos-latest-xlarge

* Improve job names

* Update create-release.yml

* Fixed workflow job names

* Further improve workflow naming

* Remove double checkout

* Rename Mac 11 workflow

* Remove redundant word

* Update ChangeLog

* Add matrix names for macOS

* Create test

* Delete test
2024-01-09 16:21:13 +00:00
31775622f3 Fix CodeQL workflow: Failed to perl 404 Not Found (#7313)
* Try running apt-get update first

* Update ChangeLog
2024-01-09 10:06:46 +00:00
446b0a2e95 Update workflows (#7283)
* Update test actions

* Format stale issues

* Format jira issues workflow

* Format changelog check workflow

* Format build workflows

* Format create build

Also add make full action to remove core installs

* Format codeql analysis

* Add .nvmrc

* Update changelog

* Add concurrency group to CodeQL

* sudo install

* Update to windows latest

* Upgrade fedora distro list

* Add arch to runtime matrix

* Fix path for m1 builds

* Add enterprise and business flags
2023-09-25 17:26:06 +01:00
c87bedf938 SYNERGY-1061 - Add libnotify on Linux and create notifications (#7055)
* SYNERGY-1061 - Add libnotify on Linux and create notifications

* SYNERGY-1061 - Update changelog

* SYNERGY-1061 - Don't use libnotify for mac builds

* SYNERGY-1061 - Use nullptr instead of 0

* SYNERGY-1061 - Fix CodeQL libs

* SYNERGY-1061 - Remove Ubuntu 19.10 from CI

* SYNERGY-1061 - Destroy notification object when done

Co-authored-by: SerhiiGadzhilov <71632867+SerhiiGadzhilov@users.noreply.github.com>
2021-07-12 17:10:44 +03:00
2009409c14 SYNERGY-786 The system resets server name (#6961)
* SYNERGY-786 The system resets server name

* Update ChangeLog

* Update job-test-windows.yml

* Update job-test-windows.yml

* Update codeql-analysis.yml

* Update codeql-analysis.yml
2021-03-12 20:09:30 +02:00
94e04c634b cmake instead of cmake3 2020-11-10 22:41:32 +07:00
50a1172a44 with sudo 2020-11-10 22:32:57 +07:00
abb1568339 install command copied from our Dockerfile 2020-11-10 22:30:00 +07:00
a43041389e adding qt 2020-11-10 22:28:10 +07:00
25a61c9a76 sudo 2020-11-10 22:25:44 +07:00
ebcf923845 adding required packages 2020-11-10 22:23:37 +07:00
096ee5fbd8 Create codeql-analysis.yml
SYNERGY-384
2020-11-10 22:05:39 +07:00