Remove Azure Pipelines config entirely (#7318)

* Remove Azure Pipelines

* Update ChangeLog
This commit is contained in:
Nick Bolton 2024-01-09 12:13:11 +00:00 committed by GitHub
parent 4c1d5daa00
commit daf9292c80
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 1 additions and 1198 deletions

View file

@ -29,10 +29,3 @@ jobs:
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_EVENT_PROPAGATION_TOKEN }}
- name: Run build on Azure
uses: Azure/pipelines@v1
with:
azure-devops-project-url: "https://dev.azure.com/symless/synergy-core"
azure-pipeline-name: "symless.synergy-core"
azure-devops-token: "${{ secrets.AZURE_DEVOPS_TOKEN }}"

View file

@ -1,237 +0,0 @@
steps:
- script: |
command -v python3 >/dev/null 2>&1 && python3 CI/build_version.py || python CI/build_version.py
displayName: 'Update Version.cmake'
- script: |
mkdir build-release
cd build-release
if [ -z $(which cmake) ]; then cmake3 -DCMAKE_BUILD_TYPE=Release ..; else cmake -DCMAKE_BUILD_TYPE=Release ..; fi
. ./version
make -j$(makeJobsLimit)
condition: eq(variables['packager'],'deb')
displayName: 'Build Release deb'
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
mkdir build-release
cd build-release
if [ -z $(which cmake) ]; then
cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
else cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
fi
. ./version
make -j$(makeJobsLimit)
condition: eq(variables['packager'],'rpm')
displayName: 'Build Release rpm'
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
mkdir build-ent
cd build-ent
export SYNERGY_ENTERPRISE=1
if [ -z $(which cmake) ]; then cmake3 -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON ..; else cmake -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON ..; fi
. ./version
make -j$(makeJobsLimit)
displayName: 'Build enterprise'
condition: eq(variables['packager'],'deb')
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
mkdir build-ent
cd build-ent
if [ -z $(which cmake) ]; then
cmake3 -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
else cmake -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
fi
. ./version
make -j$(makeJobsLimit)
condition: eq(variables['packager'],'rpm')
displayName: 'Build enterprise rpm'
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
mkdir build-business
cd build-business
export SYNERGY_BUSINESS=1
if [ -z $(which cmake) ]; then cmake3 -DCMAKE_BUILD_TYPE=Release -DSYNERGY_BUSINESS=ON ..; else cmake -DCMAKE_BUILD_TYPE=Release -DSYNERGY_BUSINESS=ON ..; fi
. ./version
make -j$(makeJobsLimit)
displayName: 'Build business'
condition: eq(variables['packager'],'deb')
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
mkdir build-business
cd build-business
if [ -z $(which cmake) ]; then
cmake3 -DCMAKE_BUILD_TYPE=Release -DSYNERGY_BUSINESS=ON -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
else cmake -DCMAKE_BUILD_TYPE=Release -DSYNERGY_BUSINESS=ON -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
fi
. ./version
make -j$(makeJobsLimit)
condition: eq(variables['packager'],'rpm')
displayName: 'Build business rpm'
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
. ./build-release/version
SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH"
SYNERGY_REVISION=`git rev-parse --short=8 HEAD`
SYNERGY_DEB_VERSION="${SYNERGY_VERSION}.${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}"
SYNERGY_RPM_VERSION="${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION_BUILD]${SYNERGY_VERSION_BUILD}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION_STAGE]${SYNERGY_VERSION_STAGE}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION]${SYNERGY_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_REVISION]${SYNERGY_REVISION}"
echo "##vso[task.setvariable variable=SYNERGY_DEB_VERSION]${SYNERGY_DEB_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_RPM_VERSION]${SYNERGY_RPM_VERSION}"
displayName: "Setup variables"
- script: |
python3 CI/deb_changelog.py synergy "${SYNERGY_DEB_VERSION}"
export GPG_TTY=$(tty)
debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT -us -uc
mkdir standard_package
cd ..
filename=$(ls synergy_*.deb)
filename_new="synergy_${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}_$(name)${filename##*${SYNERGY_REVISION}}"
mv $filename $(Build.Repository.LocalPath)/standard_package/$filename_new
cd $(Build.Repository.LocalPath)/standard_package
md5sum $filename_new >> ${filename_new}.checksum.txt
sha1sum $filename_new >> ${filename_new}.checksum.txt
sha256sum $filename_new >> ${filename_new}.checksum.txt
ls -la
displayName: "Package Binary DEB(Standard)"
condition: eq(variables['packager'],'deb')
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
export SYNERGY_ENTERPRISE=1
python3 CI/deb_changelog.py synergy "${SYNERGY_DEB_VERSION}"
export GPG_TTY=$(tty)
debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT -us -uc
mkdir enterprise_package
cd ..
filename=$(ls synergy_*.deb)
filename_new="synergy-enterprise_${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}_$(name)${filename##*$(SYNERGY_REVISION)}"
mv $filename $(Build.Repository.LocalPath)/enterprise_package/$filename_new
cd $(Build.Repository.LocalPath)/enterprise_package
md5sum $filename_new >> ${filename_new}.checksum.txt
sha1sum $filename_new >> ${filename_new}.checksum.txt
sha256sum $filename_new >> ${filename_new}.checksum.txt
ls -la
displayName: "Package Binary DEB(Enterprise)"
condition: eq(variables['packager'],'deb')
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
export SYNERGY_BUSINESS=1
python3 CI/deb_changelog.py synergy "${SYNERGY_DEB_VERSION}"
export GPG_TTY=$(tty)
debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT -us -uc
mkdir business_package
cd ..
filename=$(ls synergy_*.deb)
filename_new="synergy-business_${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}_$(name)${filename##*$(SYNERGY_REVISION)}"
mv $filename $(Build.Repository.LocalPath)/business_package/$filename_new
cd $(Build.Repository.LocalPath)/business_package
md5sum $filename_new >> ${filename_new}.checksum.txt
sha1sum $filename_new >> ${filename_new}.checksum.txt
sha256sum $filename_new >> ${filename_new}.checksum.txt
ls -la
displayName: "Package Binary DEB(Business)"
condition: eq(variables['packager'],'deb')
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
cd build-release
make install/strip
cd rpm
rpmbuild -bb --define "_topdir $(pwd)" --buildroot $(pwd)/BUILDROOT synergy.spec
rpmlint --verbose RPMS/*.rpm
cd RPMS
filename=$(ls *.rpm)
md5sum $filename >> ${filename}.checksum.txt
sha1sum $filename >> ${filename}.checksum.txt
sha256sum $filename >> ${filename}.checksum.txt
cd ..
mv RPMS $(Build.Repository.LocalPath)/standard_package
displayName: "Package Binary RPM(standard)"
condition: eq(variables['packager'],'rpm')
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
cd build-ent
make install/strip
cd rpm
rpmbuild -bb --define "_topdir $(pwd)" --buildroot $(pwd)/BUILDROOT synergy-enterprise.spec
rpmlint --verbose RPMS/*.rpm
cd RPMS
filename=$(ls *.rpm)
md5sum $filename >> ${filename}.checksum.txt
sha1sum $filename >> ${filename}.checksum.txt
sha256sum $filename >> ${filename}.checksum.txt
cd ..
mv RPMS $(Build.Repository.LocalPath)/enterprise_package
ls -la
displayName: "Package Binary RPM(enterprise)"
condition: eq(variables['packager'],'rpm')
env:
GIT_COMMIT: $(Build.SourceVersion)
- script: |
cd build-business
make install/strip
cd rpm
rpmbuild -bb --define "_topdir $(pwd)" --buildroot $(pwd)/BUILDROOT synergy-business.spec
rpmlint --verbose RPMS/*.rpm
cd RPMS
filename=$(ls *.rpm)
md5sum $filename >> ${filename}.checksum.txt
sha1sum $filename >> ${filename}.checksum.txt
sha256sum $filename >> ${filename}.checksum.txt
cd ..
mv RPMS $(Build.Repository.LocalPath)/business_package
ls -la
displayName: "Package Binary RPM(business)"
condition: eq(variables['packager'],'rpm')
env:
GIT_COMMIT: $(Build.SourceVersion)
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Binary Storage'
sourceFolder: './standard_package'
contents: '*'
targetFolder: '$(BINARIES_DIR)/v1-core-standard/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/b$(SYNERGY_VERSION_BUILD)-$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send standard package to Binary Storage'
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Binary Storage'
sourceFolder: './enterprise_package'
contents: '*'
targetFolder: '$(BINARIES_DIR)/v1-core-enterprise/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/b$(SYNERGY_VERSION_BUILD)-$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send enterprise package to Binary Storage'
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Binary Storage'
sourceFolder: './business_package'
contents: '*'
targetFolder: '$(BINARIES_DIR)/v1-core-business/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/b$(SYNERGY_VERSION_BUILD)-$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send business package to Binary Storage'

View file

@ -1,150 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os.path
# Use like this: dmgbuild -s settings.py "Test Volume" test.dmg
# dmgbuild -s settings.py -D app=/path/to/My.app "My Application" MyApp.dmg
# .. Useful stuff ..............................................................
application = defines.get('app', 'Synergy.app')
appname = os.path.basename(application)
# .. Basics ....................................................................
# Volume format (see hdiutil create -help)
format = defines.get('format', 'UDBZ')
# Volume size
size = defines.get('size', None)
# Files to include
files = [ application ]
# Symlinks to create
symlinks = { 'Applications': '/Applications' }
# Volume icon
#
# You can either define icon, in which case that icon file will be copied to the
# image, *or* you can define badge_icon, in which case the icon file you specify
# will be used to badge the system's Removable Disk icon
#
icon = os.path.join(application, 'Contents', 'Resources', 'Drive.icns')
# Where to put the icons
icon_locations = {
appname: (144, 190),
'Applications': (455, 190),
'.background.tiff': (150, 450),
'.VolumeIcon.icns': (455, 450)
}
# .. Window configuration ......................................................
# Background
#
# This is a STRING containing any of the following:
#
# #3344ff - web-style RGB color
# #34f - web-style RGB color, short form (#34f == #3344ff)
# rgb(1,0,0) - RGB color, each value is between 0 and 1
# hsl(120,1,.5) - HSL (hue saturation lightness) color
# hwb(300,0,0) - HWB (hue whiteness blackness) color
# cmyk(0,1,0,0) - CMYK color
# goldenrod - X11/SVG named color
# builtin-arrow - A simple built-in background with a blue arrow
# /foo/bar/baz.png - The path to an image file
#
# The hue component in hsl() and hwb() may include a unit; it defaults to
# degrees ('deg'), but also supports radians ('rad') and gradians ('grad'
# or 'gon').
#
# Other color components may be expressed either in the range 0 to 1, or
# as percentages (e.g. 60% is equivalent to 0.6).
background = defines.get('background', 'builtin-arrow')
show_status_bar = False
show_tab_view = False
show_toolbar = False
show_pathbar = False
show_sidebar = False
sidebar_width = 180
# Window position in ((x, y), (w, h)) format
window_rect = ((200, 120), (620, 420))
# Select the default view; must be one of
#
# 'icon-view'
# 'list-view'
# 'column-view'
# 'coverflow'
#
default_view = 'icon-view'
# General view configuration
show_icon_preview = False
# Set these to True to force inclusion of icon/list view settings (otherwise
# we only include settings for the default view)
include_icon_view_settings = 'auto'
include_list_view_settings = 'auto'
# .. Icon view configuration ...................................................
arrange_by = None
grid_offset = (0, 0)
grid_spacing = 100
scroll_position = (0, 0)
label_pos = 'bottom' # or 'right'
text_size = 16
icon_size = 100
# .. List view configuration ...................................................
# Column names are as follows:
#
# name
# date-modified
# date-created
# date-added
# date-last-opened
# size
# kind
# label
# version
# comments
#
list_icon_size = 16
list_text_size = 12
list_scroll_position = (0, 0)
list_sort_by = 'name'
list_use_relative_dates = True
list_calculate_all_sizes = False,
list_columns = ('name', 'date-modified', 'size', 'kind', 'date-added')
list_column_widths = {
'name': 300,
'date-modified': 181,
'date-created': 181,
'date-added': 181,
'date-last-opened': 181,
'size': 97,
'kind': 115,
'label': 100,
'version': 75,
'comments': 300,
}
list_column_sort_directions = {
'name': 'ascending',
'date-modified': 'descending',
'date-created': 'descending',
'date-added': 'descending',
'date-last-opened': 'descending',
'size': 'descending',
'kind': 'ascending',
'label': 'ascending',
'version': 'ascending',
'comments': 'ascending',
}

View file

@ -1,152 +0,0 @@
steps:
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'AppleSigningCert.cer'
certPwd: '$(AppleCertPass)'
keychain: 'temp'
- task: CmdLine@2
inputs:
script: |
python3 CI/build_version.py
displayName: 'Update Version.cmake'
- task: CmdLine@2
inputs:
script: |
python3 -m pip install dmgbuild
python3 -m pip install aqtinstall==0.11.1
displayName: 'Installing utilities'
- task: CmdLine@2
inputs:
script: |
python3 -m aqt install $(QT_VERSION) mac desktop -O $(QT_PATH)
displayName: 'Installing QT'
- task: CmdLine@2
inputs:
script: |
export PATH="$(Qt5_DIR)/bin:$PATH"
mkdir build
cd build
cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=$(version) \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CONFIGURATION_TYPES=Release ..
displayName: 'Cmake standard'
condition: eq(variables['buildType'], 'standard')
env:
GIT_COMMIT: $(Build.SourceVersion)
CMAKE_PREFIX_PATH: "$(Qt5_DIR);/usr/local/opt/openssl"
- task: CmdLine@2
inputs:
script: |
export PATH="$(Qt5_DIR)/bin:$PATH"
export SYNERGY_ENTERPRISE=1
mkdir build
cd build
cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=$(version) \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CONFIGURATION_TYPES=Release \
-DSYNERGY_ENTERPRISE=ON ..
displayName: 'Cmake enterprise'
condition: eq(variables['buildType'], 'enterprise')
env:
GIT_COMMIT: $(Build.SourceVersion)
CMAKE_PREFIX_PATH: "$(Qt5_DIR);/usr/local/opt/openssl"
- task: CmdLine@2
inputs:
script: |
export PATH="$(Qt5_DIR)/bin:$PATH"
export SYNERGY_BUSINESS=1
mkdir build
cd build
cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=$(version) \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CONFIGURATION_TYPES=Release \
-DSYNERGY_BUSINESS=ON ..
displayName: 'Cmake business'
condition: eq(variables['buildType'], 'business')
env:
GIT_COMMIT: $(Build.SourceVersion)
CMAKE_PREFIX_PATH: "$(Qt5_DIR);/usr/local/opt/openssl"
- task: CmdLine@2
inputs:
script: |
export PATH="$(Qt5_DIR)/bin:$PATH"
cd build
. ./version
make -j
make install/strip
displayName: 'Compiling'
env:
GIT_COMMIT: $(Build.SourceVersion)
- task: CmdLine@2
inputs:
script: |
export PATH="$(Qt5_DIR)/bin:$PATH"
macdeployqt $(Build.Repository.LocalPath)/build/bundle/Synergy.app -codesign="$CODESIGN_ID"
codesign -f --options runtime --deep -s "$CODESIGN_ID" $(Build.Repository.LocalPath)/build/bundle/Synergy.app
ln -s /Applications $(Build.Repository.LocalPath)/build/bundle/Applications
displayName: 'Signing'
env:
CODESIGN_ID: "Developer ID Application: Symless Ltd (4HX897Y6GJ)"
- script: |
. ./build/version
SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH"
SYNERGY_REVISION=`git rev-parse --short=8 HEAD`
SYNERGY_DMG_VERSION="${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}"
SYNERGY_DMG_FILENAME=$(prefix)_${SYNERGY_DMG_VERSION}_macos_$(platform).dmg
echo "##vso[task.setvariable variable=SYNERGY_VERSION_STAGE]${SYNERGY_VERSION_STAGE}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION_BUILD]${SYNERGY_VERSION_BUILD}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION]${SYNERGY_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_REVISION]${SYNERGY_REVISION}"
echo "##vso[task.setvariable variable=SYNERGY_DMG_VERSION]${SYNERGY_DMG_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_DMG_FILENAME]${SYNERGY_DMG_FILENAME}"
displayName: "Setup variables"
- task: CmdLine@2
inputs:
script: |
dmgbuild \
-s CI/MacOS/installator_settings.py \
-D app=$(Build.Repository.LocalPath)/build/bundle/Synergy.app \
-D background=$(Build.Repository.LocalPath)/build/bundle/Synergy.app/Contents/Resources/.installer_background.tiff \
"Synergy" \
$(SYNERGY_DMG_FILENAME)
mkdir pkg
mv $(SYNERGY_DMG_FILENAME) pkg/
cd pkg
md5 -r $(SYNERGY_DMG_FILENAME) >> $(SYNERGY_DMG_FILENAME).checksum.txt
shasum $(SYNERGY_DMG_FILENAME) >> $(SYNERGY_DMG_FILENAME).checksum.txt
shasum -a 256 $(SYNERGY_DMG_FILENAME) >> $(SYNERGY_DMG_FILENAME).checksum.txt
displayName: 'Create Installer'
- task: Bash@3
inputs:
filePath: 'CI/MacOS/notorize.sh'
workingDirectory: 'pkg/'
env:
ASC_USERNAME: $(ASC_USERNAME)
NOTORY_APP_PASSWORD: $(NOTORY_APP_PASSWORD)
displayName: 'Submit for Notarization'
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Binary Storage'
sourceFolder: '$(Build.Repository.LocalPath)/pkg'
contents: '*'
targetFolder: '$(BINARIES_DIR)/v1-core-$(buildType)/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/b$(SYNERGY_VERSION_BUILD)-$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send package to Binary Storage'

View file

@ -1,40 +0,0 @@
#! /bin/bash
#Notarization script from https://github.com/rednoah/notarize-app/blob/master/notarize-app
BUNDLE_ID=com.symless.synergy.${SYNERGY_VERSION}.${SYNERGY_REVISION}
echo "User: ${ASC_USERNAME}"
echo "Bundle: ${BUNDLE_ID}"
# create temporary files
NOTARIZE_APP_LOG=$(mktemp -t notarize-app)
NOTARIZE_INFO_LOG=$(mktemp -t notarize-info)
# submit app for notarization
if xcrun altool --notarize-app --primary-bundle-id "$BUNDLE_ID" --username "$ASC_USERNAME" --password "${NOTORY_APP_PASSWORD}" -f "${SYNERGY_DMG_FILENAME}" > "$NOTARIZE_APP_LOG" 2>&1; then
cat "$NOTARIZE_APP_LOG"
RequestUUID=$(awk -F ' = ' '/RequestUUID/ {print $2}' "$NOTARIZE_APP_LOG")
# check status periodically
while sleep 60 && date; do
# check notarization status
if xcrun altool --notarization-info "$RequestUUID" --username "$ASC_USERNAME" --password "${NOTORY_APP_PASSWORD}" > "$NOTARIZE_INFO_LOG" 2>&1; then
cat "$NOTARIZE_INFO_LOG"
# once notarization is complete, run stapler and exit
if ! grep -q "Status: in progress" "$NOTARIZE_INFO_LOG"; then
xcrun stapler staple "${SYNERGY_DMG_FILENAME}"
exit
fi
else
cat "$NOTARIZE_INFO_LOG" 1>&2
exit 1
fi
done
else
cat "$NOTARIZE_APP_LOG" 1>&2
exit 1
fi

View file

@ -1,244 +0,0 @@
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
New-Item -Force -ItemType Directory -Path ".\deps\"
$client = new-object System.Net.WebClient
$client.DownloadFile("https://binaries.symless.com/bonjour/BonjourSDK.zip",".\deps\bonjoursdk.zip")
$client.DownloadFile("https://binaries.symless.com/bonjour/Bonjour64.msi",".\deps\Bonjour64.msi")
displayName: 'Downloading Bonjour SKD'
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
addToPath: true
architecture: 'x64'
displayName: 'Set python version'
- script: |
python CI/build_version.py
displayName: 'Update Version.cmake'
- script: |
cd $(Build.SourcesDirectory)
python -m pip install aqtinstall
displayName: 'Install aqtinstall'
- script: |
cd $(Build.SourcesDirectory)
python -m aqt install -b $(QLI_BASE_URL) --outputdir $(Build.Repository.LocalPath)\\deps\\Qt $(QT_VERSION) windows desktop win64_msvc2017_64
python -m aqt install -b $(QLI_BASE_URL) --outputdir $(Build.Repository.LocalPath)\\deps\\Qt $(QT_VERSION) windows desktop win32_msvc2017
displayName: 'Install Qt $(QT_VERSION)'
- task: ExtractFiles@1
inputs:
archiveFilePatterns: './deps/*.zip'
destinationFolder: './deps/'
cleanDestinationFolder: false
displayName: 'Extracting zips'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Get-ChildItem '.\deps'
msiexec.exe /i ${pwd}\deps\Bonjour64.msi INSTALLDIR="${pwd}\deps\Bonjour" /qb
displayName: 'Installing bonjour SDK'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
choco install openssl -y --forcex64 --no-progress
Copy-Item -Path "C:\\Program Files\\OpenSSL" -Destination "$(Build.Repository.LocalPath)\\ext\\openssl\\windows\\x64" -Recurse
displayName: 'Installing OpenSSL (x64)'
- script: |
call "%ENV_BAT%" -arch=x64
set BONJOUR_SDK_HOME=%cd%\%BONJOUR_SDK_DIR%
mkdir build64
cd build64
IF "$(buildType)"=="enterprise" (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON ..
) else IF "$(buildType)"=="business" (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -DCMAKE_BUILD_TYPE=Release -DSYNERGY_BUSINESS=ON ..
) else (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -DCMAKE_BUILD_TYPE=Release ..
)
displayName: 'Cmake x64 Standard'
env:
ENV_BAT: $(ENV_BAT)
BONJOUR_SDK_DIR: $(BONJOUR_SDK_DIR)
MSARCH: 'x64'
GIT_COMMIT: $(Build.SourceVersion)
CMAKE_PREFIX_PATH: "$(QT_BIN_PATH);$(Build.Repository.LocalPath)\\ext\\openssl\\windows\\x64"
- script: |
call "%ENV_BAT%" -arch=x64
cd build64
call version
msbuild synergy-core.sln /p:Platform="x64" /p:Configuration=Release
displayName: 'Compiling x64'
env:
ENV_BAT: $(ENV_BAT)
GIT_COMMIT: $(Build.SourceVersion)
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
New-Item -Force -ItemType Directory -Path "C:\\Program Files (x86)\\OpenSSL-Win32"
choco uninstall openssl -y --ignore-autouninstaller-failure --no-progress
choco install openssl -y --forcex86 --no-progress
Copy-Item -Path "C:\\Program Files (x86)\\OpenSSL-Win32" -Destination "$(Build.Repository.LocalPath)\\ext\\openssl\\windows\\x86" -Recurse
displayName: 'Installing OpenSSL (x86)'
- script: |
call "%ENV_BAT%" -arch=x86
set BONJOUR_SDK_HOME=%cd%\%BONJOUR_SDK_DIR%
mkdir build32
cd build32
IF "$(buildType)"=="enterprise" (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON ..
) else (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -DCMAKE_BUILD_TYPE=Release ..
)
displayName: 'Cmake x32 Standard'
env:
ENV_BAT: $(ENV_BAT)
BONJOUR_SDK_DIR: $(BONJOUR_SDK_DIR)
MSARCH: 'Win32'
GIT_COMMIT: $(Build.SourceVersion)
CMAKE_PREFIX_PATH: "$(QT_BIN_PATH_32);$(Build.Repository.LocalPath)\\ext\\openssl\\windows\\x86"
- script: |
call "%ENV_BAT%" -arch=x86
cd build32
call version
msbuild synergy-core.sln /p:Platform="Win32" /p:Configuration=Release
displayName: 'Compiling x32'
env:
ENV_BAT: $(ENV_BAT)
GIT_COMMIT: $(Build.SourceVersion)
- task: codesigning@2
inputs:
secureFileId: 'WindowsSigningCert.pfx'
signCertPassword: '$(CODESIGN_PWD)'
files: '*\bin\Release\*.exe'
timeServer: 'http://timestamp.digicert.com'
hashingAlgorithm: 'SHA256'
displayName: "Signing Synergy binaries"
- task: MSBuild@1
inputs:
solution: 'build64/installer/Synergy.sln'
msbuildVersion: '16.0'
msbuildArchitecture: 'x64'
platform: 'x64'
configuration: 'Release'
msbuildArguments: '/m'
maximumCpuCount: true
displayName: 'Making installer x64'
env:
QT_PATH: $(QT_BIN_PATH)
- task: MSBuild@1
inputs:
solution: 'build32/installer/Synergy.sln'
msbuildVersion: '16.0'
msbuildArchitecture: 'x86'
platform: 'x86'
configuration: 'Release'
msbuildArguments: '/m'
maximumCpuCount: true
displayName: 'Making installer x86'
env:
QT_PATH: $(QT_BIN_PATH_32)
- task: codesigning@2
inputs:
secureFileId: 'WindowsSigningCert.pfx'
signCertPassword: '$(CODESIGN_PWD)'
files: '*\installer\bin\Release\Synergy.msi'
timeServer: 'http://timestamp.digicert.com'
hashingAlgorithm: 'SHA256'
displayName: "Signing installers"
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: 'build32\bin\Release'
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/Synergy_win_x86.zip'
replaceExistingArchive: true
verbose: true
displayName: "Archive 32-bit binaries"
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: 'build64\bin\Release'
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/Synergy_win_x64.zip'
replaceExistingArchive: true
verbose: true
displayName: "Archive 64-bit binaries"
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
- script: |
call ./build64/version
set SYNERGY_VERSION=%SYNERGY_VERSION_MAJOR%.%SYNERGY_VERSION_MINOR%.%SYNERGY_VERSION_PATCH%
git rev-parse --short=8 HEAD > gitversion
set /p SYNERGY_REVISION= < gitversion
echo ##vso[task.setvariable variable=SYNERGY_VERSION_BUILD]%SYNERGY_VERSION_BUILD%
echo ##vso[task.setvariable variable=SYNERGY_VERSION_STAGE]%SYNERGY_VERSION_STAGE%
echo ##vso[task.setvariable variable=SYNERGY_VERSION]%SYNERGY_VERSION%
echo ##vso[task.setvariable variable=SYNERGY_REVISION]%SYNERGY_REVISION%
displayName: "Set Variables"
- script: |
cd $(Build.Repository.LocalPath)\build32\installer\bin\Release\
set FILENAME=$(prefix)_$(SYNERGY_VERSION)-$(SYNERGY_VERSION_STAGE).$(SYNERGY_REVISION)_windows_x86.msi
ren "Synergy.msi" "%FILENAME%"
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe md5 %FILENAME% > %FILENAME%.checksum.txt
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha1 %FILENAME% >> %FILENAME%.checksum.txt
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha256 %FILENAME% >> %FILENAME%.checksum.txt
cd $(Build.Repository.LocalPath)\build64\installer\bin\Release\
set FILENAME=$(prefix)_$(SYNERGY_VERSION)-$(SYNERGY_VERSION_STAGE).$(SYNERGY_REVISION)_windows_x64.msi
ren "Synergy.msi" "%FILENAME%"
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe md5 %FILENAME% > %FILENAME%.checksum.txt
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha1 %FILENAME% >> %FILENAME%.checksum.txt
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha256 %FILENAME% >> %FILENAME%.checksum.txt
displayName: "Rename files"
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Binary Storage'
sourceFolder: '$(Build.ArtifactStagingDirectory)/'
contents: '*.zip'
targetFolder: '$(BINARIES_DIR)/v1-core-$(buildType)/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/b$(SYNERGY_VERSION_BUILD)-$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send archives to Binary Storage'
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Binary Storage'
sourceFolder: '$(Build.Repository.LocalPath)\build32\installer\bin\Release\'
contents: '*'
targetFolder: '$(BINARIES_DIR)/v1-core-$(buildType)/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/b$(SYNERGY_VERSION_BUILD)-$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send x86 package to Binary Storage'
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Binary Storage'
sourceFolder: '$(Build.Repository.LocalPath)\build64\installer\bin\Release\'
contents: '*'
targetFolder: '$(BINARIES_DIR)/v1-core-$(buildType)/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/b$(SYNERGY_VERSION_BUILD)-$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send x64 package to Binary Storage'

View file

@ -1,137 +0,0 @@
import subprocess
class VersionPart:
def __init__(self, part = ''):
self.prefix = ''
self.suffix = ''
self.number = 0
if part:
self.__parsePreffix(part)
self.__parseNumber(part)
self.__parseSuffix(part)
def __parsePreffix(self, part):
if not part[0].isdigit():
for i in part:
if not i.isdigit():
self.prefix += i
else:
break
def __parseNumber(self, part):
start = len(self.prefix)
end = part.find('-')
if end > 0:
self.number = int(part[start:end])
else:
self.number = int(part[start:])
def __parseSuffix(self, part):
items = part.split('-')
if len(items) == 2:
self.suffix = '-' + items[1]
def __str__(self):
return self.prefix + str(self.number) + self.suffix
class Version:
def __init__(self, version):
versionParts = version.split('.')
if len(versionParts) == 3:
self.major = VersionPart(versionParts[0])
self.minor = VersionPart(versionParts[1])
self.build = VersionPart(versionParts[2])
self.patch = VersionPart()
self.patch.number = self.build.number
elif len(versionParts) == 4:
self.major = VersionPart(versionParts[0])
self.minor = VersionPart(versionParts[1])
self.patch = VersionPart(versionParts[2])
self.build = VersionPart(versionParts[3])
else:
print('ERROR: Wrong version number')
def isSamePatch(self, version):
return (self.major.number == version.major.number and
self.minor.number == version.minor.number and
self.patch.number == version.patch.number)
def __str__(self):
result = str(self.major) + '.'
result += str(self.minor) + '.'
result += str(self.patch) + '.'
result += str(self.build)
return result
class VersionFile:
def __init__(self, file):
self.file = file
def setOption(self, name, value):
fp = open(self.file, 'rt+')
content = ''
for line in fp:
print(line)
if line.find(name) != -1:
line = 'set ('+ name + ' ' + value + ')'
content += line
fp.write(content)
fp.close()
def findVersion(versions, cmakeVersion):
gitVersion = Version(versions[0])
for version in versions:
ver = Version(version)
if ver.isSamePatch(cmakeVersion):
gitVersion = ver
break
print('INFO: Version '+ str(gitVersion) + ' has been read from git')
return gitVersion
def getVersionFromGit(cmakeVersion):
try:
taggedRevision = subprocess.check_output(('git rev-list --tags --max-count=100').split(), universal_newlines=True)
cmd = ('git describe --tags ' + taggedRevision).split()
versions = subprocess.check_output(cmd, universal_newlines=True).split()
return findVersion(versions, cmakeVersion)
except subprocess.CalledProcessError:
print('ERROR: Unable to get version from git')
exit(1)
def updateVersionFile(number):
fp = open('cmake/Version.cmake')
content = fp.read()
fp.close()
fp = open('cmake/Version.cmake', 'wt')
fp.write(content.replace('set (SYNERGY_VERSION_BUILD 1)', 'set (SYNERGY_VERSION_BUILD ' + str(number) + ')'))
fp.close()
def getOptionValue(source, option):
start = source.find(option)
if (start != -1):
start += len(option) + 1
end = source.find(')', start)
return source[start : end]
else:
print("ERROR: Can't find option <" + option + ">");
def getVersionFromFile():
fp = open('cmake/Version.cmake')
content = fp.read()
fp.close()
major = getOptionValue(content, 'SYNERGY_VERSION_MAJOR')
minor = getOptionValue(content, 'SYNERGY_VERSION_MINOR')
patch = getOptionValue(content, 'SYNERGY_VERSION_PATCH')
return Version(major + '.' + minor + '.' + patch)
if __name__ == '__main__':
cmakeVersion = getVersionFromFile()
gitVersion = getVersionFromGit(cmakeVersion)
updateVersionFile(gitVersion.build.number)
print('INFO: Build number is: <' + str(gitVersion) + '>')

View file

@ -1,4 +0,0 @@
steps:
- checkout: self
fetchDepth: 1
submodules: recursive

View file

@ -1,42 +0,0 @@
from argparse import ArgumentParser
from datetime import datetime, timezone
import re
IGNORE_SEGMENTS = ['CI changes:']
if __name__ == '__main__':
parser = ArgumentParser()
parser.add_argument('name', type=str, help='Name of the package')
parser.add_argument('version', type=str, help='Version of the package')
parser.add_argument('-d', '--distribution', type=str, default='unstable', help='Distribution the package is built for')
parser.add_argument('-u', '--urgency', type=str, default='low', help='Urgency of the package')
args = parser.parse_args()
build_time = datetime.now(timezone.utc).strftime('%a, %d %b %Y %H:%M:%S %z') # day-of-week, dd month yyyy hh:mm:ss +zzzz
version_str = re.match('^\d+\.\d+\.\d+', args.version).group(0)
with open('ChangeLog', 'r', encoding='utf8') as in_file, open('debian/changelog', 'w+', encoding='utf8') as out_file:
out_file.write('{} ({}) {}; urgency={}\n'.format(args.name, args.version, args.distribution, args.urgency))
in_section = False
ignore_segment = False
line = in_file.readline()
while line:
if line.startswith('v'):
if line.startswith('v{}'.format(version_str)):
in_section = True
elif in_section:
break
elif not in_section:
# skip this line and read in the next
pass
elif line.strip().replace('=', '') == '':
ignore_segment = False
elif line.strip() in IGNORE_SEGMENTS:
ignore_segment = True
elif line.strip().endswith(':'):
out_file.write('\n * {}'.format(line.strip()[:-1]))
else:
if in_section and not ignore_segment:
while line.startswith(('#', '|', '-')):
line = ' '.join(line.split()[1:])
out_file.write('\n - {}'.format(line))
line = in_file.readline()
out_file.write('\n\n -- Symless <engineering@symless.com> {}\n'.format(build_time))

View file

@ -1,37 +0,0 @@
jobs:
- job: DoxygenDoc
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
pool:
vmImage: 'ubuntu-latest'
steps:
- script: |
sudo DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get -y install doxygen graphviz
displayName: 'Install Pakages'
- script: |
doxygen Doxyfile
cd doxygen
tar -czvf ../docs.tar.gz ./*
displayName: 'Generate Docs'
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: '.'
contents: 'docs.tar.gz'
targetFolder: 'synergy-core'
readyTimeout: '20000'
displayName: 'Publish files to sandor'
- task: SSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
runOptions: 'commands'
commands: |
tar -C ./synergy-core/docs -xzvf ./synergy-core/docs.tar.gz --overwrite
readyTimeout: '20000'
displayName: 'Extract files on sandor'

View file

@ -17,6 +17,7 @@ CI changes:
- #7283 Update all workflows and fix broken macOS workflows
- #7313 Fix CodeQL workflow: Failed to perl 404 Not Found
- #7317 Bump sonar-scanner-cli to 5.0.1.3006
- #7318 Remove Azure Pipelines config entirely
# 1.14.6

View file

@ -1,148 +0,0 @@
pr: none
trigger: none
jobs:
- template: CI/job-doxygen.yml
- job: Linux
pool:
vmImage: "ubuntu-latest"
strategy:
matrix:
ubuntu1604:
image: symless/synergy-core:ubuntu16.04
packager: deb
name: ubuntu16
makeJobsLimit: 1
ubuntu1804:
image: symless/synergy-core:ubuntu18.04
packager: deb
name: ubuntu18
ubuntu2004:
image: symless/synergy-core:ubuntu20.04
packager: deb
name: ubuntu20
ubuntu2104:
image: symless/synergy-core:ubuntu21.04
packager: deb
name: ubuntu21
ubuntu2204:
image: symless/synergy-core:ubuntu22.04
packager: deb
name: ubuntu22
debian9:
image: symless/synergy-core:debian9
packager: deb
name: debian9
debian10:
image: symless/synergy-core:debian10
packager: deb
name: debian10
debian11:
image: symless/synergy-core:debian11
packager: deb
name: debian11
fedora33:
image: symless/synergy-core:fedora33
packager: rpm
name: fedora33
fedora34:
image: symless/synergy-core:fedora34
packager: rpm
name: fedora34
fedora35:
image: symless/synergy-core:fedora35
packager: rpm
name: fedora35
fedora36:
image: symless/synergy-core:fedora36
packager: rpm
name: fedora36
fedora37:
image: symless/synergy-core:fedora37
packager: rpm
name: fedora37
fedora38:
image: symless/synergy-core:fedora38
packager: rpm
name: fedora38
centos7.6:
image: symless/synergy-core:centos7.6
packager: rpm
name: centos76
centos8:
image: symless/synergy-core:centos8
packager: rpm
name: centos8
container: $[ variables['image'] ]
steps:
- template: CI/checkout.yml
- template: CI/Linux/linux-build.yml
- job: MacOS
strategy:
matrix:
catalina-std:
image: macOS-latest
platform: x86-64
version: 10.14
buildType: "standard"
prefix: "synergy"
catalina-ent:
image: macOS-latest
platform: x86-64
version: 10.14
buildType: "enterprise"
prefix: "synergy-enterprise"
catalina-business:
image: macOS-latest
platform: x86-64
version: 10.14
buildType: "business"
prefix: "synergy-business"
pool:
vmImage: $[ variables['image'] ]
variables:
QT_VERSION: "5.15.2"
QT_PATH: "/usr/local/opt/qt"
Qt5_DIR: "$(QT_PATH)/$(QT_VERSION)/clang_64"
steps:
- template: CI/checkout.yml
- template: CI/MacOS/mac-build.yml
- job: Windows
strategy:
matrix:
vs2019:
image: windows-2019
buildType: "standard"
prefix: "synergy"
vs2019ent:
image: windows-2019
buildType: "enterprise"
prefix: "synergy-enterprise"
vs2019business:
image: windows-2019
buildType: "business"
prefix: "synergy-business"
pool:
vmImage: $[ variables['image'] ]
variables:
QT_VERSION: "5.12.6"
QLI_OUT_DIR: '.\deps\Qt'
QLI_BASE_URL: "http://qt.mirror.constant.com/"
QT_BIN_PATH: '$(Build.Repository.LocalPath)\$(QLI_OUT_DIR)\$(QT_VERSION)\msvc2017_64'
QT_BIN_PATH_32: '$(Build.Repository.LocalPath)\$(QLI_OUT_DIR)\$(QT_VERSION)\msvc2017'
BONJOUR_SDK_DIR: 'deps\BonjourSDK'
ENV_BAT: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\vsdevcmd'
steps:
- template: CI/checkout.yml
- template: CI/Windows/windows-build.yml