Remove Azure Pipelines config entirely (#7318)
* Remove Azure Pipelines * Update ChangeLog
This commit is contained in:
parent
4c1d5daa00
commit
daf9292c80
12 changed files with 1 additions and 1198 deletions
7
.github/workflows/create-build.yml
vendored
7
.github/workflows/create-build.yml
vendored
|
|
@ -29,10 +29,3 @@ jobs:
|
||||||
prerelease: true
|
prerelease: true
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.RELEASE_EVENT_PROPAGATION_TOKEN }}
|
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 }}"
|
|
||||||
|
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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',
|
|
||||||
}
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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) + '>')
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
steps:
|
|
||||||
- checkout: self
|
|
||||||
fetchDepth: 1
|
|
||||||
submodules: recursive
|
|
||||||
|
|
@ -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))
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -17,6 +17,7 @@ CI changes:
|
||||||
- #7283 Update all workflows and fix broken macOS workflows
|
- #7283 Update all workflows and fix broken macOS workflows
|
||||||
- #7313 Fix CodeQL workflow: Failed to perl 404 Not Found
|
- #7313 Fix CodeQL workflow: Failed to perl 404 Not Found
|
||||||
- #7317 Bump sonar-scanner-cli to 5.0.1.3006
|
- #7317 Bump sonar-scanner-cli to 5.0.1.3006
|
||||||
|
- #7318 Remove Azure Pipelines config entirely
|
||||||
|
|
||||||
# 1.14.6
|
# 1.14.6
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
Loading…
Reference in a new issue