Commit Graph

53 Commits

Author SHA1 Message Date
cos
ebb63d8113 build: add manpages
Manual pages got removed from synergy in #7361. This commit brings them
back. They are rudimentary and autogenerated using `help2man`, with only
a message about finding the documentation at the wiki page added. Not
much, but a lot better than nothing.

Package names added to Continuous Integration are based on these web pages:

    https://archlinux.org/packages/extra/x86_64/help2man/
    https://packages.debian.org/help2man
    https://packages.fedoraproject.org/pkgs/help2man/help2man/
    https://software.opensuse.org/package/help2man
2025-04-06 06:07:52 -07:00
6e9694b5d8 build: rm pkgconf from list of packges windows needs 2025-03-27 13:07:59 +00:00
201df59cb7 remove Use of libnotify and wintoast 2025-03-27 13:07:59 +00:00
fdf1df1a30 refactor: use QtXml in place of pugixml 2025-03-27 12:33:39 +00:00
7f1a234d06 refactor: remove unneed library gtkpixbuf 2025-03-26 09:13:13 +00:00
758c1044b5 ci: pin lint action to use clang-format 20.1.0 2025-03-11 10:57:51 -04:00
038c8af949 ci: use pkg list for vcpkg on ci builds 2025-02-25 04:07:10 -08:00
9f68514577 ci: use Qt install action for windows 2025-02-25 04:07:10 -08:00
f61fe00c33 ci: update lint action style 2024-12-26 15:24:02 +00:00
8b25e11f81 ci: combine lint-clang and lint-error into lint-check 2024-12-26 11:48:20 +00:00
d9727e60bc ci: remove unused init-python action 2024-12-26 11:48:20 +00:00
f8ddafe4a2 ci: use clang-format directly in lint-clang action 2024-12-26 11:48:20 +00:00
f06a789d25 build: wix generation for windows with cpack 2024-12-18 12:10:53 -05:00
3815bc6f5c ci: update winget release for new filename scheme 2024-11-08 16:23:26 +00:00
5ca9afc3f7 ci: get-version strip refs/tags/v from DESKFLOW_PACKAGE_VERSION" 2024-11-08 10:02:21 +00:00
4a769e6a7f ci: get-version action new DESKFLOW_PACKAGE_VERSION returns "continuous" when not a v* tag otherwise the tag
DESKFLOW_VERSION is the version described by git
2024-11-06 11:32:50 -05:00
37889e5659 ci: git-version-action: Always report described version 2024-11-01 11:52:45 +00:00
1880a157b6 ci: added updated winget package submission 2024-10-30 13:28:38 +00:00
b2532c81b9 ci: Add install-dependencies action 2024-10-22 12:29:17 -04:00
1b904e7c02 ci: Normalize CI step names, descriptions, etc
Also:
- Surfaced the comment about the Kitware repo so it's more visible
- Remove the hard-coded CMake version in comment which is likely to get out of sync and confuse someone
2024-10-20 02:01:58 +01:00
ba5eaa4c90 build: Require cmake 3.24
Fixes:#7739
2024-10-18 15:22:35 +01:00
2b930a7b03 ci: Remove cmake-format linter 2024-10-15 22:03:15 +01:00
f2f75ae7b9 ci: Fixed error count logic for test summary 2024-10-14 18:06:36 +01:00
3991fc0d25 ci: use git version for packages 2024-10-14 09:22:28 -04:00
10873eddcd ci: lint-clang as composite action 2024-10-13 20:13:04 +01:00
5b76982093 ci: lint-cmake as composite action 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
6bb1bcad8c chore!: Relocate commercial code downstream 2024-10-01 14:39:05 +01:00
806ef46393 ci: use job summary instead of pr comment 2024-09-23 17:12:07 +01:00
37e006b825 ci: use pull_request_target for lint workflows 2024-09-22 08:09:30 -04:00
7e98714869 ci: lint and add comment to PR on fail 2024-09-20 19:21:23 +01:00
6eacf0ec55 ci: Remove Google Drive upload, and Always upload to github 2024-09-18 15:09:32 -04: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
462c4c242c Delete all .gcda files when integtests coverage fails (#7510)
* Delete all gcda files when integtests fail

* Update ChangeLog

* Test failure

* Move test dir creation to main

* Undo retry loop which didn't solve the issue

* Use `-fprofile-update=atomic` according to gcov bug 68080
2024-09-12 16:23:36 +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
f9287cddd1 Add run-retry action to workaround integtest gcovr issue (#7507)
* Add `run-retry` composite action to workaround `integtest` `gcovr` issue

* Update ChangeLog

* Add comment explaining retry
2024-09-12 10:20:53 +01:00
0c7f87fb2f Use unique cache key for issue check support 2024-09-06 14:00:39 +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
d277c80fd0 Simplify vcpkg caching and use system vcpkg (#7473)
* Fixed OpenSSL exe dir to use tools dir

* Simplify vcpkg caching and use system vcpkg

* Only use ref for version when ref is a tag

* Add condition for event input

* Add restore keys for vcpkg cache

* Improve step name for vcpkg_installed

* Use `windows-2022` runner

* Update ChangeLog

* Revert "Use `windows-2022` runner"

This reverts commit f9e00cbcb3588e58914d2b9e73b3c5734a12d329.
2024-09-04 20:26:47 +01:00
c916dcde89 Move if from step if condition to bash syntax 2024-09-04 17:52:51 +01:00
7355ae6595 Fixed syntax for if in get-version action step 2024-09-04 17:50:03 +01:00
bcb6ee28bf Move get version logic to composite action 2024-09-04 17:43:20 +01:00
d063e08942 Also cut + char for SHORT_VERSION var used on upload (#7465)
* Also cut + when creating `SHORT_VERSION` var for upload

* Update ChangeLog
2024-09-02 16:18:34 +01:00
13bf2dace4 Only add PR comments for internal PR (#7448)
* Add write permission for issues

* Add write permission to PRs

* Update ChangeLog

* Fixed ChangeLog version

* Correct ChangeLog

* Remove GITHUB_TOKEN input

* Revert "Remove GITHUB_TOKEN input"

This reverts commit e868a8d3f4b753f758b4b2bd25aef78e4d4d62d7.

* Use COMMENT_PAT for GITHUB_TOKEN

* Use default permissions

* Only use `sticky-pull-request-comment` for internal PRs

* Update ChangeLog
2024-08-23 10:38:17 +01:00
6f411e4ab8 Restore integtests and add to CI as warning comment on failure (#7404)
* Add coverage for both targets

* Use var for test bins

* Disable cmake-format comment fiddling

* Refactor GUI source config

* Use bin var for tests

* Remove unused member

* Add integration tests to CI

* Use modern cmake args

* Use max threads for build

* Use better var name for CPU core count

* Split build and configure steps

* Combine tests into action and add a PR comment

* Fixed yaml indentation in action

* Pass GITHUB_TOKEN

* Update coverage paths for SonarCloud

* Don't ignore return codes

* Add shell

* Run Valgrind on integ tests

* Use header for tests

* Save test results in table

* Move setup step outside of action

* Change logic of creating PR comment

* Remove header formatting

* Use emojis for simplicity

* Run build wrapper in build dir

* Use default make target

* Pass secrets

* Fixed SonarScanner warnings

* Don't allow unit tests to fail

* Fixed typo

* Update sonar scanner paths

* Fixed line endings

* Use step output

* Improve exclusion glob

* Exclude files from coverage

* Restore simpler pattern

* Set temp file path

* Coverage tests

* Re-create comment at start of job

* Append table header

* Add setup action

* Checkout before action

* Re-add projectBaseDir

* Restore original sonar scanner

* Use bash syntax for if

* Remove unused `shell`

* Add missing shell for valgrind action

* Restore new sonar scanner config

* Add missing shell

* Run only MainWindowTests

* Test with big change

* More changes

* Move to correct dir

* Remove test code

* Disable broken integ tests

* Switch coverage to front of filename

* Remove filter

* Refactor status step

* Disable segfault test

* Fixed: No status showing

* Add link to workflows

* Add test code for coverage

* Revert "Add test code for coverage"

This reverts commit c42309349b64f7828f2ca89149b30c5b0f93478a.

* Get workflow run URL

* Add missing shell

* Use dynamic URL in valgrind comment

* Revert "Revert "Add test code for coverage""

This reverts commit 9cff58b7ea5c581681ae6d6660c073bd76ba99aa.

* Test with commented out code

* Reintroduce 6 lines for coverage

* Test code to pass scanner

* Test code to pass scanner (take 2)

* Simplify to 2 new lines

* Add another line

* Trim changes to only 3 lines

* Add task for all tests

* Surface warning on failure

* Simplify build-wrapper step and move settings from web UI to CI

* Add missing line delims

* Also run tests action on Windows and macOS

* Add names to action steps

* Add timeout for test steps

* Add failure warning for integ tests

* Remove space

* Disable failing test on macOS

* Disable problem matcher

* Simplify names

* Disable freezing test on Windows

* Disable failing integ test on Windows

* Add build-kill task

* Ignore kill result on Windows

* Delete test code

* Update ChangeLog

* Move timeout to workflow step
2024-07-18 17:51:06 +01:00
c8d9707857 Re-implement packaging for GitHub workflows (Linux) (#7361)
* Reorganize CMake Packaging module

* Match if statements to function order

* Cleanup root, res, and doc dirs

* Move deps to requirements.txt file

* Reorganize and format CMake files

* Rename changelog lint

* Add reccomended extension

* Workflow to lint CMake files

* Move CMake lint to script

* Try lighter dep

* Use venv

* Add --format arg

* Format all CMake files

* Convert bash script to Python

* Set CMake line ending format

* Restore formatting

* Add pyyaml dep

* Remove unused arg

* Rename config file

* Remove comment

* Repair copyrights (broken by defualt cmake-format)

* Restore 3rd party copyright

* Break up libs config into smaller macros

* Better macro name

* Load config after venv

* Make intentional noop clearer

* Only use upload step if required (make skip clearer)

* Use CPack for deb and rpm packaging

* Add upload step for Linux

* Remove cpack dep, doesn't exist

* Roll back presets version

* Fixed distro like match

* Update ChangeLog

* Legacy checkout for some distros

* All distros support v4

* Trying out newer Linux distros

* Install Git on Docker images

* Install without actions (not available before checkout)

* Delete useless action

* Install Python

* Support for Arch and OpenSUSE

* Add Arch and OpenSUSE to deps

* Name steps

* Full OpenSUSE names

* Mark Git dir safe

* Add pkgconf

* Legacy CMake for Debian 11

* Add OpenSSL to OpenSUSE

* Drop OpenSUSE Leap (no C++20 support)

* Skip packaging for Arch and OpenSUSE (for now)

* Shorten Arch/OpenSUSE names

* Clearer step name

* SImpler bootstrap

* Shell not needed

* Update apt

* Don't check return code

* Simplify python deps commands

* Add STGZ/.sh package type

* Prevent input prompt

* Only config git safe dir when needed

* Try cache v4

* Safe dir for Ubuntu

* Safe dir for Arch

* All Docker images seem to need safe dir config

* Refactor env var getters

* Make Ubuntu build extra packages

* Condense bootstep to single step

* Fixed var name

* Fixed bootstrap logic

* Simplify logic for upload condition (Windows and macOS)

* Make package/upload condition easier to understand

* Add Manjaro

* Generic names for Linux .tar.gz and .sh packages

* Add Manjaro deps

* Swap macOS matrix entries

* Add Red Hat UBI

* Remove RHEL subscription manager

* Throw on unsupported package distro

* Conditionally install pip and venv

* Remove extra pip arg

* Add config for RHEL

* Install EPEL for RHEL

* Back-out RHEL as EPEL requires subscription

* Restore Python deps logic

* Fixed bug: Packacking run twice

* Testing arm32v7 and arm64v8

* Revert "Testing arm32v7 and arm64v8"

This reverts commit cb3caf188d2b79ed083a62fc091de295f9889f3d.

* Re-add icon and shortcut file for Linux to package

* Support OpenSUSE RPM build

* Check return code

* Add `rpm-build` for OpenSUSE

* Reorg packages

* Remove busybox-which

* Add --non-interactive

* Move --non-interactive to correct position

* Experiment with makepkg

* Check and print package commands

* Make distro version optional

* Use 8 cores to build

* Default to distro name only

* Fixed bad PKGBUILD filename

* Use 4-part version for Arch

* Remove comma from conflicts

* Use .tar.gz from cwd

* Generate checksum for Arch

* Fixed file extension

* Use shell to print output

* Don't use shell

* Gaurd against bad cmd_utils.run

* Fixed bad import

* Use list command

* Fixed unable to run list commands

* Use source file name

* Simplify PKGBUILD to use make install

* Change install prefix

* Use DESTDIR

* Copy .desktop and .png to build dir

* Restore original `install(FILES...`

* Improving comments

* Fixed: makepkg runs from `src` by default

* Move error after command print

* Remove shell arg

* Package as a user instead of root (makepkg can't run as root)

* Fixed codesign runs in shell

* Allow list commands in shell on windows

* Don't use sudo on arch

* Install sudo on Arch

* Fixed typo

* Fix ownership of build directory for package user

* Improve example .env

* Change to depend on libstdc++6

* Add TODO

* Fixed Fedora version

* Remove libstdc++ deps (names vary between distros)

* Roll back to Fedora 40 and 39

* Improve comment

* Remove unneccesary default
2024-07-02 11:23:56 +01:00
bec38ab47b Re-implement packaging for GitHub workflows (Windows) (#7360)
* Add new version env vars to example

* Remove test file

* Move CMake packaging to separate module and configure OpenSSL path for Windows

* Make VS Code CMake build task default

* Generate Microsoft-friendly 4-digit version number

* Update macOS bundle .plist with build year variable

* Use correct OpenSSL path and fixed various MSI variables

* Use correct rest/dist dir for MSI

* Add version .rc file for Windows

* Use macro instead of over-complicated version query command

* Made cmd_utils more secure by defaulting to no-shell and no-print

* Add certificate management module

* Implement packaging script on Windows

* Refactor Mac packaging script to use new cmd_utils args and new cert module

* Update ChangeLog

* Change PFX env vars and add to CI

* Use import as instead of from lib to solve resolve issue

* Allow custom certificate extensions

* Check for package version when using gdrive

* Make version number required

* Add missing shell

* Add missing gdrive value in test

* Find OpenSSL dir based on openssl binary

* Only use first OpenSSL entry

* More verbose logging

* Improve logging

* Only use env var if not empty

* Fixed wrong var

* Fixed macOS GitHub artefact name

* Change filename format to match new convention
2024-06-28 09:35:18 +00:00
7103bbed6d Re-implement CI auto version increment for packaging (#7354)
* Only install Python deps with deps script

* Remove hard-coded Qt version in CI

* Add example .env

* Improve comments in .env file

* Simplify config reader and Choco CI config

* Actually return the config value

* Move deps before Qt version env call

* Remove `self.`

* Move venv ensure to main

* Fixed arg

* Move config import to function

* Move ensure_module to function

* Simplify over-complicated `Version.cmake`

* Move code to `github` module

* Use `symless/next-version-action`

* Make CMake version file even simpler

* Set version from tag

* Create release when master or release branch

* Don't run CI on master push, only release

* Fixed bac macro

* Use new version values

* Handle empty version env var

* Also strip version file value

* Remove quotes

* Add @master to action

* Read version from file

* Simplify version file read

* Fixed typo in env var

* Remove unused var

* Delete legacy build number action

* Fixed env var

* Version file read shouldn't be needed

* Remove weird and unnecessary include path

* Update ChangeLog

* Remove unused config value

* Better name for changelog check

* Delete broken Flatpak CI

* Run stale issue cron at midnight

* Update ChangeLog

* Add version input for manual run

* Print next version

* Fetch all tags

* Use more idiomatic approach

* Set to pre-release when master

* Remove unnecessary `commitish`

* Fixed wrong ID

* More specific IDs

* Reduce config needed for upload

* Only /release can be non-pre-release

* More discreet package path for gdrive

* Try without setting path

* Remove seemly unused step

* Better name for Qt version step

* Fixed bad var ref

* Better name for package dir

* Fixed bad input name

* Add missing shell

* Workflow to test upload action

* Remove fetch tags

* Use bash to cut version

* Remove name and make conditional

* Replace deprecated set-output

* Fixed env var name

* Missing dir sep char

* Add comment to test workflow

* Improve input descriptions

* Replace deprecated set-output
2024-06-26 15:46:42 +00:00
865063b77c Re-implement packaging for GitHub workflows (macOS) (#7353)
* Restore Azure macOS dist scripts

* Move steps to workflow for testing

* Always upload to GitHub

* Add codesign ID

* Echo codesign ID

* Add cert import code

* Stub file for Mac

* Self-install pyyaml and choco

* Auto add env var on Windows

* Auto add CMAKE_PREFIX_PATH to .zshrc

* Shorter var names

* Append env var instead of replace

* Only set env var if not CI

* Improve function names and print output

* Simplify Linux package command

* Support continuation sequence

* Add note about Windows

* Remove dead doc file

* Tidy up version file and move to .env format

* Use Python venv for deps

* Only use venv on Mac

* Rename package script for all OS

* Add package and dist steps, and use common upload

* Remove version source

* Fixed vars not available

* Fixed python paths

* Use RuntimeError which is sufficient

* Remove dead code

* Add extras command for Linux

* Always install deps on Linux

* Move Python deps to CI

* More env bootstrapping, ugh

* Forgot to return!

* Simplify code

* Use shell

* Simplify command

* Skip sudo if no sudo

* Update package managers

* Fixed Fedora package name

* Tidy up commands

* Use newer upload artifact

* Strip don't trim!

* Check for version file and reduce log verbosity

* Remove CentOS 7.6

* Print more info about return code and log more to stderr

* Install certificate on macOS

* Better errors for no env var

* Implement Mac signing and notary

* Move dmgbuild load

* Simplify notary

* Rename dist files to same as dest

* Fixed paths for dist

* Move checked-in dist files to res (dist is meant to be a temp dir)

* Fixed Mac path in CMake

* Fixed dmg path

* Format Python

* Ignore import warnings and move function

* Fixed cmake paths

* Add missing env var secrets

* Remove extensions from GH upload

* Make deps.yml general purpose config

* Add cspell config

* Pass codesign ID

* Use new general config file

* Sign bundle on Mac

* Move imports to functions

* Escape chars in docs

* Fixed config key accessor

* Change module import order

* Move file to tmp dir in workflow dir

* Persist temp dir

* Add tmp dir to ignore

* Flush stdio before running process

* Trying quotes around env values

* Add codesigning certificate validation for Mac signing

* Revert "Trying quotes around env values"

This reverts commit 0dd741e8cd6fde21e69d4fb871e835a5f4fa1a23.

* Extract codesign verify

* Fixed version number

* Ignore .cache dir

* Fix macro name

* Package name with version number and arch

* Improve package function readability

* Change order of vars

* Testing upload to GDrive

* Add missing return code

* Use positional args and declare error

* Use machine instead of arch and remove build from filename

* Remove redundant build jobs

* Replace massively over-complicated `build_version.py` script

* Move version info to env module

* Use version info script

* Fixed: too many values to unpack

* Chmod version script

* Use shebang

* Don't check return code on Linux

* Fixed function name

* Convert to GitHub specific script

* Env vars must be after configure

* Fixed Windows env var command

* Remove && from deps command so it's not conditional

* Fixed position of set env

* Change order of env script

* Only upload when not draft

* Test

* Tweak config

* Fixed if condition

* Don't package in draft (Windows and Linux)
2024-06-24 09:36:30 +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