Commit graph

426 commits

Author SHA1 Message Date
sithlord48
33b14ccc5c ci: cache vcpkg
Fixes:7712
2024-10-18 17:29:54 +01:00
sithlord48
ba5eaa4c90 build: Require cmake 3.24
Fixes:#7739
2024-10-18 15:22:35 +01:00
sithlord48
99251ad867 chore: Update feature request template
For a feature request we only want to know about the proposed feature
2024-10-17 21:39:48 +01:00
sithlord48
52f616a15d ci: vcpkg cache working 2024-10-16 20:58:42 +01:00
sithlord48
da6b3942ae build: Linux packages with proper names 2024-10-16 16:51:24 +01:00
Nick Bolton
8424ffa438 ci: Ignore .editorconfig in workflows 2024-10-15 23:08:28 +01:00
Nick Bolton
78d086369b ci: Always run PR comments job 2024-10-15 22:49:35 +01:00
Nick Bolton
5f78d175c9 ci: Ignore paths for CodeQL Analysis 2024-10-15 22:19:02 +01:00
Nick Bolton
2b930a7b03 ci: Remove cmake-format linter 2024-10-15 22:03:15 +01:00
Nick Bolton
28c8aae9af ci: More consistent code style in ci.yml 2024-10-15 19:14:06 +01:00
Nick Bolton
3cc43bf1ce docs: Add other build type to bug report template 2024-10-15 18:44:34 +01:00
sithlord48
6af331bd93 ci: clearer and cleaner steps 2024-10-15 14:17:33 +01:00
Nick Bolton
f2f75ae7b9 ci: Fixed error count logic for test summary 2024-10-14 18:06:36 +01:00
Nick Bolton
572cc80577 ci: Restore pull_request trigger for codeql-analysis.yml 2024-10-14 18:00:17 +01:00
Nick Bolton
3525b8a686 docs: Fixed minor typos in the bug report template 2024-10-14 17:06:24 +01:00
sithlord48
26926a4a6a ci: run on tags v* and not on cron or dispatch 2024-10-14 09:22:28 -04:00
sithlord48
3991fc0d25 ci: use git version for packages 2024-10-14 09:22:28 -04:00
sithlord48
e4b348c183 ci: make sure checkouts fetch tags 2024-10-14 09:22:28 -04:00
sithlord48
181c34e662 ci: attempt releases 2024-10-13 17:51:18 -04:00
sithlord48
ccfff7015a ci: working vcpkg cache 2024-10-13 16:15:33 -04:00
Nick Bolton
6b641a432a ci: Remove dead test-dist-upload.yml file 2024-10-13 15:42:23 -04:00
sithlord48
10873eddcd ci: lint-clang as composite action 2024-10-13 20:13:04 +01:00
sithlord48
5b76982093 ci: lint-cmake as composite action 2024-10-13 20:13:04 +01:00
sithlord48
c498e148b8 ci: do not auto create version tags on push to master 2024-10-13 20:13:04 +01:00
sithlord48
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
sithlord48
ce35234f18 chore: Add issue not about mac os signing 2024-10-13 14:02:34 -04:00
sithlord48
c5247a15c7 chore: add note about known wayland issues in bug_template 2024-10-13 14:01:05 -04:00
sithlord48
9604a9e747 ci: test results skipped if dependant skipped 2024-10-13 11:49:56 -04:00
Nicolas Fella
fe67b92cdc build: Drop warnings_as_errors
This should not be used

It results in build failures when using different environments/toolchains that produce new warnings

This can especially happen on compiler or dependency updates
2024-10-12 22:13:50 -04:00
sithlord48
14dfcb672d ci: Allow ci to skip running if only specific files are changed 2024-10-12 20:37:17 -04:00
sithlord48
6c3b2b3e6b ci: Linting must pass before other jobs are run 2024-10-12 20:37:17 -04:00
Nicolas Fella
f6b9a5f204 build: Don't force CMAKE_INSTALL_PREFIX
This should only ever be set from the outside, not the project itself

Distribution build systems will set it to the right value

This breaks installing it to a custom if desired
2024-10-12 12:59:04 -04:00
sithlord48
02c5418b9e build(cmake): Require SSL 1.1.1 or higher
Link using OpenSSL provided alises
  Remove Windows specifc check ssl macro for simpler check
2024-10-12 14:23:56 +01:00
Nick Bolton
132e1975d3 ci: Remove cache of Python .venv as it added complexity 2024-10-11 13:24:08 +01:00
Nick Bolton
44bd69fdc8 ci: use sonarsource/sonarcloud-github-c-cpp 2024-10-01 18:41:40 +01:00
Nick Bolton
6bb1bcad8c chore!: Relocate commercial code downstream 2024-10-01 14:39:05 +01:00
James Spurin
1003e07854 feat: Update onMouseMoveSecondary to allow offset adjustments 2024-09-24 18:53:30 +01:00
Nick Bolton
2e2523d6b8 ci: lookup pr number by head sha for ci comment 2024-09-23 20:03:37 +01:00
Nick Bolton
806ef46393 ci: use job summary instead of pr comment 2024-09-23 17:12:07 +01:00
Nick Bolton
bd75e0a874 ci: use braces block for formatting in ci comment 2024-09-23 01:44:13 +01:00
Nick Bolton
1d90e0780a ci: fixed syntax error in ci comment workflow 2024-09-23 01:28:40 +01:00
Nick Bolton
b1da95757b ci: handle files with same name in ci comment workflow 2024-09-23 01:24:00 +01:00
Nick Bolton
1bfdb8f707 ci: check for summaries dir before building message 2024-09-22 23:32:17 +01:00
Nick Bolton
c362e5d8fb ci: use github.event.workflow_run.id for CI summary comment 2024-09-22 20:48:02 +01:00
Nick Bolton
5aaea5b8ed ci: add link back to workflow summary in pr comment 2024-09-22 20:41:31 +01:00
Nick Bolton
1d6b79741e ci: add pr comment based on ci result 2024-09-22 19:31:01 +01:00
Nick Bolton
dafd20e182 ci: remove restore-keys for vcpkg and use local bootstrap 2024-09-22 10:50:27 -04:00
Nick Bolton
37e006b825 ci: use pull_request_target for lint workflows 2024-09-22 08:09:30 -04:00
Nick Bolton
2cf9da5ad5 ci: delete ChangeLog because it's redundant 2024-09-21 22:30:29 +01:00
Nick Bolton
3300e67913 ci: give write permission for PR comments 2024-09-21 07:24:39 -04:00
Nick Bolton
fcd0d63d7c docs: add build type to bug report form 2024-09-21 07:02:56 -04:00
Nick Bolton
7e98714869 ci: lint and add comment to PR on fail 2024-09-20 19:21:23 +01:00
Nick Bolton
2d1f3496b7 ci: option to skip changelog lint in PR 2024-09-20 07:30:57 -04:00
Nick Bolton
6eacf0ec55 ci: Remove Google Drive upload, and Always upload to github 2024-09-18 15:09:32 -04:00
Nick Bolton
0220a481f2
Fix broken CI caused by renaming project to Deskflow (#7522)
* Bump CI

* Use 2 core arm runner

* Update ChangeLog

* Fixed filename `deskflowc.exe.manifest`

* Remove  .vscode/settings.json file

* Restore test values to make tests work (test values should not contain app name)

* Fixed syntax error in Windows watchdog

* Add `sonar-project.properties` file

* Change default core count

* Add default package prefix

* Default product name in CMake

* Tweak ChangeLog
2024-09-18 10:56:29 -04:00
Chris Rizzitello
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
Nick Bolton
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
Nick Bolton
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
Nick Bolton
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
Nick Bolton
06d8787d56
Remove static link of libportal from Debian Trixie CI (#7505)
* Remove static link to libportal now that Debian 13 has 0.8.0

* Update ChangeLog

* Update ChangeLog
2024-09-11 21:06:51 +01:00
Nick Bolton
837bd3704b
Option to static link libportal ahead of 0.8.x distribution (#7498)
* Dirty dirty hack so that beta testers can try Wayland on server ahead of libportal 0.8.x distribution

* Install deps for subprojects that are added with --meson-no-system

* Use `RuntimeError`

* Remove `packagefiles` from `.gitignore`

* Add ignored packagefiles

* Improve comment

* Update ChangeLog
2024-09-09 17:12:20 +01:00
Nick Bolton
adeb7aa009
Cache vcpkg local app dir to restore built OpenSSL (#7496)
* Cache `${{ env.LOCALAPPDATA }}/vcpkg`

* Update ChangeLog
2024-09-09 13:08:35 +01:00
Nick Bolton
95dc894b84
Use 16-CPU CI runner for FreeBSD (#7495)
* Use 16 core runner for FreeBSD

* Upgrade of Ubuntu version for runs-on

* Update ChangeLog

* Build with `-j16` on FreeBSD
2024-09-09 12:19:12 +01:00
Nick Bolton
c8f102883a Add 'unanswered' tag to new issues 2024-09-06 21:20:03 +01:00
Nick Bolton
735fb0e8c4
Add --config-toml arg for TOML config file (#7489)
* Add CLI11 lib

* Use newer arg parser for to add --config-toml arg

* Fix bug where coco doesn't run in elevated console

* Improve macro names

* Fixed incorrect macro name

* Improve coverage for TOML config load

* Allow legacy args and use toml config arg in launch.json

* Update ChangeLog

* Fail coverage workflow on integ test fail

* Remove line break
2024-09-06 21:03:19 +01:00
Nick Bolton
1c71b4f0f3 Fixed typo in issue template related to discussion 2024-09-06 14:56:38 +01:00
Nick Bolton
3458545ae4 Merge branch 'master' of github.com:symless/synergy 2024-09-06 14:55:31 +01:00
Nick Bolton
683635566d Reframe answer related to discussions on issue templates 2024-09-06 14:55:29 +01:00
Nick Bolton
c2dd232564
Move issue check logic to GitHub script (#7486)
* Fixed new line strip regex

* Move issue check logic to GitHub script

* Fixed variable name issueBody
2024-09-06 14:49:13 +01:00
Nick Bolton
6b3b65be35 Strip out newlines in issue comment (not markdown) 2024-09-06 14:20:40 +01:00
Nick Bolton
0fe0532355 Use ISSUE_NUMBER env var for check support workflow 2024-09-06 14:17:31 +01:00
Nick Bolton
3963e77cd2 Fixed typo in COMMENT_BODY env var 2024-09-06 14:13:36 +01:00
Nick Bolton
b74eb9bfb4 Strip spaces from comment body for better formatting 2024-09-06 14:13:13 +01:00
Nick Bolton
e23722c07a Move issue body and number to env key in root of job 2024-09-06 14:03:51 +01:00
Nick Bolton
f0a5a9ce99 Match workflow name for cache key in issue-check-support 2024-09-06 14:01:11 +01:00
Nick Bolton
0c7f87fb2f Use unique cache key for issue check support 2024-09-06 14:00:39 +01:00
Nick Bolton
7208c7e901 Add missing init-python on issue check venv action 2024-09-06 13:58:52 +01:00
Nick Bolton
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
Nick Bolton
e7a6cc932e Restore missing with: in SonarCloud workflow 2024-09-06 13:49:01 +01:00
Nick Bolton
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
Nick Bolton
2ad15cf3dc For support ticket related issue: Remove GITHUB_OUTPUT redirect and further improve matching 2024-09-06 11:12:09 +01:00
Nick Bolton
05ca97a202 Improve matching for support ticket related issue 2024-09-06 11:09:24 +01:00
Nick Bolton
de3b308677 Fixed workflow to check new issues if tech support needed 2024-09-06 11:02:55 +01:00
Nick Bolton
d1192fe02f
Add new issue workflow (#7480) 2024-09-06 10:53:26 +01:00
Nick Bolton
ad330d7fba
FreeBSD GitHub runner with vmactions/freebsd-vm@v1 (#7474)
* Add experimental BSD job to CI

* Remove container

* cd into ` synergy/synergy/`

* Change unix to bsd

* Use only run param and not prepare

* Install python3 on FreeBSD

* Add missing command to prepare param

* Add all the Unix-like BSD-derived

* Use latest python3 for NetBSD and DragonFly BSD

* Use env for cmd and correct prepare commands

* Add deps config for unix-like

* Install Python deps on Unix-like

* Return matching entry in `get_unix_like_os`

* Add cmake dep for cmakelang py module

* Back out Unix-like support in `install_deps.py` (Python is tricky on BSD)

* Back out BSD from config

* Create install_deps.sh script for BSD-derived

* Use .sh script instead of .py for BSD-derived

* Add other case and fixed syntax

* Use /usr/bin/env

* Use more available sh

* Restore debian command

* Fixed syntax error

* Remove prepare args

* Remove space

* Use which instead of command

* Add libX11 dep

* Add other BSD-derivatives

* Set CMAKE_REQUIRED_INCLUDES

* Fixed bad separator for CMAKE_REQUIRED_INCLUDES

* Add debug lines

* Set CMAKE_REQUIRED_LIBRARIES to lib names

* use CMAKE_REQUIRED_QUIET

* Set CMAKE_REQUIRED_FLAGS for BSD

* Message for BSD packaging

* Make PKG_CONFIG_FOUND optional

* Move debug to all OS

* Remove solaris for now, too many missing packages

* Add missing  override to XWindowsScreen.h

* Add PC_GLIB_INCLUDE_DIRS

* Fixed glib include

* Make libnotify optional

* Set CMAKE_LIBRARY_PATH

* Only run tests if toml++ available

* Also run integ tests

* Remove DragonFly (C++ version too old)

* Fixed NetBSD command

* Aww sucks. Well, I tried. Patches welcome

* Update ChangeLog

* Fixed README for OpenBSD, NetBSD, DragonFly BSD, Solaris

* Add missing case for SunOS

* Drop redundant virtual specifiers

* Print libs on FreeBSD

* Restore link_directories

* Beef up to ubuntu-24.04-16-core-x64, export QT_QPA_PLATFORM, improve comment

* Remove debug line

* Simplify debug text

* Restore ubuntu-latest

* Fixed really stupid typo

* Beef up with ubuntu-22.04-16-core-x64

* Revert "Beef up with ubuntu-22.04-16-core-x64"

This reverts commit 3de5773ef6c6eea99b93d3ee8448b0b95dc00dde.

* Add missing name

* Make .sh file primary deps file

* Tweaked deps instruction label
2024-09-06 10:03:34 +01:00
Nick Bolton
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
Nick Bolton
d9c5902442 Cache Python env on Windows CI 2024-09-04 20:23:15 +01:00
Nick Bolton
e4ed4a2f26 Trigger CI workflow with github.rest.actions 2024-09-04 18:18:26 +01:00
Nick Bolton
963980b392 Run CI workflow on 'Create tag' workflow run 2024-09-04 18:14:05 +01:00
Nick Bolton
1d6d60d2dd Create tag with push to trigger workflow 2024-09-04 18:10:26 +01:00
Nick Bolton
c916dcde89 Move if from step if condition to bash syntax 2024-09-04 17:52:51 +01:00
Nick Bolton
7355ae6595 Fixed syntax for if in get-version action step 2024-09-04 17:50:03 +01:00
Nick Bolton
bcb6ee28bf Move get version logic to composite action 2024-09-04 17:43:20 +01:00
Nick Bolton
22e3d8763f Remove version field requirement for workflow dispatch 2024-09-04 17:27:22 +01:00
Nick Bolton
7132c5990b Don't build on master push 2024-09-04 17:23:51 +01:00
Nick Bolton
20343f9a16 Upload on tag push and not when master 2024-09-04 17:10:42 +01:00
Nick Bolton
2a469e5690 Run CI on master push 2024-09-04 16:57:34 +01:00
Nick Bolton
94d9baca2d
Use vcpkg to manage openssl dep instead of choco (#7471)
* Brighter red

* Move openssl to vcpkg.exe

* Revert "Move openssl to vcpkg.exe"

This reverts commit 36f39d916f3cc2c8ce779442bd964bd6af7edd69.

* Add missing copyright

* Fix copyright dates

* Remove openssl from choco

* Install openssl using vcpkg

* Add deps for vcpkg

* Add missing vcpkg manifest

* Revert "Add deps for vcpkg"

This reverts commit c266d29c2cec4474a181b89c2f759b62ed67db10.

* Make vcpkg Windows only

* Improve comment about vcpkg

* Remove unused var

* Add caching for vcpkg

* Reorg launch.json

* Remove static env var for openssl on Windows

* Add openssl dep to vcpkg

* Update ChangeLog

* Add OpenSSL include dir

* Remove pointless choco cache

* Remove vcpkg downloads

* Remove wixtoolset for CI already installed on GitHub runners

* Use `Remove-Item` instead of `rmdir`

* Move cmake and ninja out of choco

* Revert "Move cmake and ninja out of choco (winget not supported on GitHub runner)"

This reverts commit a65c02d275e58705b8cd86fac72629284191d737.

* Move cmake and ninja to winget and don't use choco on CI

* Remove winget action

* Use scoop on CI and winget locally

* Use `seanmiddleditch/gha-setup-ninja` for Ninja

* Improve comments

* Install Ninja before deps

* Use system vcpkg if installed

* Revert "Use system vcpkg if installed"

This reverts commit 4ddee1c66e8cace458c047285a70d2f98cf9d82c.

* Add comment about why we're using local vcpkg

* Fixed comment about VC++

* Improve config comments

* Delete dead code

* Improve comment about vcpkg/buildtrees
2024-09-04 16:52:37 +01:00
Nick Bolton
4b4bfc4bc8 Use github.rest.git instead of github.git 2024-09-02 16:21:54 +01:00
Nick Bolton
03fbc709a0 Fixed name for create-tag.yml and fixed typo 2024-09-02 16:19:55 +01:00
Nick Bolton
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
Nick Bolton
996fb5c21b
Only create tags (not releases) when merging PRs into master (#7462)
* Create a tag instead of a release

* Rename script to 'tags' (not 'release')
2024-09-02 14:14:02 +01:00
Nick Bolton
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
Nick Bolton
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
Nick Bolton
7984535d38
Refactored core process management and IPC client (#7425)
* Also ignore `command_pre` for Fedora itself

* Improve warning message

* Fixed layout issues on main window

* Restore fusion theme for Windows dark mode

* Further correct main window layout

* Set CWD for launch on Windows to same dir as .env

* Use signals for tray icon instead of callback

* Reduce complexity for setting tray icon

* Further reduce tray icon complexity

* Reduce tray retry time

* Fixed tray not showing on macOS

* Refactor function names

* Move tray icon to lib

* Decouple server connection class

* Move server connection to lib

* Move client config to lib

* Remove redundant forward declarations

* Fixed some namespaces in the new lib

* Move core process code to new class

* Improve member names on new process class

* Remove copy/pasta code

* Move OSX helpers to lib

* Add .mm to lib config

* Fixed copyright

* Improve reliability of log line handling

* Fixed TLS certificate generate bugs

* Remove client list

* Refactor core process handling to fix various problems

* Fixed process/connection status bugs

* Fixed function signature issue on macOS

* Fixed override warnings

* Fixed string format warning

* Save `wasStarted` state and use that instead

* Use only filename in dialog

* Use lambda for simple slot

* Scroll to bottom if at bottome

* Set value based on position before text added and set horizontal scroll too

* Add 1px tollerance for Linux

* Simplify start/stop mutex

* Always stop service on restart

* Increase scroll bottom threshold to 2

* Log warning instead of critical

* Fixed long-standing dir CD-up hack

* Remove include

* Remove include

* Fixed rogue dumbisense includes

* Account for optional distro_like

* Add QAction include to solve incomplete type

* Remove rogue #pragma

* Static cast log value

* Solve event queue delete warning

* Fixed integ test on Windows 10

* Reduce enum verbosity

* Use static instance instead of global

* Make function const

* Use unique_ptr instead of new and delete, and made some functions const

* Fixed smart pointer use

* Fixed variable shadowing

* Fixed wrong use of using

* Fixed missing namespace using

* Simplify TLS error handling

* Improve UX around certificate errors and success

* Decouple app config from core process through interface

* First iteration of core process test

* Mark dtor as override

* Rename attach launch entry

* Add TODO

* Create proxy for process

* Move IPC client to deps

* Fixed warnings

* Reorganize new GUI lib dir structure

* Update includes to reflect new paths

* Reorg GUI tests

* Abstract IPC client

* Refactor about screen

* Fixed .ui warnings

* Remove redundant include

* Fixed typo

* Fixed typos and add spelling

* Fixed misleading function name

* Improve comment

* Improve code coverage for core process

* Remove noisy log line

* Make global const

* Use default dtor

* Use vector instead of new

* Make ctor explicit

* Make ctor explicit (2)

* Use enum class

* Fixed bad enum

* Stub out core tool

* Stub out dir operation

* Extract byte functions

* Add missing return path

* Simplify byte/int functions

* Fix truncation

* Use ctor member assignment

* Fixed segfault in process proxy

* Fixed print warning

* Make function const

* Cleanup header

* Fixed missing name

* Update ChangeLog

* Make more functions const
2024-08-07 15:05:18 +01:00
Nick Bolton
ef29c090af
Add Alma Linux and Rocky Linux runners (#7424)
* Add RHEL image

* Use Fedora config for RHEL

* Use script to activate RHEL

* Mirror mount args

* Set RHEL username and password

* Pass RHEL build args

* Pass RHEL login by file

* Use RHEL 9 for newer Python

* Source RHEL login

* Add case for RHEL Python deps

* Add `--deactivate`

* Do PIP user install

* Upgrade PIP

* Add RHEL config

* Introduce 'command-pre'

* Inherit fedora deps for RHEL and only strip sudo on non-empty command

* Add RHEL 9 runner

* Use RHEL 9 codeready

* Add AlmaLinux EL9

* Add support for RHEL-like

* Add EPEL for Alma

* Enable power tools on Alma

* Fix missing semicolon

* Install EPEL before power tools

* Inherit Alma deps from RHEL

* Switch from `powertools` to `crb`

* Abandon RHEL for now (no Qt 6 support)

* Don't pass required when getting distro key

* Correct key name for Rocky Linux

* Add Repology badge

* Restore original `build-push-action`

* Exclude unsupported Repology entries

* Update ChangeLog
2024-08-04 20:04:40 +01:00
Nick Bolton
157fe818d8
Refactor local/global save/load and show dev thanks message (#7423)
* WIP: Show dev thanks message

* Improve error messages and guard license code

* Print core command

* Allow license tests when licensing disabled by default

* Don't check invalid serial key

* Fixed typo

* Add error checking

* Use shared ptr instead of static deps

* Actually save and load the setting

* Add dev thanks vars to CI

* Show thanks message after connected

* Refactor hack-job of local/global save/load to remove coupling and use Qt events system

* Simplify config loading

* Overloads for optionals

* Fixed global config scope not loaded

* Save message state before showing to avoid multiple messages

* Update ChangeLog

* Fixed lint warnings

* Make function const

* Reduce verbosity

* Remove dead code, show version on start, tidy up lint warnings

* Make product name code safer

* Connect on enter press

* Only show server specific wording when on server

* Add emit commands

* Log info and error

* Remove deaad code

* Remove test member

* Disable start context menu action unless usable

* Show more relvant connect message

* Fixed close to tray not applied, and simplified restart core logic

* Remove redundant include
2024-08-03 01:17:29 +01:00
Nick Bolton
9315b089c8
Improve UI design and reduce over-use of #ifdef (#7413)
* Rename `LicenseManager` to `License`

* Rename `LicenseManager` to `License`

* Move License class to gui lib

* Rename license related classes

* Refactor serial key parsing

* Don't fail fast on containers

* Move licensed product name from config to code

* Fixed formatting

* Update code coverage generator and fixed args

* WIP: Converting license to chrono

* WIP: Fixed compile errors, tests failing

* Fixed all serial key and license tests

* Disable verbose logging

* Add missing </p>

* Add missing include

* Revert code coverage config

* Handle parse errors

* Move more classes into the new gui lib and improve license/serial object ownership

* WIP: Fixing signal/slots in MainWindow

* Fixed slot for about to quit

* Rename manual slots to solve auto-connection warnings

* Fixed logging issue

* By default, don't close to tray

* Add .env support and furthe refactor license code, also fixed some copyright dates

* Remove test code

* Fixed memory error in .env parser and refactor more licensing display code

* Fixed color inconsistencies

* Fixed link colors and made log view expand

* Disable server components rather than hiding

* Reset years of blind UI layout fiddling

* Fixed clean Qt task

* Only show notice when time limited

* Fixed main window layout

* Show connected clients

* Set 15 spacing

* Auto connect on start

* More intentional screen size

* Fixed tests related to license

* Tests for expiry notifications

* Reorg tests and remove death test

* Update gtest

* Tests for dotenv parser

* Test command process

* What the heck is that doing there?

* Merge constants headers

* Fixed magic includes

* Remove helper function

* Remove comment

* Remove extern decl

* Update ChangeLog
2024-07-26 23:53:52 +01:00
Nick Bolton
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
Nick Bolton
a117b2ca93 Update .github/ISSUE_TEMPLATE/config.yml 2024-07-23 11:44:19 +01:00
Nick Bolton
a9cfd405e0 Add .github/ISSUE_TEMPLATE/config.yml file 2024-07-23 11:42:38 +01:00
Nick Bolton
f81901f633
Migrate scripts from requirements.txt to pyproject.toml (#7406)
* Migrate from `requirements.txt` to `pyproject.toml`

* Lower Python to 3.9 for GitHub Windows runner

* Increase timeout for valgrind

* Update ChangeLog
2024-07-19 10:35:10 +01:00
Nick Bolton
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
Nick Bolton
6399feb324
Solve low hanging reliability and maintainability issues (#7403)
* Add missing atom ctor init

* Init members with `None`

* Use in-class init and delcare getter inside if init

* Temp revert of changes ahead of unit test repair

* Move IPC header to shared, restore X clipboard test, simplify test cmake, new X clipboard unit test

* Suppress sonar for undefs

* Remove base dir include

* Revert "Temp revert of changes ahead of unit test repair"

This reverts commit 8f84b6ea5d5828f1be1362de3809279bcacb8cc8.

* Use new accessor

* Use default dtor

* Beef up to 32 core

* Use enum class

* Make IPC protocol headers const at all levels

* Use enum class and const char for better type safety

* Use unique_ptr for m_clipboard

* Use `-j` instead of `-j8` to utilize full parallelism

* Increase thread count for sonar-scanner

* Use 32 threads

* Use in-class init for IpcClientProxy members

* Use const instead of #define

* Remove ctor member inits

* Use unique_ptr on win

* Implement temp bin dir for windows with more robust post-build copy

* Fixed missing iostream

* Add warning about copy errors

* Only run clean-gcda on Linux

* Use in-class init for IPC mutex

* Do no-op on Windows

* Hide clean-gcda task

* Move flakey test to integtests

* Delete dead code

* Test

* Temp disable post_config_all

* Disable post config step

* Revert "Disable post config step"

This reverts commit 2f956a7714ba9bedacd4b39d4ae00940c3d565d6.

* Revert "Temp disable post_config_all"

This reverts commit b44ed72e44f838bfe1309f6e9672d2f1c6f21b75.

* Restore -j8

* Simplify error handling

* Use const for test port

* Remove python check

* Update changelog

* Fixed order

* Fixed bad issue number

* Fixed bin copy source path

* Remove redundant except
2024-07-18 08:04:39 +01:00
Nick Bolton
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
Nick Bolton
cbecaa8bce Merge branch 'master' of github.com:symless/synergy-core 2024-07-16 19:38:37 +01:00
Nick Bolton
c89eba0a23 Make release workflow conditional 2024-07-16 19:38:33 +01:00
Nick Bolton
a068a69750
Create stub workflow for Valgrind (#7402) 2024-07-16 17:38:49 +01:00
Nick Bolton
f82c6716bb Empty options to force selection with defaults 2024-07-16 14:26:51 +01:00
Nick Bolton
ab0c0e3e86 Add empty option for user-type dropdown 2024-07-16 14:24:46 +01:00
Nick Bolton
5b12b16732 Remove default selections on issue templates 2024-07-16 14:23:10 +01:00
Nick Bolton
4056c79a3f
Add feature request issue template (#7399) 2024-07-16 14:21:59 +01:00
Nick Bolton
50d29edd05
Solve SonarCloud security hotspots and bugs (#7383)
* Test: allocLockCursorToScreenInfo_withState_setsState

* Merge remote-tracking branch 'origin/master' into S1-1717-sonarcloud-issues

* Remove header wrappers for gmock/gtest

* Convenience wrapper script for tests

* Use `std::copy` instead of `strcpy`

* Use `std::ranges::copy` instead of `stdcpy`

* Delete dead code

* Add guitests VS Code config and test wrapper

* Revert "Delete dead code"

This reverts commit aa40f5cd35a22b4b69acfd1876aceea053088060.

* Build guitests with CMake

* Run all tests

* Don't use --gtest_filter for Qt tests

* Undo skip for GUI tests

* Coverage for `IpcClient::sendCommand`

* Remove provider and proxy

* Use lamda for StreamProvider to reduce boilerplate

* Restore version checker tests

* Remove activation souces

* Tasks for current/all tests

* Change command for tasks

* Mock QNetworkAccessManager

* Create core app to satisfy Qt assertations

* Use `std::copy` instead of `std::ranges::copy`

* Remove integtests

* Merge guitests into unittests

* Use std::string::length

* Remove include (resolves to root)

* Fix memory leaks

* Disable sigsegv tests

* Fixed formatting

* Remove guitests from CI

* New MainWindowTests

* Passing test for MainWindowTests

* Use alternative to strlen in MainWindow::checkSecureSocket

* Passing test for Log::print

* Fixed dtor call order

* Fixed var name typo

* Use proxy instead of `#define protected public`

* Add args test for log

* Add license ctor

* Fixed log test for release

* Add error log test

* Init qt with -platform offscreen

* Back-out initQt function

* Use QT_QPA_PLATFORM

* Try QT_QPA_PLATFORM=offscreen

* Use more readable env node

* Set QT_QPA_PLATFORM in CI and CodeQL

* Remove env not needed

* Modernize Log::print

* Calculate the length of the format string fmt during the initial scan loop

* More direct and efficient alterative to `strlen`

* Fixed major maint issues in AppConfig

* New clang and cmake rules

* Set `max_pargs_hwrap` to 4

* Undo clang format for now

* Fix missing `Setting::`

* Fixed missing `m_S` on Windows

* Re-add accidental dep resolution (fix later)

* Fixed missing buffer position increment

* Turn on errors

* Fixed tests and improve error message

* Fixed segfault on log refactor

* Extract log time to function

* Copyright date

* Update ChangeLog
2024-07-16 08:30:35 +00:00
Nick Bolton
783afbe1c0
Use list format for bug report template placeholders (#7397) 2024-07-16 09:22:41 +01:00
Nick Bolton
a5c75b3a18
Improve bug report ticket description and other labels (#7396) 2024-07-16 09:19:46 +01:00
Nick Bolton
fc1bcdcedf
Change bug report labels and add validation (#7395) 2024-07-16 09:10:34 +01:00
Nick Bolton
1b3b8f9865
Add description to bug report issue template (#7394) 2024-07-16 09:07:28 +01:00
Nick Bolton
75848a4597
Fixed options and add validations (#7393)
* Replace old bug report form

* Add placeholders

* Fixed options and add validations
2024-07-16 09:06:07 +01:00
Nick Bolton
6c1a0bc954
Use YAML for bug report issue template (#7392)
* Replace old bug report form

* Add placeholders
2024-07-16 08:58:17 +01:00
Nick Bolton
4d3f0c820e
Correct Qt macOS target and drop Core5Compat lib (#7389)
* Remove Core5Compat

* Remove hack

* Update ChangeLog

* Revert "Remove hack"

This reverts commit dda3ad05818d346fdfcbb41944b9e731a4b547c0.

* Set `add_compile_definitions` for Qt

* Revert "Set `add_compile_definitions` for Qt"

This reverts commit 0258d2d226a76081068f4e565855f37993953be5.

* Use arm64_monterey bottle

* Revert "Use arm64_monterey bottle"

This reverts commit a46d743dc6883c925e2328b9628231189cb34367.

* Use aqt to install Qt on Mac

* Append env var instead of overwrite

* Fixed filename

* Use GITHUB_PATH

* Restore original GITHUB_ENV logic

* Use newer cache action

* Update ChangeLog
2024-07-15 12:57:39 +01:00
Nick Bolton
4fa863c3ea
Use GitHub ARM64 runner for Linux (#7390)
* Use Ubuntu ARM64 runner

* Add Windows 11 8-core ARM64 and use 8-core for Linux

* Add bootstrap step

* Install and use choco

* Add git to path

* Split bootstrap steps

* Merge bootstrap steps

* Export path manually

* Install Python in bootstrap step

* Add Python to path

* Add choco to path

* Add C:\Python312\Scripts to path

* Back out ARM64 runner (perhaps only suitable for running programs)

* Use ARM64 for build containers
2024-07-14 23:20:32 +01:00
Nick Bolton
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
Nick Bolton
a6ac8a1946
Set macOS min version to macOS 12.0 (#7381)
* Set macOS min version to 12

* Update ChangeLog
2024-07-10 15:22:16 +00:00
Nick Bolton
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
Nick Bolton
22d8ee9cd0
Automated weekly build of Docker images for Linux runners (#7376)
* Change tag name

* Change tag name

* Add ARM64 containers and Fedora 40

* Use dnf for Fedora

* Dist upgrade on Debian

* Upgrade and clean on Fedora

* Add name

* Fixed typo and use platform in Dockerfile

* Use matrix instead for arch

* Use config dir in matrix

* Fixed wrong var

* Specify base image in workflow

* Re-add platform

* Use slim images

* Run on Buildjet

* Use new images

* Add comment

* Remove QEMU (not needed because of Buildjet)

* Finish Dockerfile for Arch and OpenSUSE

* Use new containers

* Use correct config dir names

* Fixed config for Manjaro

* Missing zypper arg

* Clean Arch and OpenSUSE

* Update ChangeLog

* Elaborate on comment
2024-07-09 18:08:09 +01:00
Nick Bolton
0e07af6cf3
Automated weekly build of Docker images for Linux runners (#7375)
* Initial container builder for Debian 12 image

* Use containing dir as context
2024-07-08 21:29:54 +01:00
Nick Bolton
6e82f64ec8
Upgrade from Qt5 to Qt6 for more modern UI (#7373)
* Use Qt 6

* Fixed some Qt6 deps

* Fixed minor compile issues for Qt6

* Drop Debian 11 support (no Qt6 lib)

* Move Debian to top

* Delete expensive to maintain code that yeilds low UX gain

* Unpack all values

* Use %lld instead of %u

* Minor UI improvements

* Add deps for Fedora, OpenSUSE, and Arch

* Fixed CMake lint issue

* Use package name from build.opensuse.org

* Used `zypper search` to find correct package names
2024-07-08 15:37:51 +01:00
Nick Bolton
d1abddde84
Add Git SHA to about screen and --version (#7372)
* Add Git SHA to about screen

* Update ChangeLog

* Fixed formatting

* Use `GIT_SHA` for Git SHA

* Add `GIT_SHA` env var

* Use env var `GIT_SHA`

* Shorten the Git SHA to 8 chars for readability

* Shorten Git SHA to 8 chars

* Increase Linux timeout (Fedora 39 is always slow at deps)

* Update ChangeLog

* Revert "Update ChangeLog"

This reverts commit ac52777763571e9512e1c9b73b5cac23658d5ed2.
2024-07-08 11:40:22 +01:00
Nick Bolton
bfaea34291
Re-implement packaging for GitHub workflows (Linux ARM) (#7369)
* Debian 12 ARM64 target

* Fixed comments

* Don't check for server name when exiting because of args

* Exit with success when using `--version`, `--help`, etc

* Test Linux installation

* Add Windows ARM builder

* Extract magic string

* Use proper arch name

* Swap arch order

* Fixed test

* Bootstrap Windows ARM runner

* Install winget

* Conditionally install winget

* Winget take 2

* Use shell: pwsh

* Try `powershell`

* Try cmd to install winget

* Only build distro once

* Use enum for clarity

* Remove shell

* Back out Windows ARM testing

* Attempt arch matrix

* Add Fedora arm64

* Label all -amd64

* Special case for zypper

* Fixed bad var name on Windows

* Add missing /bin ignore

* Disable GPG check on OpenSUSE

* Fixed typo

* Update ChangeLog
2024-07-08 09:32:55 +00:00
Nick Bolton
51c7bcb138
Override stage of not release (#7371) 2024-07-07 22:16:45 +01:00
Nick Bolton
f85d1b8289
Rename action (#7370) 2024-07-07 20:22:20 +01:00
Nick Bolton
4690b61551
Simplify compile options and use comprehensive edition logic (#7365)
* Simplify options

* Use more sensible edition logic

* Use set instead of option for string

* Improve macro for product name

* Add tests launch config

* Restore unregistered state

* Reorganize cases for title and improve function name

* Code coverage on by default

* Fixed copyright

* Improve code coverage and test readability

* Separate build-all and build-coverage

* Back out coverage on by default

* Fixed bad var in cmake

* More verbose logging for coverage

* Restore tasks

* Restore preLaunchTask

* Use default comparitor

* Move temp files to temp dir

* Add tasks for tests

* Support for wstring

* Upgrade sonar-scanner to 6 on Debian 12

* Use modern pip install

* Install python for sonarcloud

* Use Ubuntu and install deps

* Fixed sonar-scanner URL

* Fix exported dir

* Persist build dir

* Don't use venv for pip install gcovr

* Fixed another path

* Update actions/checkout to v4 for SonarCloud analysis workflow

* Add coverage task

* Improve coverage for SerialKeyEdition.cpp

* Enable licensing for builds

* Fixed invalid macro names, missing arguments, etc

* Fixed more copyright

* Fixed incorrect use of "enterprise"

* Fixed incorrect use of "business"

* Experiment with environment

* Make package prefix variable

* Add environment matrix to all OS

* Improve job names

* Make job names easier to read

* Roll back environment matrix (too much noise)

* Fixed: default should override required

* Refactor CI with vars

* Fixed arg for env.get_env
2024-07-04 10:14:54 +01:00
Nick Bolton
37bb0f989e
Format all source with Clang and introduce lint workflow (#7364)
* Lint script with CLang format

* Use `-i` for `clang-format` and add more logging for lint scripts

* Apply LLVM CLang formatting

* Fixed comment

* Update ChangeLog

* Fixed bad return code logic

* Improve output for linters

* Fixed re-used var in clang lint

* Fixed include order for tests and use `#if 0` instead of commenting out code

* Use full Clang format dump

* Dump Ubuntu Clang format

* Dump Clang format from Debian

* Dumped from: clang-format version 18.1.8

* Revert "Dumped from: clang-format version 18.1.8"

This reverts commit b9bbda2995bb0b4b65baf14afebb0361ec64e644.

* Remove BasedOnStyle

* Restore base Clang format file

* Use clang-format from pip

* Apply Clang format 18 style

* Add clang_format deps

* Fixed include order issues and *some* accidental includes
2024-07-02 20:07:06 +01:00
Nick Bolton
f2cc964b3d
Schedule CI daily at 5am to detect code rot early (#7363)
* Schedule CI daily at 5am

* Package but don't upload when cron

* Update ChangeLog

* Comment explaining CI use
2024-07-02 16:36:54 +01:00
Nick Bolton
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
Nick Bolton
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
Nick Bolton
ab57fac2a7
Use org token instead of regular token to create releases (#7358) 2024-06-26 17:29:57 +01:00
Nick Bolton
7fa31f9c54
Match release branch with release/** pattern (#7357)
* Test

* Fixed release branch match
2024-06-26 17:04:00 +01:00
Nick Bolton
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
Nick Bolton
17c64e2f3a
Workflow to test dist dir (#7356) 2024-06-26 14:13:53 +01:00
Nick Bolton
ab3ea56980
Add workflow_dispatch for release workflow (#7355) 2024-06-25 22:24:22 +01:00
Nick Bolton
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
Nick Bolton
8f13ce8e7a
Combine GitHub workflows to reduce config duplication (#7352)
* First attempt merging CI test

* Remove older versions of Linux

* Blend Docker containers and GitHub runners

* Test older configure/build method for Windows

* Re-add old Windows workflow

* Use legacy CMake method for more distros

* Rename image to container

* Reduce config dupe

* Fixed logic for configure

* Use newer build command for Windows

* Move full container name back to matrix (yuk)

* Move GIT_COMMIT to common env

* Use more specific Windows runner name

* Fine-grained timeouts for Mac

* Fixed unit test path for Windows

* Rename CI workflow

* Beginning of macOS dist action

* Update ChangeLog

* More triggers for CI workflow

* Attempt to fix test path on Windows

* Move dist-macos action

* Add dir command for testing

* Remove `test-` job prefix

* Bump msbuild action and try modern cmake again

* Composite actions don't support defaults... grr

* Remove dir diag command

* Trying to use Choco again for VS dep

* Don't skip ninja

* Flush stdout

* Add cl to PATH

* Trying out ilammy/msvc-dev-cmd@v1

* Use @v3 checkout for older Linux

* Fixed comment typo

* Remove dead scripts

* Improve env var names

* Run strip from build dir

* Split out deps script to lib files

* Remove stub action

* Remove dist step for now
2024-06-19 17:48:18 +01:00
Nick Bolton
d0a4c3d7a0
Use deps script to make life easier for contribs (#7351)
* Use deps script to make life easier for contribs

* Make readme more developer friendly

* YAML file to describe Linux deps

* Silent fail for yaml module (Python 3.6+)

* Move Qt install to deps script

* Update readme to add Windows command

* Fixed Linux package name

* Simplify env vars for workflow

* Exclude scripts from SonarCloud

* Move all deps config to .yml file

* Fixed exclude glob

* Simplify quickstart

* Fixed macOS deps config key name

* Fixed bug in Linux config read

* Use backslash for consistency

* Change SonarCloud path to /build/

* Fixed dep name

* Exclude scripts in CMake coverage

* Move script coverage exclusion to online config

* Use try/except instead of checking return value

* Fixed comment typo
2024-06-14 15:32:47 +00:00
Nick Bolton
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
Nick Bolton
ef31d3e21b
Script to install deps (Windows only for now) (#7331)
* Script to install deps (Windows only for now)

* Set runner temp dir for choco

* Add missing os import

* Modify for CI

* Update CL

* Improve logging

* Update workflow to install deps via script

* Explain 3.1.1 version lock
2024-01-19 14:44:50 +00:00
Nick Bolton
29e66773c8
Reset error state before calling Process32Next (#7328)
* Convenience script to install daemon

* Use -p when re-launching with runas to keep window open

* Align new script with PEP 8

* Add more args for flexibility

* Add task to reinstall Windows daemon

* Fixed mistake in continue message

* Close task window after running script

* Reset error state before calling Process32Next

* Update CL

* Increase Windows CI timeout

* Bump timeout again due to choco
2024-01-16 17:16:26 +00:00
Nick Bolton
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
Nick Bolton
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
Nick Bolton
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
Nick Bolton
69e77dcb54
Move build_version.py script to scripts dir (#7320)
* Delete job-build-raspberry-pi.yaml

* Update ChangeLog

* Delete job-test-raspberry-pi.yaml

* Restore CI/build_version.py

* Move build_version.py to scripts dir

* Update refs to build_version.py

* Update ChangeLog
2024-01-09 12:55:55 +00:00
Nick Bolton
fe8f405fe8
Remove workflows for slow self-hosted RPi runners (#7319)
* Delete job-build-raspberry-pi.yaml

* Update ChangeLog

* Delete job-test-raspberry-pi.yaml
2024-01-09 12:21:06 +00:00
Nick Bolton
daf9292c80
Remove Azure Pipelines config entirely (#7318)
* Remove Azure Pipelines

* Update ChangeLog
2024-01-09 12:13:11 +00:00
Nick Bolton
4c1d5daa00
Bump sonar-scanner-cli to 5.0.1.3006 (#7317)
* Bump sonar-scanner-cli to 5.0.1.3006

* Update ChangeLog
2024-01-09 11:46:01 +00:00
Nick Bolton
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
Nick Bolton
1ca66588c5
Delete unused Jira workflow (#7312) 2024-01-08 12:50:24 +00:00
Kyle Bloom
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
Kyle Bloom
33968c6dd3
Change name of flatpak uploaded to server (#7263) 2023-05-17 09:44:08 +01:00
Serhii Hadzhilov
c6e838bb00
Fix backward compatibility for m1 build (#7262)
* Fix backward compatibility for m1 build

* Update ChangeLog
2023-05-09 11:33:37 +03:00
Nick Bolton
9cedc57dc3
Create stale-issues.yml 2022-10-15 11:03:10 +01:00
Kyle Bloom
14513c8c48
Update macos workflow to use macos-latest (#7210)
* fix: Update macos workflow to use macos-latest

* chore: Update changelog
2022-08-04 09:43:31 +01:00
Kyle Bloom
0d7bc0dce9
Change flatpak name (#7187)
* Change flatpak name

* Update changelog

* Remove PR build

* Remove SYNERGY_DEB_VERSION creation
2022-06-08 15:59:50 +03:00
Kyle Bloom
1b346c4cb0 Change action condition to release 2022-05-27 15:56:27 +01:00
Daun Chung
cae96765cb
flatpack workflow to build flatpak installer (#7177)
* flatpack workflow to build flatpak installer

* rename flatpak build name

* changing job-build-flatpak, disabling other job-tests meanwhile

* update apt before attempting to install flatpak

* changing install command

* adding logs for installing flatpak

* running installation as root

* running installation as root - for each command

* attempting to use github action to build flatpak

* fix typo on name

* typo in image

* adding privilege option and fixing manifest path

* changing manifest-path

* uploading bundle to artifact

* changing synergy.desktop for flatpak build

* adding versioning to flatpak bundle and upload to bin storage on release

* version info fix

* running build_version as root

* adding __w to safe directory

* adding git config safe directory command to builder

* testing which part of version info is breaking

* falling back to local build of flatpak

* running only the normal synergy

* investigating build_version.py

* investigating build_version.py 2

* investigating build_version.py 3

* checking if raspberry pi build is working correctly

* get subprocess error

* printing subprocess error

* disabling try catch in version

* running git rev-list --tags command

* running git rev-list --tags command

* disabling other tests

* trying to run extra step in gitaction

* trying to remove extra step in gitaction

* fixing issues with subprocess

* try to run git rev-list

* test

* ignore versioning

* run original flatpak

* testing various build options

* attempting to run flatpak through raspberry

* raspberry flatpak installation 1

* fixing tabs in flatpak build

* trying apt over apt-get

* removing sudo from build process

* removing apt update

* trying to build without versioning

* testing build without publish

* testing

* adding fetch-depth in checkout

* checking out with v3

* getting flatpak to run without github action

* using ubuntu20.04 container

* attempting to add __w into safe directory

* adding dependencies installation

* remove sudo from installing dependencies

* removing all sudo commands from flatpak install

* moving all the apt-get installs in dependencies job

* add yes response to flatpak platform & sdk install

* proper install command for flatpak builder

* flathub input yes to flatpak builder install

* check if flatpak folder exist

* adding flatpak using apt-get

* add privilege option in docker

* removing flatpak finalize build / remove com.symless.Synergy

* listing flatpak dir

* testing to publish flatpak

* checking the directory for flatpak file

* correcting the path for scp action

* attempting to create a specific file in scp

* flatpak workflow cleanup

* cleaning up

* adding changelog info and changing flatpak patch files location

* fedora add safe directory

* creating business/enterprise YAML to replace based on env var

* build test

* disabling tests

* fixing YAML struct

* disabling replace action to see if its causing issue

* changing cp command without backslash

* checking if condition syntax

* uncommenting error at build_version

* fixing file location

* cleaning up actions

* changing workkflow to use .yml file without copying

* finalizing git action

* Remove git safe directory

* Add final line to missing files

* Move safe directory workaround

* Minor cleanup for flatpak files

Co-authored-by: Daun Chung <daunchung@github.com>
Co-authored-by: Kyle Bloom <kyle@symless.com>
2022-05-27 15:42:01 +01:00
Kyle Bloom
bd82dc39e9
Add fedora 36 build (#7181)
* Add fedora 36 build

* Update changelog

* Add fedora 36 test
2022-05-27 15:39:42 +01:00
Serhii Hadzhilov
c92ac1a71e
SYNERGY1-1497 Fix memory leak on macOS (#7178)
* SYNERGY1-1497 Fix memory leak on macOS

* Update ChangeLog

* Fix Fedora build
2022-05-24 12:36:06 +01:00
Kyle Bloom
d3ab180df6
Show all Raspberry PI builds (#7174)
* Try adding full matrix

* Remove PR build

* Update changelog

* Reset indentation
2022-05-19 11:57:13 +03:00
Kyle Bloom
bb31d11deb
Fix build issue with raspberry pi's (#7173)
* Minor change to deb-changelog

* Fix bash commands

* Update changelog

* Add comment explaining pass
2022-05-18 10:57:29 +03:00
Kyle Bloom
5711a5346f
Add changelogs to deb's (#7167)
* Add changelogs to deb's

* Update changelog

* Fix code smell
2022-05-12 09:27:59 +01:00
Kyle Bloom
a12cc175eb
Synergy3-1505 Add new distros to CI (#7162)
* Add new distros to CI

* Update testing workflows

* Checkout repo recursively

* Update changelog

* Github issue
2022-05-03 20:04:21 +03:00
Kyle Bloom
90847d064a
Brew bundle (#7161)
* use brew bundle to cleanly install macos deps

* use brew bundle to install deps

* Update changelog

* Update changelog for #7144

Co-authored-by: Stephen <stephengroat@users.noreply.github.com>
2022-04-28 18:53:00 +03:00
Serhii Hadzhilov
8ea7d05d85
SYNERGY3-203 Build fix (#7160)
* SYNERGY3-203 Fix azure pipelines

* SYNERGY3-203 Fix raspberry pi build

* SYNERGY3-203 Fix Linux build

* SYNERGY3-203 Update ChangeLog.txt
2022-04-26 18:48:43 +03:00
Serhii Hadzhilov
8be2e89c81
fix: SYNERGY3-203 Synergy 1 business (#7157)
* SYNERGY3-203 Add link to helpdesk

* SYNERGY3-203 Add a new cmake option

* SYNERGY3-203 Validate business key

* SYNERGY3-203 Check license during start

* SYNERGY3-203 Update windows title

* SYNERGY3-203 Unify license errors

* SYNERGY3-203 Fix code smell

* SYNERGY3-203 Update Azure scripts

* SYNERGY3-203 Update GitHub workflows

* SYNERGY3-203 Add UT

* SYNERGY3-203 Add UT
2022-04-26 15:11:09 +03:00
Kyle Bloom
a3ade33295
Change binary store (#7156)
* Update azure pipelines

* Update mac and pi jobs

* Remove unnessesary workflows

* test pi's

* Update change log

* Fix local file location

* Remove pull_request trigger
2022-04-21 19:33:32 +03:00
Kyle Bloom
9eb536a50a
SYNERGY3-150 Fix unstable build for windows core (#7148)
* SYNERGY3-150 Minor change to core build script

* SYNERGY3-150 Missing line continuation

* SYNERGY3-150 Re-enable flags

* SYNERGY-150 Disable on PR

* SYNERGY3-150 Changelog
2022-03-01 10:13:31 +00:00
Nick Bolton
4427e98e0f
Update feature_request.md 2021-10-27 14:19:57 +01:00
Nick Bolton
9e33ace5f5
Update bug_report.md 2021-10-27 14:19:25 +01:00
Nick Bolton
26719ca6bf
Update bug_report.md 2021-10-27 14:18:36 +01:00
Nick Bolton
206a217d77
Create FUNDING.yml 2021-10-27 14:17:25 +01:00
Kyle Bloom
5e2d355a3a
SYNERGY-1254 Fix core builds (#7103)
* SYNERGY-1254 Fix core builds

* Changelog

* Uncomment debian9

* Fix artifact name

* Fix workflow name

* Remove -j1 flag

* Turn off pull_request operations

* Add qt for ubuntu core builds

* Switch to python3-yaml

* Update ubuntu

* Cmake automatically manages include_directories

* Remove older fedora versions

* Add DBus to platform to ensure dependancy

* Change to synergy-vcpkg

* build macos

* Remove pull_request

* Add centos 8

* Change container

* Test core builds

* Remove setup

* Remove VCPKG_INSTALLATION_ROOT

* change checkout to use submodules

* Setup newer version of git for ubuntu

* Remove git requirement

* Remove pull_request event
2021-10-21 10:25:57 +03:00
Kyle Bloom
b932ccc46b
Add missing build_version for m1 mac (#7109)
* Add missing build_version for m1 mac

* Add ChangeLog
2021-10-19 12:25:57 +03:00
Kyle Bloom
19cd184146
Add M1 workflow (#7098)
* Add m1 workflow

* Set shell envirnonment to arm64

* ChangeLog

* Change dmg name

* Change back to parameter passing

* Send to binaries server

* Remove pull and push triggers

* Add m1 to mac tests

* Set correct shell for m1 mac

* Remove 10.13 build for core

* Core build for macos

* Always generate version file

* Remove qt from core builds

* Exclude tests from core build

* move synergyd and coverage option

* Aws core builds to only build core

* Windows upload release folder

* Use static openssl for core builds

* Fix destination for pi core builds

* Only upload core builds with release

* Rename variable step

* Remove matrix

* Test windows build changes

* Remove unnecessary cmake option

* Remove test
2021-10-01 10:55:44 +03:00
Daun Chung
cd7d8df7a6
SYNERGY-1043 (#7084)
* testing github action on ubuntu to load binary to s3

* changing the job in linux back to original

* Delete .secrets

* adding logs to changelog

* renaming secrets keys

* separating s3 upload action

* attaching aws upload calls to pull request, for testing

* fixing the keys for s3

* changing name of upload actions

* fixing the indentation issue

* enabling ubuntu 18

* enabling all the older versions of linux

* removing curl + nodejs installation

* ubuntu using 1 thread to make

* running make -j1 on job-test-linux-ubuntu

* adding s3-uploader for mac and windows

* renaming upload jobs

* fixing paths of mac and windows

* setting windows directory

* setting up upload for raspberry pi os

* windows upload without backslashes

* windows upload to use correct repo

* adding mac_1013 + updating path for raspberry

* attempting to create github action to support x32 and x64

* adding quotes around comparison

* logging aqt install command

* attempting to log on windows

* splitting the set-output procedure

* setting ids to setting qt variables

* merging setup step into one

* test

* removing syntax issue

* logging build

* commenting out x32

* disabling x64

* adding force tag to openssl installation

* adding open_ssl_dir for x32 and x64

* syntax issue

* testing mac-1013 upload on push

* openssl test

* fix indentation issue

* keeping the OPEN_SSL_DIR and uninstall -> reinstall openssl

* indentation fix

* disabling x86 and keeping x64 for windows

* changing the upload trigger to when release created

* cleaning up yml files

* testing the last changes to yml files

* changing uploads to trigger on release, updating changelog

* removing unused env var from mac 10.13

* updating linux ubuntu test to use -j1 only when ubuntu16.04 is running

* removing enterprise matrix from mac-10.13

Co-authored-by: Daun Chung <daunchung@github.com>
2021-09-14 14:42:46 +03:00
Igor Sikachyna
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
SerhiiGadzhilov
c58b69dfad
SYNERGY-972 Add Fedora 34 (#7035)
* SYNERGY-972 Add Fedora 34

* Update ChangeLog
2021-06-11 13:33:25 +01:00
SerhiiGadzhilov
f0940d2926
SYNERGY-1026 Add Ubuntu 21.04 (#7037)
* SYNERGY-1026 Add Ubuntu 21.04

* Update ChangeLog
2021-06-10 16:14:30 +03:00
Serhii Hadzhilov
9c438a48b4 SYNERGY-957 Install openssl 2021-06-01 13:09:29 +03:00
Serhii Hadzhilov
252734bc7d SYNERGY-1005 Add Fedora 33 to build and release pipeline 2021-05-27 12:37:51 +03:00
Serhii Hadzhilov
c3f6ae708a SYNERGY-999 Fix script that generates version number 2021-05-25 14:06:22 +03:00
Kyle Bloom
fd81fef749
Add missing make instruction (#6974)
* Add missing make instruction

* Update changelog
2021-04-12 14:37:05 +03:00