的
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
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'))
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user