1 // compression is incompatible with JEP-210 right now
2 properties([/* compressBuildLog() */])
5 "Android Darwin (Debug)": {
6 throttle(['provisions-android-toolchain']) {
8 archive ("android", "debug", "Darwin")
12 "Android Darwin (Release)": {
13 throttle(['provisions-android-toolchain']) {
14 node ("osx-devices") {
15 archive ("android", "release", "Darwin")
19 "Android Windows (Release)": {
20 throttle(['provisions-android-toolchain']) {
22 archive ("android", "release", "Windows")
26 "Android Linux (Debug)": {
27 throttle(['provisions-android-toolchain']) {
28 node ("debian-9-amd64-exclusive") {
29 archive ("android", "debug", "Linux", "debian-9-amd64multiarchi386-preview", "g++-mingw-w64 gcc-mingw-w64 lib32stdc++6 lib32z1 libz-mingw-w64-dev linux-libc-dev:i386 zlib1g-dev zlib1g-dev:i386", "${env.HOME}")
33 "Android Linux (Release)": {
34 throttle(['provisions-android-toolchain']) {
35 node ("debian-9-amd64-exclusive") {
36 archive ("android", "release", "Linux", "debian-9-amd64multiarchi386-preview", "g++-mingw-w64 gcc-mingw-w64 lib32stdc++6 lib32z1 libz-mingw-w64-dev linux-libc-dev:i386 zlib1g-dev zlib1g-dev:i386", "${env.HOME}")
41 throttle(['provisions-ios-toolchain']) {
42 node ("osx-devices") {
43 archive ("ios", "release", "Darwin")
48 throttle(['provisions-mac-toolchain']) {
49 node ("osx-devices") {
50 archive ("mac", "release", "Darwin")
55 throttle(['provisions-wasm-toolchain']) {
56 node ("ubuntu-1804-amd64") {
57 archive ("wasm", "release", "Linux", "ubuntu-1804-amd64-preview", "npm dotnet-sdk-2.1 nuget")
63 def
archive (product
, configuration
, platform
, chrootname
= "", chrootadditionalpackages
= "", chrootBindMounts
= "") {
64 def isPr
= (env
.ghprbPullId
&& !env
.ghprbPullId
.empty ?
true : false)
65 def monoBranch
= (isPr ?
"pr" : env
.BRANCH_NAME
)
66 def jobName
= (isPr ?
"archive-mono-pullrequest" : "archive-mono")
67 def packageFileName
= null
71 ws ("workspace/${jobName}/${monoBranch}/${product}/${configuration}") {
74 echo
"Running on ${env.NODE_NAME}"
76 // clone and checkout repo
79 utils
= load
"scripts/ci/pipeline/utils.groovy"
82 sh
'git reset --hard HEAD'
83 sh
'git submodule foreach --recursive git reset --hard HEAD'
85 sh
'git submodule foreach --recursive git clean -xdff'
87 // get current commit sha
88 commitHash
= sh (script
: 'git rev-parse HEAD', returnStdout
: true).trim()
89 currentBuild
.displayName
= "${commitHash.substring(0,7)}"
93 utils
.reportGitHubStatus (isPr ? env
.ghprbActualCommit
: commitHash
, "Archive-${product}-${configuration}-${platform}", env
.BUILD_URL
, 'PENDING', 'Building...')
96 timeout (time
: 300, unit
: 'MINUTES') {
97 if (platform
== "Darwin") {
98 def brewpackages
= "autoconf automake ccache cmake coreutils gdk-pixbuf gettext glib gnu-sed gnu-tar intltool ios-deploy jpeg libffi libidn2 libpng libtiff libtool libunistring ninja openssl p7zip pcre pkg-config scons wget xz mingw-w64 make xamarin/xamarin-android-windeps/mingw-zlib"
99 sh
"brew tap xamarin/xamarin-android-windeps"
100 sh
"brew install ${brewpackages} || brew upgrade ${brewpackages}"
101 sh
"CI_TAGS=sdks-${product},no-tests,${configuration} scripts/ci/run-jenkins.sh"
102 } else if (platform
== "Linux") {
103 chroot chrootName
: chrootname
,
104 command
: "CI_TAGS=sdks-${product},no-tests,${configuration} scripts/ci/run-jenkins.sh",
105 bindMounts
: chrootBindMounts
,
106 additionalPackages
: "xvfb xauth mono-devel git python wget bc build-essential libtool autoconf automake gettext iputils-ping cmake lsof libkrb5-dev curl p7zip-full ninja-build zip unzip gcc-multilib g++-multilib mingw-w64 binutils-mingw-w64 openjdk-8-jre ${chrootadditionalpackages}"
107 } else if (platform
== "Windows") {
108 sh
"PATH=\"/usr/bin:/usr/local/bin:$PATH\" CI_TAGS=sdks-${product},win-amd64,no-tests,${configuration} scripts/ci/run-jenkins.sh"
110 throw new Exception("Unknown platform \"${platform}\"")
113 // move Archive to the workspace root
114 packageFileName
= findFiles (glob
: "${product}-${configuration}-${platform}-${commitHash}.zip")[0].name
116 stage('Upload Archive to Azure') {
117 azureUpload(storageCredentialId
: "fbd29020e8166fbede5518e038544343",
118 storageType
: "blobstorage",
119 containerName
: "mono-sdks",
121 filesPath
: "${packageFileName}",
122 allowAnonymousAccess
: true,
124 doNotWaitForPreviousBuild
: true,
125 uploadArtifactsOnlyIfSuccessful
: true)
128 utils
.reportGitHubStatus (isPr ? env
.ghprbActualCommit
: commitHash
, "Archive-${product}-${configuration}-${platform}", "https://xamjenkinsartifact.azureedge.net/mono-sdks/${packageFileName}", 'SUCCESS', packageFileName
)
130 catch (Exception e
) {
131 utils
.reportGitHubStatus (isPr ? env
.ghprbActualCommit
: commitHash
, "Archive-${product}-${configuration}-${platform}", env
.BUILD_URL
, 'FAILURE', "Build failed.")