160 lines
7.3 KiB
YAML
160 lines
7.3 KiB
YAML
parameters:
|
|
name: ''
|
|
pool: ''
|
|
platform: ''
|
|
arch: ''
|
|
wixVersion: ''
|
|
|
|
jobs:
|
|
- job: ${{ parameters.name }}
|
|
pool: ${{ parameters.pool }}
|
|
steps:
|
|
- bash: |
|
|
echo '##vso[task.setvariable variable=isTag;]true'
|
|
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))
|
|
|
|
- bash: |
|
|
echo '##vso[task.setvariable variable=isSnapshot;]true'
|
|
condition: and(succeeded(), endsWith(variables['Build.SourceBranch'], '-SNAPSHOT'))
|
|
|
|
- script: |
|
|
curl --output ${{ parameters.jdkFile }} -O -J -L ${{ parameters.jdkDownloadUrl }}
|
|
|
|
- task: JavaToolInstaller@0
|
|
inputs:
|
|
versionSpec: ${{ parameters.javaVersion }}
|
|
jdkArchitectureOption: ${{ parameters.arch }}
|
|
jdkSourceOption: LocalDirectory
|
|
jdkFile: ${{ parameters.jdkFile }}
|
|
jdkDestinationDirectory: $(Agent.ToolsDirectory)/binaries/openjdk
|
|
cleanDestinationDirectory: true
|
|
|
|
- script: |
|
|
mkdir "%TOOL_DIR%/WixToolSet.Heat/"
|
|
nuget install WixToolSet.Heat -Version %WIX_VERSION% -OutputDirectory "%TOOL_DIR%"
|
|
dotnet tool install --global wix --version %WIX_VERSION%
|
|
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
|
|
env:
|
|
TOOL_DIR: $(Agent.ToolsDirectory)
|
|
WIX_VERSION: ${{ parameters.wixVersion }}
|
|
|
|
- task: DownloadSecureFile@1
|
|
name: gpgKeyring
|
|
displayName: 'Download GPG Keyring'
|
|
inputs:
|
|
secureFile: 'keyring.gpg'
|
|
|
|
- task: DownloadSecureFile@1
|
|
name: gpgSignKeys
|
|
displayName: 'Download GPG Signing keys'
|
|
inputs:
|
|
secureFile: 'binjr.package.signing.keys.asc'
|
|
|
|
- task: Gradle@2
|
|
condition: succeeded()
|
|
env:
|
|
GPG_KEY_NAME: $(gpg.keyname)
|
|
GPG_PASSPHRASE: $(gpg.passphrase)
|
|
GPG_KEYRING_PATH: $(gpgKeyring.secureFilePath)
|
|
BINJR_BUILD_NUMBER: $(Build.BuildNumber)
|
|
IS_TAG: $(isTag)
|
|
REPO_TAG_NAME: $(Build.SourceBranchName)
|
|
WIX_HEAT_HOME: $(Agent.ToolsDirectory)/wixtoolset.heat.${{ parameters.wixVersion }}/tools/net472/${{ parameters.arch }}
|
|
inputs:
|
|
options: '--stacktrace --info'
|
|
gradleWrapperFile: 'gradlew'
|
|
javaHomeOption: 'JDKVersion'
|
|
jdkVersionOption: 1.${{ parameters.javaVersion }}
|
|
jdkArchitectureOption: ${{ parameters.arch }}
|
|
publishJUnitResults: false
|
|
tasks: 'signPackageDistribution'
|
|
|
|
- task: GithubRelease@0
|
|
condition: and(succeeded(), eq(variables['isTag'], 'true'))
|
|
inputs:
|
|
gitHubConnection: binjr-bot
|
|
repositoryName: binjr/binjr
|
|
action: edit
|
|
tag: $(Build.SourceBranchName)
|
|
assets: |
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/deb/*.deb
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/deb/*.deb.asc
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/rpm/*.rpm
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/rpm/*.rpm.asc
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/dmg/*.dmg
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/dmg/*.dmg.asc
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/pkg/*.pkg
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/pkg/*.pkg.asc
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/msi/*.msi
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/msi/*.msi.asc
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/zip/*.zip
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/zip/*.zip.asc
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/tgz/*.tar.gz
|
|
$(System.DefaultWorkingDirectory)/build/artifacts/tgz/*.tar.gz.asc
|
|
assetUploadMode: 'replace'
|
|
releaseNotesSource: 'file'
|
|
releaseNotesFile: $(System.DefaultWorkingDirectory)/UNRELEASED.md
|
|
addChangeLog: false
|
|
isPreRelease: $(isSnapshot)
|
|
|
|
- bash: |
|
|
echo "**************************************"
|
|
echo "* Install dependencies"
|
|
echo "**************************************"
|
|
wget -qO - https://www.aptly.info/pubkey.txt | sudo apt-key add -
|
|
echo -e '\ndeb http://repo.aptly.info/ squeeze main ' | sudo tee -a /etc/apt/sources.list
|
|
sudo apt update
|
|
sudo apt -y install aptly createrepo-c
|
|
echo "**************************************"
|
|
echo "* GPG setup"
|
|
echo "**************************************"
|
|
export GPG_TTY=$(tty)
|
|
gpg -v --batch --no-tty --pinentry-mode loopback --passphrase "$(gpg.package.passphrase)" --import $(gpgSignKeys.secureFilePath)
|
|
echo "Init GPG" | gpg -v --pinentry-mode loopback --passphrase "$(gpg.package.passphrase)" --batch --no-tty -u $(gpg.package.keyname) --sign --armor
|
|
echo "**************************************"
|
|
echo "* Generate apt repo"
|
|
echo "**************************************"
|
|
aptly --distribution="stable" --comment="binjr apt repository" repo create binjr
|
|
aptly repo add binjr $(System.DefaultWorkingDirectory)/build/artifacts/deb/binjr-*_linux-amd64.deb
|
|
aptly -gpg-key="$(gpg.package.keyname)" publish repo binjr
|
|
echo "**************************************"
|
|
echo "* Signing rpm"
|
|
echo "**************************************"
|
|
echo "%_gpg_name $(gpg.package.keyname)" >> ~/.rpmmacros
|
|
rpm --addsign -v build/artifacts/rpm/binjr-*_linux-amd64.rpm
|
|
echo "**************************************"
|
|
echo "* Cloning repos.binjr.eu"
|
|
echo "**************************************"
|
|
git clone https://github.com/binjr/repos.binjr.eu.git build/tmp/repos.binjr.eu
|
|
cd build/tmp/repos.binjr.eu
|
|
echo "https://binjr-bot:$(gh.access.token)@github.com" >> ~/.git-credentials
|
|
git config credential.helper store
|
|
git config user.email "binjr.bot@free.fr"
|
|
git config user.name "binjr-bot"
|
|
rm -rf apt/dists
|
|
rm -rf apt/pool
|
|
cp -r ~/.aptly/public/dists apt/dists
|
|
cp -r ~/.aptly/public/pool apt/pool
|
|
rm -rf rpm/stable
|
|
mkdir rpm/stable
|
|
cp $(System.DefaultWorkingDirectory)/build/artifacts/rpm/binjr-*_linux-amd64.rpm rpm/stable
|
|
echo "**************************************"
|
|
echo "* Generate rpm repo"
|
|
echo "**************************************"
|
|
createrepo_c -v rpm/stable
|
|
gpg -v --batch --no-tty --pinentry-mode loopback --passphrase "$(gpg.package.passphrase)" -u $(gpg.package.keyname) --detach-sign --armor rpm/stable/repodata/repomd.xml
|
|
cp $(System.DefaultWorkingDirectory)/distribution/bundlers/linux_rpm/binjr.repo rpm/binjr.repo
|
|
echo "**************************************"
|
|
echo "* Upload to repos.binjr.eu"
|
|
echo "**************************************"
|
|
git add .
|
|
git commit --amend -am "Release $BUILD_SOURCEBRANCHNAME"
|
|
git push -f
|
|
git config credential.helper cache
|
|
shred -fuz ~/.git-credentials
|
|
condition: and(succeeded(), eq(variables['isTag'], 'true'), ne(variables['isSnapshot'], 'true'), not(contains(variables['Build.SourceBranch'], '-b')), eq(variables['Agent.OS'], 'Linux'))
|
|
|
|
|
|
|
|
|