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
This commit is contained in:
Kyle Bloom 2023-09-25 17:26:06 +01:00 committed by GitHub
parent cfe20bea18
commit 446b0a2e95
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 5203 additions and 378 deletions

View file

@ -0,0 +1 @@
node_modules

1
.github/actions/build-number/.nvmrc vendored Normal file
View file

@ -0,0 +1 @@
v20

View file

@ -1,10 +1,10 @@
name: 'Generate next build number' name: "Generate next build number"
description: 'Generate next build number' description: "Generate next build number"
outputs: outputs:
build-number: build-number:
description: 'Generated build number' description: "Generated build number"
runs: runs:
using: 'node12' using: "node20"
main: 'build-number.js' main: "dist/index.js"

4527
.github/actions/build-number/dist/index.js vendored Normal file

File diff suppressed because it is too large Load diff

190
.github/actions/build-number/package-lock.json generated vendored Normal file
View file

@ -0,0 +1,190 @@
{
"name": "build-number",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "build-number",
"version": "0.0.0",
"license": "ISC",
"dependencies": {
"@actions/core": "^1.10.1",
"@octokit/core": "^5.0.0"
},
"devDependencies": {
"@vercel/ncc": "^0.38.0"
}
},
"node_modules/@actions/core": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz",
"integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==",
"dependencies": {
"@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
}
},
"node_modules/@actions/http-client": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.1.tgz",
"integrity": "sha512-qhrkRMB40bbbLo7gF+0vu+X+UawOvQQqNAA/5Unx774RS8poaOhThDOG6BGmxvAnxhQnDp2BG/ZUm65xZILTpw==",
"dependencies": {
"tunnel": "^0.0.6"
}
},
"node_modules/@octokit/auth-token": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
"integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/core": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz",
"integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==",
"dependencies": {
"@octokit/auth-token": "^4.0.0",
"@octokit/graphql": "^7.0.0",
"@octokit/request": "^8.0.2",
"@octokit/request-error": "^5.0.0",
"@octokit/types": "^11.0.0",
"before-after-hook": "^2.2.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/endpoint": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz",
"integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==",
"dependencies": {
"@octokit/types": "^11.0.0",
"is-plain-object": "^5.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/graphql": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz",
"integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==",
"dependencies": {
"@octokit/request": "^8.0.1",
"@octokit/types": "^11.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/openapi-types": {
"version": "18.0.0",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz",
"integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw=="
},
"node_modules/@octokit/request": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.1.tgz",
"integrity": "sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==",
"dependencies": {
"@octokit/endpoint": "^9.0.0",
"@octokit/request-error": "^5.0.0",
"@octokit/types": "^11.1.0",
"is-plain-object": "^5.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/request-error": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz",
"integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==",
"dependencies": {
"@octokit/types": "^11.0.0",
"deprecation": "^2.0.0",
"once": "^1.4.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/types": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz",
"integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==",
"dependencies": {
"@octokit/openapi-types": "^18.0.0"
}
},
"node_modules/@vercel/ncc": {
"version": "0.38.0",
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.0.tgz",
"integrity": "sha512-B4YKZMm/EqMptKSFyAq4q2SlgJe+VCmEH6Y8gf/E1pTlWbsUJpuH1ymik2Ex3aYO5mCWwV1kaSYHSQOT8+4vHA==",
"dev": true,
"bin": {
"ncc": "dist/ncc/cli.js"
}
},
"node_modules/before-after-hook": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
},
"node_modules/deprecation": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
},
"node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/tunnel": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
"engines": {
"node": ">=0.6.11 <=0.7.0 || >=0.7.3"
}
},
"node_modules/universal-user-agent": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
}
}
}

View file

@ -0,0 +1,19 @@
{
"name": "build-number",
"version": "0.0.0",
"description": "Calculate the current version",
"main": "dist/index.js",
"private": true,
"scripts": {
"build": "ncc build main.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"@actions/core": "^1.10.1",
"@octokit/core": "^5.0.0"
},
"devDependencies": {
"@vercel/ncc": "^0.38.0"
}
}

View file

@ -1,23 +1,15 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
# ******** NOTE ********
name: "CodeQL" name: "CodeQL"
on: on:
push: push:
branches: [ master ] branches: [master]
pull_request: pull_request:
# The branches below must be a subset of the branches above # The branches below must be a subset of the branches above
branches: [ master ] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
analyze: analyze:
@ -27,60 +19,49 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
language: [ 'cpp' ] language: ["cpp"]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps: steps:
- name: Checkout repository - name: Install dependencies
uses: actions/checkout@v2 run: |
sudo apt-get install -y \
build-essential \
cmake \
debhelper \
devscripts \
git \
libavahi-compat-libdnssd-dev \
libgdk-pixbuf2.0-dev \
libgl1-mesa-dev \
libglib2.0-dev \
libnotify-dev \
libssl-dev \
libx11-dev \
libxtst-dev \
qtbase5-dev \
qttools5-dev \
qttools5-dev-tools
# Initializes the CodeQL tools for scanning. - name: Checkout git repo
- name: Initialize CodeQL uses: actions/checkout@v3
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- run: | # Initializes the CodeQL tools for scanning.
sudo sh -c 'export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y \ - name: Initialize CodeQL
git \ uses: github/codeql-action/init@v1
cmake \ with:
qtbase5-dev \ languages: ${{ matrix.language }}
build-essential \ # If you wish to specify custom queries, you can do so here or in a config file.
libx11-dev \ # By default, queries listed here will override any specified in a config file.
libxtst-dev \ # Prefix the list here with "+" to use these queries and those in the config file.
libgl1-mesa-dev \ # queries: ./path/to/local/query, your-org/your-repo/queries@main
libssl-dev \
libavahi-compat-libdnssd-dev \
debhelper \
devscripts \
qttools5-dev \
qttools5-dev-tools \
libnotify-dev \
libglib2.0-dev \
libgdk-pixbuf2.0-dev \
&& rm -rf /var/lib/apt/lists'
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v1 uses: github/codeql-action/autobuild@v1
# ℹ️ Command-line programs to run using the OS shell. # ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - name: Perform CodeQL Analysis
# and modify them (or add more) to build your code if your project uses: github/codeql-action/analyze@v1
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View file

@ -2,40 +2,37 @@ name: Create Build
on: on:
push: push:
branches: [ master ] branches: [master]
jobs: jobs:
create-release: create-release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
- name: 'Install git core' - name: "Generate next build number"
run: |
npm install @actions/core
npm install @octokit/core
- name: 'Generate next build number'
id: build id: build
uses: "./.github/actions/build-number" uses: "./.github/actions/build-number"
- name: Create Release - name: Create Release
id: create_release id: create_release
uses: actions/create-release@v1 uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_EVENT_PROPAGATION_TOKEN }}
with: with:
tag_name: ${{ steps.build.outputs.next-build }} tag_name: ${{ steps.build.outputs.next-build }}
release_name: ${{ steps.build.outputs.next-build }} release_name: ${{ steps.build.outputs.next-build }}
commitish: master commitish: master
draft: false draft: false
prerelease: true prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_EVENT_PROPAGATION_TOKEN }}
- name: Run build on Azure - name: Run build on Azure
uses: Azure/pipelines@v1 uses: Azure/pipelines@v1
with: with:
azure-devops-project-url: 'https://dev.azure.com/symless/synergy-core' azure-devops-project-url: "https://dev.azure.com/symless/synergy-core"
azure-pipeline-name: 'symless.synergy-core' azure-pipeline-name: "symless.synergy-core"
azure-devops-token: '${{ secrets.AZURE_DEVOPS_TOKEN }}' azure-devops-token: "${{ secrets.AZURE_DEVOPS_TOKEN }}"

View file

@ -8,26 +8,35 @@ jobs:
build-flatpak-bundle: build-flatpak-bundle:
name: ubuntu-flatpak name: ubuntu-flatpak
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: symless/synergy-core:ubuntu20.04 image: symless/synergy-core:ubuntu20.04
options: --privileged options: --privileged
strategy: strategy:
matrix: matrix:
name: [synergy, synergy-enterprise, synergy-business] runtime:
include:
- name: synergy - name: synergy
remote_folder: v1-core-standard remote_folder: v1-core-standard
enterprise: ""
business: ""
- name: synergy-enterprise - name: synergy-enterprise
remote_folder: v1-core-enterprise remote_folder: v1-core-enterprise
enterprise: "1"
business: ""
- name: synergy-business - name: synergy-business
remote_folder: v1-core-business remote_folder: v1-core-business
enterprise: ""
business: "1"
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
SYNERGY_ENTERPRISE: ${{ matrix.enterprise }} SYNERGY_ENTERPRISE: ${{ matrix.runtime.enterprise }}
SYNERGY_BUSINESS: ${{ matrix.business }} SYNERGY_BUSINESS: ${{ matrix.runtime.business }}
steps: steps:
- uses: actions/checkout@v3 - name: Checkout git repo
uses: actions/checkout@v3
with: with:
submodules: "recursive" submodules: "recursive"
fetch-depth: "0" fetch-depth: "0"
@ -54,7 +63,7 @@ jobs:
rm -rf version-info rm -rf version-info
SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH" SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH"
SYNERGY_REVISION=$(git rev-parse --short=8 HEAD) SYNERGY_REVISION=$(git rev-parse --short=8 HEAD)
SYNERGY_FLATPAK_NAME="${{ matrix.name }}_${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}" SYNERGY_FLATPAK_NAME="${{ matrix.runtime.name }}_${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}"
echo "::set-output name=SYNERGY_VERSION_MAJOR::${SYNERGY_VERSION_MAJOR}" echo "::set-output name=SYNERGY_VERSION_MAJOR::${SYNERGY_VERSION_MAJOR}"
echo "::set-output name=SYNERGY_VERSION_MINOR::${SYNERGY_VERSION_MINOR}" echo "::set-output name=SYNERGY_VERSION_MINOR::${SYNERGY_VERSION_MINOR}"
echo "::set-output name=SYNERGY_VERSION_PATCH::${SYNERGY_VERSION_PATCH}" echo "::set-output name=SYNERGY_VERSION_PATCH::${SYNERGY_VERSION_PATCH}"
@ -63,7 +72,7 @@ jobs:
echo "::set-output name=SYNERGY_VERSION::${SYNERGY_VERSION}" echo "::set-output name=SYNERGY_VERSION::${SYNERGY_VERSION}"
echo "::set-output name=SYNERGY_REVISION::${SYNERGY_REVISION}" echo "::set-output name=SYNERGY_REVISION::${SYNERGY_REVISION}"
echo "::set-output name=SYNERGY_FLATPAK_NAME::${SYNERGY_FLATPAK_NAME}" echo "::set-output name=SYNERGY_FLATPAK_NAME::${SYNERGY_FLATPAK_NAME}"
echo "::set-output name=SYNERGY_REMOTE_FOLDER::${{ matrix.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}" echo "::set-output name=SYNERGY_REMOTE_FOLDER::${{ matrix.runtime.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}"
- name: Install flatpak - name: Install flatpak
run: | run: |
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
@ -73,7 +82,7 @@ jobs:
- name: Build - name: Build
run: | run: |
cd flatpak cd flatpak
flatpak-builder build ${{ matrix.name }}.yml --disable-cache --force-clean flatpak-builder build ${{ matrix.runtime.name }}.yml --disable-cache --force-clean
flatpak build-export export build flatpak build-export export build
flatpak build-bundle export ${{ steps.version.outputs.SYNERGY_FLATPAK_NAME }}.flatpak com.symless.Synergy master --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo flatpak build-bundle export ${{ steps.version.outputs.SYNERGY_FLATPAK_NAME }}.flatpak com.symless.Synergy master --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo

View file

@ -10,7 +10,7 @@ jobs:
strategy: strategy:
matrix: matrix:
include: runtime:
- name: "synergy" - name: "synergy"
remote_folder: "v1-core-standard" remote_folder: "v1-core-standard"
enterprise: "" enterprise: ""
@ -23,16 +23,20 @@ jobs:
remote_folder: "v1-core-business" remote_folder: "v1-core-business"
enterprise: "" enterprise: ""
business: "1" business: "1"
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
SYNERGY_ENTERPRISE: ${{ matrix.enterprise }} SYNERGY_ENTERPRISE: ${{ matrix.runtime.enterprise }}
SYNERGY_BUSINESS: ${{ matrix.business }} SYNERGY_BUSINESS: ${{ matrix.runtime.business }}
Qt5_DIR: /usr/local/opt/qt/5.15.2/clang_64 Qt5_DIR: /usr/local/opt/qt/5.15.2/clang_64
OpenSSL_DIR: /usr/local/ssl OpenSSL_DIR: /usr/local/ssl
CODESIGN_ID: "Developer ID Application: Symless Ltd (4HX897Y6GJ)" CODESIGN_ID: "Developer ID Application: Symless Ltd (4HX897Y6GJ)"
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Setup Environment - name: Setup Environment
run: | run: |
@ -70,8 +74,8 @@ jobs:
echo "::set-output name=SYNERGY_VERSION::$SYNERGY_VERSION" echo "::set-output name=SYNERGY_VERSION::$SYNERGY_VERSION"
echo "::set-output name=SYNERGY_REVISION::$SYNERGY_REVISION" echo "::set-output name=SYNERGY_REVISION::$SYNERGY_REVISION"
echo "::set-output name=SYNERGY_DMG_VERSION::$SYNERGY_DMG_VERSION" echo "::set-output name=SYNERGY_DMG_VERSION::$SYNERGY_DMG_VERSION"
SYNERGY_PACKAGE_NAME=${{ matrix.name }} SYNERGY_PACKAGE_NAME=${{ matrix.runtime.name }}
SYNERGY_REMOTE_FOLDER="${{ matrix.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}" SYNERGY_REMOTE_FOLDER="${{ matrix.runtime.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}"
SYNERGY_DMG_FILENAME="${SYNERGY_PACKAGE_NAME}_${SYNERGY_DMG_VERSION}_macos-10.13_x86-64.dmg" SYNERGY_DMG_FILENAME="${SYNERGY_PACKAGE_NAME}_${SYNERGY_DMG_VERSION}_macos-10.13_x86-64.dmg"
echo "SYNERGY_REMOTE_FOLDER: $SYNERGY_REMOTE_FOLDER" echo "SYNERGY_REMOTE_FOLDER: $SYNERGY_REMOTE_FOLDER"
echo "::set-output name=SYNERGY_REMOTE_FOLDER::$SYNERGY_REMOTE_FOLDER" echo "::set-output name=SYNERGY_REMOTE_FOLDER::$SYNERGY_REMOTE_FOLDER"

View file

@ -14,7 +14,7 @@ jobs:
strategy: strategy:
matrix: matrix:
include: runtime:
- name: "synergy" - name: "synergy"
remote_folder: "v1-core-standard" remote_folder: "v1-core-standard"
enterprise: "" enterprise: ""
@ -27,14 +27,28 @@ jobs:
remote_folder: "v1-core-business" remote_folder: "v1-core-business"
enterprise: "" enterprise: ""
business: "1" business: "1"
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
SYNERGY_ENTERPRISE: ${{ matrix.enterprise }} SYNERGY_ENTERPRISE: ${{ matrix.runtime.enterprise }}
SYNERGY_BUSINESS: ${{ matrix.business }} SYNERGY_BUSINESS: ${{ matrix.runtime.business }}
CODESIGN_ID: "Developer ID Application: Symless Ltd (4HX897Y6GJ)" CODESIGN_ID: "Developer ID Application: Symless Ltd (4HX897Y6GJ)"
steps: steps:
- uses: actions/checkout@v2 - name: Setup PATH
run: echo "/opt/homebrew/bin" >> $GITHUB_PATH
env:
ARCH: ${{ matrix.runtime.arch }}
- name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Setup Environment - name: Setup Environment
run: | run: |
@ -71,8 +85,8 @@ jobs:
echo "::set-output name=SYNERGY_VERSION::$SYNERGY_VERSION" echo "::set-output name=SYNERGY_VERSION::$SYNERGY_VERSION"
echo "::set-output name=SYNERGY_REVISION::$SYNERGY_REVISION" echo "::set-output name=SYNERGY_REVISION::$SYNERGY_REVISION"
echo "::set-output name=SYNERGY_DMG_VERSION::$SYNERGY_DMG_VERSION" echo "::set-output name=SYNERGY_DMG_VERSION::$SYNERGY_DMG_VERSION"
SYNERGY_PACKAGE_NAME=${{ matrix.name }} SYNERGY_PACKAGE_NAME=${{ matrix.runtime.name }}
SYNERGY_REMOTE_FOLDER="${{ matrix.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}" SYNERGY_REMOTE_FOLDER="${{ matrix.runtime.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}"
SYNERGY_DMG_FILENAME="${SYNERGY_PACKAGE_NAME}_${SYNERGY_DMG_VERSION}_macos-arm64.dmg" SYNERGY_DMG_FILENAME="${SYNERGY_PACKAGE_NAME}_${SYNERGY_DMG_VERSION}_macos-arm64.dmg"
echo "SYNERGY_REMOTE_FOLDER: $SYNERGY_REMOTE_FOLDER" echo "SYNERGY_REMOTE_FOLDER: $SYNERGY_REMOTE_FOLDER"
echo "::set-output name=SYNERGY_REMOTE_FOLDER::$SYNERGY_REMOTE_FOLDER" echo "::set-output name=SYNERGY_REMOTE_FOLDER::$SYNERGY_REMOTE_FOLDER"

View file

@ -7,11 +7,19 @@ on:
jobs: jobs:
build-on-pi: build-on-pi:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
env:
GIT_COMMIT: ${{ github.sha }}
DEB_BUILD_OPTIONS: parallel=1
SYNERGY_ENTERPRISE: ${{ matrix.runtime.enterprise }}
SYNERGY_BUSINESS: ${{ matrix.runtime.business }}
strategy: strategy:
matrix: matrix:
os: [[self-hosted, linux, ARM, pi-3], [self-hosted, linux, ARM64, pi-4]] os:
name: [synergy, synergy-enterprise, synergy-business] - [self-hosted, linux, ARM, pi-3]
include: - [self-hosted, linux, ARM64, pi-4]
runtime:
- name: synergy - name: synergy
remote_folder: v1-core-standard remote_folder: v1-core-standard
enterprise: "" enterprise: ""
@ -24,63 +32,61 @@ jobs:
remote_folder: v1-core-business remote_folder: v1-core-business
enterprise: "" enterprise: ""
business: "1" business: "1"
env:
GIT_COMMIT: ${{ github.sha }}
DEB_BUILD_OPTIONS: parallel=1
SYNERGY_ENTERPRISE: ${{ matrix.enterprise }}
SYNERGY_BUSINESS: ${{ matrix.business }}
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Version Info - name: Version Info
id: version id: version
run: | run: |
python3 CI/build_version.py python3 CI/build_version.py
mkdir -p version-info && cd version-info && cmake .. && cd .. mkdir -p version-info && cd version-info && cmake .. && cd ..
. ./version-info/version . ./version-info/version
rm -rf version-info rm -rf version-info
SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH" SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH"
SYNERGY_REVISION=$(git rev-parse --short=8 HEAD) SYNERGY_REVISION=$(git rev-parse --short=8 HEAD)
SYNERGY_DEB_VERSION="${SYNERGY_VERSION}.${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}" SYNERGY_DEB_VERSION="${SYNERGY_VERSION}.${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}"
echo "::set-output name=SYNERGY_VERSION_MAJOR::${SYNERGY_VERSION_MAJOR}" echo "::set-output name=SYNERGY_VERSION_MAJOR::${SYNERGY_VERSION_MAJOR}"
echo "::set-output name=SYNERGY_VERSION_MINOR::${SYNERGY_VERSION_MINOR}" echo "::set-output name=SYNERGY_VERSION_MINOR::${SYNERGY_VERSION_MINOR}"
echo "::set-output name=SYNERGY_VERSION_PATCH::${SYNERGY_VERSION_PATCH}" echo "::set-output name=SYNERGY_VERSION_PATCH::${SYNERGY_VERSION_PATCH}"
echo "::set-output name=SYNERGY_VERSION_STAGE::${SYNERGY_VERSION_STAGE}" echo "::set-output name=SYNERGY_VERSION_STAGE::${SYNERGY_VERSION_STAGE}"
echo "::set-output name=SYNERGY_VERSION_BUILD::${SYNERGY_VERSION_BUILD}" echo "::set-output name=SYNERGY_VERSION_BUILD::${SYNERGY_VERSION_BUILD}"
echo "::set-output name=SYNERGY_VERSION::${SYNERGY_VERSION}" echo "::set-output name=SYNERGY_VERSION::${SYNERGY_VERSION}"
echo "::set-output name=SYNERGY_REVISION::${SYNERGY_REVISION}" echo "::set-output name=SYNERGY_REVISION::${SYNERGY_REVISION}"
echo "::set-output name=SYNERGY_DEB_VERSION::${SYNERGY_DEB_VERSION}" echo "::set-output name=SYNERGY_DEB_VERSION::${SYNERGY_DEB_VERSION}"
echo "::set-output name=SYNERGY_REMOTE_FOLDER::${{ matrix.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}" echo "::set-output name=SYNERGY_REMOTE_FOLDER::${{ matrix.runtime.remote_folder }}/${SYNERGY_VERSION}/${SYNERGY_VERSION_STAGE}/b${SYNERGY_VERSION_BUILD}-${SYNERGY_REVISION}"
echo "::set-output name=SYNERGY_PACKAGE_NAME::${{ matrix.name }}" echo "::set-output name=SYNERGY_PACKAGE_NAME::${{ matrix.runtime.name }}"
- name: Build deb - name: Build deb
env: run: |
SYNERGY_VERSION: ${{ steps.version.outputs.SYNERGY_VERSION }} sed -i "s/ synergy/ ${PACKAGE_NAME}/g" ./debian/control
SYNERGY_REVISION: ${{ steps.version.outputs.SYNERGY_REVISION }} python3 CI/deb_changelog.py "${PACKAGE_NAME}" "${SYNERGY_DEB_VERSION}"
SYNERGY_DEB_VERSION: ${{ steps.version.outputs.SYNERGY_DEB_VERSION }} debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT -us -uc
PACKAGE_NAME: ${{ steps.version.outputs.SYNERGY_PACKAGE_NAME }} mkdir -p package
SYNERGY_VERSION_STAGE: ${{ steps.version.outputs.SYNERGY_VERSION_STAGE }} cd ..
run: | filename=$(ls ${PACKAGE_NAME}_*${SYNERGY_REVISION}*.deb)
sed -i "s/ synergy/ ${PACKAGE_NAME}/g" ./debian/control filename_new="${PACKAGE_NAME}_${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}_raspios${filename##*${SYNERGY_REVISION}}"
python3 CI/deb_changelog.py "${PACKAGE_NAME}" "${SYNERGY_DEB_VERSION}" mv $filename ${{ github.workspace }}/package/$filename_new
debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT -us -uc cd ${{ github.workspace }}/package
mkdir -p package md5sum $filename_new >> ${filename_new}.checksum.txt
cd .. sha1sum $filename_new >> ${filename_new}.checksum.txt
filename=$(ls ${PACKAGE_NAME}_*${SYNERGY_REVISION}*.deb) sha256sum $filename_new >> ${filename_new}.checksum.txt
filename_new="${PACKAGE_NAME}_${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}_raspios${filename##*${SYNERGY_REVISION}}" env:
mv $filename ${{ github.workspace }}/package/$filename_new SYNERGY_VERSION: ${{ steps.version.outputs.SYNERGY_VERSION }}
cd ${{ github.workspace }}/package SYNERGY_REVISION: ${{ steps.version.outputs.SYNERGY_REVISION }}
md5sum $filename_new >> ${filename_new}.checksum.txt SYNERGY_DEB_VERSION: ${{ steps.version.outputs.SYNERGY_DEB_VERSION }}
sha1sum $filename_new >> ${filename_new}.checksum.txt PACKAGE_NAME: ${{ steps.version.outputs.SYNERGY_PACKAGE_NAME }}
sha256sum $filename_new >> ${filename_new}.checksum.txt SYNERGY_VERSION_STAGE: ${{ steps.version.outputs.SYNERGY_VERSION_STAGE }}
- name: Send package to Binary Storage - name: Send package to Binary Storage
if: "github.event_name == 'release'" if: "github.event_name == 'release'"
uses: garygrossgarten/github-action-scp@v0.7.3 uses: garygrossgarten/github-action-scp@v0.7.3
with: with:
local: "${{ github.workspace }}/package/" local: "${{ github.workspace }}/package/"
remote: "${{ secrets.BINARIES_SSH_DIR }}/${{ steps.version.outputs.SYNERGY_REMOTE_FOLDER }}/" remote: "${{ secrets.BINARIES_SSH_DIR }}/${{ steps.version.outputs.SYNERGY_REMOTE_FOLDER }}/"
host: ${{ secrets.BINARIES_SSH_HOST }} host: ${{ secrets.BINARIES_SSH_HOST }}
username: ${{ secrets.BINARIES_SSH_USER }} username: ${{ secrets.BINARIES_SSH_USER }}
privateKey: ${{ secrets.BINARIES_SSH_KEY }} privateKey: ${{ secrets.BINARIES_SSH_KEY }}

View file

@ -6,34 +6,37 @@
# https://github.com/actions/labeler/blob/master/README.md # https://github.com/actions/labeler/blob/master/README.md
name: ChangeLog Updated name: ChangeLog Updated
on: on:
pull_request: pull_request:
branches: [ master ] branches: [master]
jobs: jobs:
check: check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- id: file_changes - name: Get changed files
name: Get changed files id: file_changes
uses: trilom/file-changes-action@v1.2.4 uses: trilom/file-changes-action@v1.2.4
with: with:
output: ',' output: ","
- name: echo changes
run: | - name: echo changes
echo Files run: |
echo '${{ steps.file_changes.outputs.files}}' echo Files
echo Modified echo '${{ steps.file_changes.outputs.files}}'
echo '${{ steps.file_changes.outputs.files_modified}}' echo Modified
echo Added echo '${{ steps.file_changes.outputs.files_modified}}'
echo '${{ steps.file_changes.outputs.files_added}}' echo Added
echo Removed echo '${{ steps.file_changes.outputs.files_added}}'
echo '${{ steps.file_changes.outputs.files_removed}}' echo Removed
- name: List files echo '${{ steps.file_changes.outputs.files_removed}}'
run: |
if [[ "${{ steps.file_changes.outputs.files_modified}}" == *"ChangeLog"* ]]; then - name: List files
echo "ChangeLog has been updated" run: |
else if [[ "${{ steps.file_changes.outputs.files_modified}}" == *"ChangeLog"* ]]; then
echo "::error file=app.js,line=10,col=15::Changelog hasn't been updated" echo "ChangeLog has been updated"
exit 1 else
fi echo "::error file=app.js,line=10,col=15::Changelog hasn't been updated"
exit 1
fi

View file

@ -1,6 +1,6 @@
on: on:
issues: issues:
types: [ opened ] types: [opened]
name: Send Issue to Jira name: Send Issue to Jira
jobs: jobs:
@ -30,11 +30,11 @@ jobs:
${{ github.event.issue.body }} ${{ github.event.issue.body }}
- name: Create comment - name: Create comment
uses: jungwinter/comment@v1
id: createComment id: createComment
uses: jungwinter/comment@v1
with: with:
type: create type: create
body: | body: |
Jira Issue: [${{ steps.create.outputs.issue }}](https://symless.atlassian.net/browse/${{ steps.create.outputs.issue }}) Jira Issue: [${{ steps.create.outputs.issue }}](https://symless.atlassian.net/browse/${{ steps.create.outputs.issue }})
issue_number: ${{ github.event.issue.number }} issue_number: ${{ github.event.issue.number }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -2,13 +2,16 @@ name: SonarCloud Static Analysis
on: on:
push: push:
branches: [ master ] branches: [master]
pull_request: pull_request:
branches: [ master ] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: symless/synergy-core:debian10 container: symless/synergy-core:debian10
@ -17,54 +20,56 @@ jobs:
SONAR_SCANNER_OPTS: -server SONAR_SCANNER_OPTS: -server
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
with: uses: actions/checkout@v3
fetch-depth: 0 with:
fetch-depth: 0
- name: Installing gcovr - name: Installing gcovr
run: | run: |
apt-get update apt-get update
apt-get install -y python python-pip apt-get install -y python python-pip
pip install gcovr pip install gcovr
- name: Installing Sonar Scanner
run: |
export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-4.4.0.2170-linux
curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip
unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
- name: Installing buildWrapper - name: Installing Sonar Scanner
run: | run: |
curl --create-dirs -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-4.4.0.2170-linux
unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/ curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip
unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
- name: Build - name: Installing buildWrapper
run: | run: |
export PATH=$HOME/.sonar/build-wrapper-linux-x86:$PATH curl --create-dirs -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip
mkdir build-release unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/
cd build-release
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON ..
. ./version
build-wrapper-linux-x86-64 --out-dir bw-output make -j
- name: Running coverage - name: Build
run: | run: |
cd build-release export PATH=$HOME/.sonar/build-wrapper-linux-x86:$PATH
make coverage mkdir build-release
cd build-release
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON ..
. ./version
build-wrapper-linux-x86-64 --out-dir bw-output make -j
- name: Run Sonar - name: Running coverage
run: | run: |
export PATH=$HOME/.sonar/sonar-scanner-${SONAR_SCANNER_VERSION}-linux/bin:$PATH cd build-release
cd build-release make coverage
sonar-scanner \
-Dsonar.organization=symless \ - name: Run Sonar
-Dsonar.projectKey=symless_synergy-core \ run: |
-Dsonar.sources=. \ export PATH=$HOME/.sonar/sonar-scanner-${SONAR_SCANNER_VERSION}-linux/bin:$PATH
-Dsonar.projectBaseDir=../ \ cd build-release
-Dsonar.exclusions=./ext/**,**/build-release/** \ sonar-scanner \
-Dsonar.cfamily.build-wrapper-output=bw-output \ -Dsonar.organization=symless \
-Dsonar.host.url=https://sonarcloud.io \ -Dsonar.projectKey=symless_synergy-core \
-Dsonar.coverageReportPaths=build-release/coverage.xml \ -Dsonar.sources=. \
-Dsonar.cfamily.threads=2 -Dsonar.projectBaseDir=../ \
env: -Dsonar.exclusions=./ext/**,**/build-release/** \
SONAR_TOKEN: ${{secrets.SONAR_TOKEN}} -Dsonar.cfamily.build-wrapper-output=bw-output \
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -Dsonar.host.url=https://sonarcloud.io \
-Dsonar.coverageReportPaths=build-release/coverage.xml \
-Dsonar.cfamily.threads=2
env:
SONAR_TOKEN: ${{secrets.SONAR_TOKEN}}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -2,34 +2,42 @@ name: CentOS
on: on:
push: push:
branches: [ master ] branches: [master]
pull_request: pull_request:
branches: [ master ] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
build-arch64: build-arch64:
name: ${{ matrix.distro }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: symless/synergy-core:${{ matrix.distro }} container: symless/synergy-core:${{ matrix.distro }}
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
strategy: strategy:
matrix: matrix:
include: distro:
- distro: centos7.6 - centos7.6
- distro: centos8 - centos8
name: ${{ matrix.distro }}
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Build - name: Build
run: | run: |
mkdir build mkdir build
cd build cd build
cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr .. cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..
. ./version . ./version
make -j make -j
- name: Run unit test - name: Run unit test
run: ./build/bin/unittests run: ./build/bin/unittests

View file

@ -2,35 +2,43 @@ name: Debian
on: on:
push: push:
branches: [ master ] branches: [master]
pull_request: pull_request:
branches: [ master ] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
build-arch64: build-arch64:
name: ${{ matrix.distro }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: symless/synergy-core:${{ matrix.distro }} container: symless/synergy-core:${{ matrix.distro }}
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
strategy: strategy:
matrix: matrix:
include: distro:
- distro: debian9 - debian9
- distro: debian10 - debian10
- distro: debian11 - debian11
name: ${{ matrix.distro }}
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Build - name: Build
run: | run: |
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_BUILD_TYPE=Release .. cmake -DCMAKE_BUILD_TYPE=Release ..
. ./version . ./version
make -j make -j
- name: Run unit test - name: Run unit test
run: ./build/bin/unittests run: ./build/bin/unittests

View file

@ -2,44 +2,50 @@ name: Fedora
on: on:
push: push:
branches: [ master ] branches: [master]
pull_request: pull_request:
branches: [ master ] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
build-arch64: build-arch64:
name: ${{ matrix.distro }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: symless/synergy-core:${{ matrix.distro }} container: symless/synergy-core:${{ matrix.distro }}
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
strategy: strategy:
matrix: matrix:
include: distro:
- distro: fedora29 - fedora33
- distro: fedora30 - fedora34
- distro: fedora33 - fedora35
- distro: fedora34 - fedora36
- distro: fedora35 - fedora37
- distro: fedora36 - fedora38
name: ${{ matrix.distro }}
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
with: uses: actions/checkout@v3
submodules: 'recursive' with:
submodules: "recursive"
- name: Work around https://github.com/actions/checkout/issues/766 - name: Work around https://github.com/actions/checkout/issues/766
run: | run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE" git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Build - name: Build
run: | run: |
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr .. cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..
. ./version . ./version
make -j make -j
- name: Run unit test - name: Run unit test
run: ./build/bin/unittests run: ./build/bin/unittests

View file

@ -6,28 +6,37 @@ on:
pull_request: pull_request:
branches: [master] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
build-arch64: build-arch64:
name: ubuntu${{ matrix.distro }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: symless/synergy-core:ubuntu${{ matrix.distro }} container: symless/synergy-core:ubuntu${{ matrix.distro }}
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
strategy: strategy:
matrix: matrix:
distro: ['22.04', '20.04', '18.04'] distro:
flag: ['-j'] - "22.04"
- "20.04"
- "18.04"
flag:
- "-j"
include: include:
- distro: '16.04' - distro: "16.04"
flag: '-j1' flag: "-j1"
name: ubuntu${{ matrix.distro }}
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with: with:
submodules: 'recursive' submodules: "recursive"
- name: Work around https://github.com/actions/checkout/issues/766 - name: Work around https://github.com/actions/checkout/issues/766
run: | run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE" git config --global --add safe.directory "$GITHUB_WORKSPACE"
@ -41,4 +50,4 @@ jobs:
make ${{ matrix.flag }} make ${{ matrix.flag }}
- name: Run unit test - name: Run unit test
run: ./build/bin/unittests run: ./build/bin/unittests

View file

@ -6,21 +6,27 @@ on:
pull_request: pull_request:
branches: [master] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
test-macos: test-macos:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.runtime.os }}
defaults: defaults:
run: run:
shell: ${{ matrix.shell }} shell: ${{ matrix.runtime.shell }}
strategy: strategy:
matrix: matrix:
include: runtime:
- os: "macos-latest" - os: "macos-latest"
arch: x64
target: "10.14" target: "10.14"
shell: "bash" shell: "bash"
- os: [self-hosted, macOS, arm64] - os: [self-hosted, macOS, arm64]
arch: arm64
target: "11" target: "11"
shell: "/usr/bin/arch -arch arm64e /bin/bash --noprofile --norc -eo pipefail {0}" shell: "/usr/bin/arch -arch arm64e /bin/bash --noprofile --norc -eo pipefail {0}"
@ -28,14 +34,27 @@ jobs:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
steps: steps:
- uses: actions/checkout@v2 - name: Setup PATH
run: |
case "$ARCH" in
"arm64")
echo "/opt/homebrew/bin" >> $GITHUB_PATH
;;
esac
env:
ARCH: ${{ matrix.runtime.arch }}
- name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Install brew dependencies - name: Install brew dependencies
run: brew bundle --file=- <<< "brew 'qt5'; brew 'openssl'" run: brew bundle --file=- <<< "brew 'qt5'; brew 'openssl'"
- name: Build - name: Build
env: env:
CMAKE_OSX_DEPLOYMENT_TARGET: ${{ matrix.target }} CMAKE_OSX_DEPLOYMENT_TARGET: ${{ matrix.runtime.target }}
run: | run: |
mkdir build mkdir build
cd build cd build

View file

@ -2,9 +2,13 @@ name: Raspberry Pi
on: on:
push: push:
branches: [ master ] branches: [master]
pull_request: pull_request:
branches: [ master ] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
test-on-pi: test-on-pi:
@ -16,13 +20,16 @@ jobs:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Build - name: Build
run: | run: |
mkdir -p build; cd build mkdir -p build; cd build
cmake -DCMAKE_BUILD_TYPE=Release .. cmake -DCMAKE_BUILD_TYPE=Release ..
make make
- name: Run unit test - name: Run unit test
run: ./build/bin/unittests run: ./build/bin/unittests

View file

@ -2,13 +2,17 @@ name: Windows
on: on:
push: push:
branches: [ master ] branches: [master]
pull_request: pull_request:
branches: [ master ] branches: [master]
concurrency:
group: "${{ github.workflow }}-${{ github.ref || github.run_id }}"
cancel-in-progress: true
jobs: jobs:
build-arch64: build-arch64:
runs-on: windows-2019 runs-on: windows-latest
env: env:
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
@ -19,53 +23,56 @@ jobs:
QT_LIB_DIR: ${{ github.workspace }}\deps\Qt\5.12.6 QT_LIB_DIR: ${{ github.workspace }}\deps\Qt\5.12.6
steps: steps:
- uses: actions/checkout@v2 - name: Checkout git repo
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Cache Qt - name: Cache Qt
id: cache-qt id: cache-qt
uses: actions/cache@v1 uses: actions/cache@v1
with: with:
path: ${{ env.QT_BASE_DIR }} path: ${{ env.QT_BASE_DIR }}
key: ${{ runner.os }}-Qt_${{ env.QT_VERSION }} key: ${{ runner.os }}-Qt_${{ env.QT_VERSION }}
- name: Install Qt - name: Install Qt
if: steps.cache-qt.outputs.cache-hit != 'true' if: steps.cache-qt.outputs.cache-hit != 'true'
run: | run: |
pip install aqtinstall pip install aqtinstall
python -m aqt install --outputdir $env:QT_BASE_DIR --base $env:QT_BASE_URL $env:QT_VERSION windows desktop win64_msvc2017_64 python -m aqt install --outputdir $env:QT_BASE_DIR --base $env:QT_BASE_URL $env:QT_VERSION windows desktop win64_msvc2017_64
cd $env:QT_LIB_DIR\msvc2017_64 cd $env:QT_LIB_DIR\msvc2017_64
dir dir
- name: Cache Bonjour - name: Cache Bonjour
id: cache-bonjour id: cache-bonjour
uses: actions/cache@v1 uses: actions/cache@v1
with: with:
path: ${{ env.BONJOUR_BASE_DIR }} path: ${{ env.BONJOUR_BASE_DIR }}
key: ${{ runner.os }}-Bonjour key: ${{ runner.os }}-Bonjour
- name: Install Bonjour SDK - name: Install Bonjour SDK
if: steps.cache-bonjour.outputs.cache-hit != 'true' if: steps.cache-bonjour.outputs.cache-hit != 'true'
run: | run: |
New-Item -Force -ItemType Directory -Path "$env:BONJOUR_BASE_DIR" New-Item -Force -ItemType Directory -Path "$env:BONJOUR_BASE_DIR"
$client = new-object System.Net.WebClient $client = new-object System.Net.WebClient
$client.DownloadFile("https://binaries.symless.com/bonjour/BonjourSDK.zip",".\bonjoursdk.zip") $client.DownloadFile("https://binaries.symless.com/bonjour/BonjourSDK.zip",".\bonjoursdk.zip")
[System.IO.Compression.ZipFile]::ExtractToDirectory(".\bonjoursdk.zip", "$env:BONJOUR_BASE_DIR") [System.IO.Compression.ZipFile]::ExtractToDirectory(".\bonjoursdk.zip", "$env:BONJOUR_BASE_DIR")
- name: Install OpenSSL - name: Install OpenSSL
run: choco install openssl -y --no-progress run: choco install openssl -y --no-progress
- name: Add msbuild to PATH - name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2 uses: microsoft/setup-msbuild@v1.0.2
- name: Build - name: Build
env: env:
CMAKE_PREFIX_PATH: "${{ env.QT_LIB_DIR }}\\msvc2017_64\\" CMAKE_PREFIX_PATH: "${{ env.QT_LIB_DIR }}\\msvc2017_64\\"
run: | run: |
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_BUILD_TYPE=Release .. cmake -DCMAKE_BUILD_TYPE=Release ..
. ./version . ./version
msbuild synergy-core.sln /p:Configuration=Release msbuild synergy-core.sln /p:Configuration=Release
- name: Run unit test - name: Run unit test
run: .\build\bin\Release\unittests.exe run: .\build\bin\Release\unittests.exe

View file

@ -1,21 +1,22 @@
name: 'Close stale issues and PRs' name: "Close stale issues and PRs"
on: on:
schedule: schedule:
- cron: '30 1 * * *' - cron: "30 1 * * *"
jobs: jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@v6 - uses: actions/stale@v6
with: with:
stale-issue-message: 'This issue is stale because it has been open 1 year with no activity. Remove the stale label or add a comment, otherwise this will be closed in 30 days.' stale-issue-message: "This issue is stale because it has been open 1 year with no activity. Remove the stale label or add a comment, otherwise this will be closed in 30 days."
stale-pr-message: 'This PR is stale because it has been open 1 year with no activity. Remove the stale label or add a comment, otherwise this will be closed in 30 days.' stale-pr-message: "This PR is stale because it has been open 1 year with no activity. Remove the stale label or add a comment, otherwise this will be closed in 30 days."
close-issue-message: 'This issue was closed because it has been stale for 1 year with no activity.' close-issue-message: "This issue was closed because it has been stale for 1 year with no activity."
close-pr-message: 'This PR was closed because it has been stale for 1 year with no activity.' close-pr-message: "This PR was closed because it has been stale for 1 year with no activity."
days-before-issue-stale: 365 days-before-issue-stale: 365
days-before-pr-stale: 365 days-before-pr-stale: 365
days-before-issue-close: 30 days-before-issue-close: 30
days-before-pr-close: 30 days-before-pr-close: 30
stale-issue-label: 'stale' stale-issue-label: "stale"
stale-pr-label: 'stale' stale-pr-label: "stale"

View file

@ -12,6 +12,9 @@ Enhancements:
- #7274 Only build necessary binaries - #7274 Only build necessary binaries
- #7277 Change start errors to fatal - #7277 Change start errors to fatal
GitHub Actions:
- #7283 Update all workflows and fix broken macOS workflows
1.14.6 1.14.6
====== ======