@@ -8,112 +8,115 @@ trigger:
8
8
include :
9
9
- v*.*.*
10
10
11
- variables :
12
- VM_IMAGE : ubuntu-latest
13
- TOOLCHAIN : stable
14
- CARGO_NET_RETRY : 3
15
- CARGO_HTTP_CHECK_REVOKE : false
16
-
17
- pool :
18
- vmImage : $(VM_IMAGE)
19
-
20
- strategy :
21
- matrix :
22
- aarch64-unknown-linux-gnu : { TARGET: aarch64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
23
- arm-unknown-linux-gnueabi : { TARGET: arm-unknown-linux-gnueabi, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
24
- arm-unknown-linux-gnueabihf : { TARGET: arm-unknown-linux-gnueabihf, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
25
- armv7-unknown-linux-gnueabihf : { TARGET: armv7-unknown-linux-gnueabihf, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
26
- i586-unknown-linux-gnu : { TARGET: i586-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
27
- i686-unknown-linux-gnu : { TARGET: i686-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: native qemu-user qemu-system }
28
- mips-unknown-linux-gnu : { TARGET: mips-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
29
- mipsel-unknown-linux-gnu : { TARGET: mipsel-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
30
- mips64-unknown-linux-gnuabi64 : { TARGET: mips64-unknown-linux-gnuabi64, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
31
- mips64el-unknown-linux-gnuabi64 : { TARGET: mips64el-unknown-linux-gnuabi64, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
32
- powerpc-unknown-linux-gnu : { TARGET: powerpc-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
33
- powerpc64-unknown-linux-gnu : { TARGET: powerpc64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
34
- powerpc64le-unknown-linux-gnu : { TARGET: powerpc64le-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
35
- s390x-unknown-linux-gnu : { TARGET: s390x-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-system }
36
- sparc64-unknown-linux-gnu : { TARGET: sparc64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-system }
37
- x86_64-unknown-linux-gnu : { TARGET: x86_64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: native qemu-user qemu-system, DEPLOY: 1, CRATES_IO_PUBLISH: 1 }
38
- aarch64-unknown-linux-musl : { TARGET: aarch64-unknown-linux-musl, STD: 1, RUN: 1 }
39
- arm-unknown-linux-musleabihf : { TARGET: arm-unknown-linux-musleabihf, STD: 1, RUN: 1 }
40
- arm-unknown-linux-musleabi : { TARGET: arm-unknown-linux-musleabi, STD: 1, RUN: 1 }
41
- armv5te-unknown-linux-musleabi : { TARGET: armv5te-unknown-linux-musleabi, STD: 1, RUN: 1 }
42
- armv7-unknown-linux-musleabihf : { TARGET: armv7-unknown-linux-musleabihf, STD: 1, RUN: 1 }
43
- i586-unknown-linux-musl : { TARGET: i586-unknown-linux-musl, STD: 1, RUN: 1 }
44
- i686-unknown-linux-musl : { TARGET: i686-unknown-linux-musl, STD: 1, RUN: 1 }
45
- mips-unknown-linux-musl : { TARGET: mips-unknown-linux-musl, CPP: 1, STD: 1, RUN: 1 }
46
- mipsel-unknown-linux-musl : { TARGET: mipsel-unknown-linux-musl, CPP: 1, STD: 1, RUN: 1 }
47
- x86_64-unknown-linux-musl : { TARGET: x86_64-unknown-linux-musl, STD: 1, RUN: 1, DEPLOY: 1 }
48
- aarch64-linux-android : { TARGET: aarch64-linux-android, CPP: 1, STD: 1, RUN: 1 }
49
- arm-linux-androideabi : { TARGET: arm-linux-androideabi, CPP: 1, STD: 1, RUN: 1 }
50
- armv7-linux-androideabi : { TARGET: armv7-linux-androideabi, CPP: 1, STD: 1, RUN: 1 }
51
- i686-linux-android : { TARGET: i686-linux-android, CPP: 1, STD: 1, RUN: 1 }
52
- x86_64-linux-android : { TARGET: x86_64-linux-android, CPP: 1, STD: 1, RUN: 1 }
53
- i686-apple-darwin : { TARGET: i686-apple-darwin, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, VM_IMAGE: macOS-10.13 }
54
- x86_64-apple-darwin : { TARGET: x86_64-apple-darwin, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, VM_IMAGE: macOS-latest, DEPLOY: 1 }
55
- x86_64-pc-windows-gnu : { TARGET: x86_64-pc-windows-gnu, CPP: 1, STD: 1, RUN: 1 }
56
- # `cargo build` fails with undefined symbols (https://github.com/rust-lang/rust/issues/32859) on `i686-pc-windows-gnu`.
57
- # i686-pc-windows-gnu: { TARGET: i686-pc-windows-gnu, CPP: 1, STD: 1, RUN: 1 }
58
- x86_64-unknown-dragonfly : { TARGET: x86_64-unknown-dragonfly, CPP: 1, DYLIB: 1, TOOLCHAIN: nightly }
59
- # i686-unknown-freebsd: { TARGET: i686-unknown-freebsd, DYLIB: 1, STD: 1 }
60
- # x86_64-unknown-freebsd: { TARGET: x86_64-unknown-freebsd, DYLIB: 1, STD: 1 }
61
- x86_64-unknown-netbsd : { TARGET: x86_64-unknown-netbsd, CPP: 1, DYLIB: 1, STD: 1 }
62
- sparcv9-sun-solaris : { TARGET: sparcv9-sun-solaris, CPP: 1, DYLIB: 1, STD: 1 }
63
- x86_64-sun-solaris : { TARGET: x86_64-sun-solaris, CPP: 1, DYLIB: 1, STD: 1 }
64
- asmjs-unknown-emscripten : { TARGET: asmjs-unknown-emscripten, STD: 1, RUN: 1 }
65
- # `cargo run` fails with an assertion error (https://github.com/rust-lang/cargo/issues/4689) on `wasm32-unknown-emscripten`.
66
- wasm32-unknown-emscripten : { TARGET: wasm32-unknown-emscripten, STD: 1 }
67
- thumbv6m-none-eabi : { TARGET: thumbv6m-none-eabi, STD: 1 }
68
- thumbv7em-none-eabi : { TARGET: thumbv7em-none-eabi, STD: 1 }
69
- thumbv7em-none-eabihf : { TARGET: thumbv7em-none-eabihf, STD: 1 }
70
- thumbv7m-none-eabi : { TARGET: thumbv7m-none-eabi, STD: 1 }
71
- x86_64-pc-windows-msvc : { TARGET: x86_64-pc-windows-msvc, CPP: 1, STD: 1, RUN: 1, VM_IMAGE: vs2017-win2016, DEPLOY: 1 }
72
-
73
- steps :
74
- - template : ci/azure-install-rust.yml
75
- - bash : echo "##vso[task.setvariable variable=OS]$(echo "${AGENT_OS}" | tr '[:upper:]' '[:lower:]')"
76
- displayName : Set OS variable
77
- - bash : echo "##vso[task.setvariable variable=BRANCH]${BUILD_SOURCEBRANCH##refs/heads/}"
78
- displayName : Set BRANCH variable
79
- condition : startsWith(variables['Build.SourceBranch'], 'refs/heads/')
80
- - bash : echo "##vso[task.setvariable variable=TAG]${BUILD_SOURCEBRANCH##refs/tags/}"
81
- displayName : Set TAG variable
82
- condition : startsWith(variables['Build.SourceBranch'], 'refs/tags/')
83
- - bash : ci/test.sh
84
- displayName : Test
11
+ jobs :
12
+ - job :
13
+ pool :
14
+ vmImage : $(VM_IMAGE)
15
+ variables :
16
+ VM_IMAGE : ubuntu-latest
17
+ TOOLCHAIN : stable
18
+ CARGO_NET_RETRY : 3
19
+ CARGO_HTTP_CHECK_REVOKE : false
20
+ strategy :
21
+ matrix :
22
+ aarch64-unknown-linux-gnu : { TARGET: aarch64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
23
+ arm-unknown-linux-gnueabi : { TARGET: arm-unknown-linux-gnueabi, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
24
+ arm-unknown-linux-gnueabihf : { TARGET: arm-unknown-linux-gnueabihf, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
25
+ armv7-unknown-linux-gnueabihf : { TARGET: armv7-unknown-linux-gnueabihf, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
26
+ i586-unknown-linux-gnu : { TARGET: i586-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
27
+ i686-unknown-linux-gnu : { TARGET: i686-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: native qemu-user qemu-system }
28
+ mips-unknown-linux-gnu : { TARGET: mips-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
29
+ mipsel-unknown-linux-gnu : { TARGET: mipsel-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
30
+ mips64-unknown-linux-gnuabi64 : { TARGET: mips64-unknown-linux-gnuabi64, CPP: 1, DYLIB: 1, STD: 1, RUN: 1 }
31
+ mips64el-unknown-linux-gnuabi64 : { TARGET: mips64el-unknown-linux-gnuabi64, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
32
+ powerpc-unknown-linux-gnu : { TARGET: powerpc-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
33
+ powerpc64-unknown-linux-gnu : { TARGET: powerpc64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
34
+ powerpc64le-unknown-linux-gnu : { TARGET: powerpc64le-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-user qemu-system }
35
+ s390x-unknown-linux-gnu : { TARGET: s390x-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-system }
36
+ sparc64-unknown-linux-gnu : { TARGET: sparc64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: qemu-system }
37
+ x86_64-unknown-linux-gnu : { TARGET: x86_64-unknown-linux-gnu, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, RUNNERS: native qemu-user qemu-system, DEPLOY: 1, CRATES_IO_PUBLISH: 1 }
38
+ aarch64-unknown-linux-musl : { TARGET: aarch64-unknown-linux-musl, STD: 1, RUN: 1 }
39
+ arm-unknown-linux-musleabihf : { TARGET: arm-unknown-linux-musleabihf, STD: 1, RUN: 1 }
40
+ arm-unknown-linux-musleabi : { TARGET: arm-unknown-linux-musleabi, STD: 1, RUN: 1 }
41
+ armv5te-unknown-linux-musleabi : { TARGET: armv5te-unknown-linux-musleabi, STD: 1, RUN: 1 }
42
+ armv7-unknown-linux-musleabihf : { TARGET: armv7-unknown-linux-musleabihf, STD: 1, RUN: 1 }
43
+ i586-unknown-linux-musl : { TARGET: i586-unknown-linux-musl, STD: 1, RUN: 1 }
44
+ i686-unknown-linux-musl : { TARGET: i686-unknown-linux-musl, STD: 1, RUN: 1 }
45
+ mips-unknown-linux-musl : { TARGET: mips-unknown-linux-musl, CPP: 1, STD: 1, RUN: 1 }
46
+ mipsel-unknown-linux-musl : { TARGET: mipsel-unknown-linux-musl, CPP: 1, STD: 1, RUN: 1 }
47
+ x86_64-unknown-linux-musl : { TARGET: x86_64-unknown-linux-musl, STD: 1, RUN: 1, DEPLOY: 1 }
48
+ aarch64-linux-android : { TARGET: aarch64-linux-android, CPP: 1, STD: 1, RUN: 1 }
49
+ arm-linux-androideabi : { TARGET: arm-linux-androideabi, CPP: 1, STD: 1, RUN: 1 }
50
+ armv7-linux-androideabi : { TARGET: armv7-linux-androideabi, CPP: 1, STD: 1, RUN: 1 }
51
+ i686-linux-android : { TARGET: i686-linux-android, CPP: 1, STD: 1, RUN: 1 }
52
+ x86_64-linux-android : { TARGET: x86_64-linux-android, CPP: 1, STD: 1, RUN: 1 }
53
+ i686-apple-darwin : { TARGET: i686-apple-darwin, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, VM_IMAGE: macOS-10.13 }
54
+ x86_64-apple-darwin : { TARGET: x86_64-apple-darwin, CPP: 1, DYLIB: 1, STD: 1, RUN: 1, VM_IMAGE: macOS-latest, DEPLOY: 1 }
55
+ x86_64-pc-windows-gnu : { TARGET: x86_64-pc-windows-gnu, CPP: 1, STD: 1, RUN: 1 }
56
+ # `cargo build` fails with undefined symbols (https://github.com/rust-lang/rust/issues/32859) on `i686-pc-windows-gnu`.
57
+ # i686-pc-windows-gnu: { TARGET: i686-pc-windows-gnu, CPP: 1, STD: 1, RUN: 1 }
58
+ x86_64-unknown-dragonfly : { TARGET: x86_64-unknown-dragonfly, CPP: 1, DYLIB: 1, TOOLCHAIN: nightly }
59
+ # i686-unknown-freebsd: { TARGET: i686-unknown-freebsd, DYLIB: 1, STD: 1 }
60
+ # x86_64-unknown-freebsd: { TARGET: x86_64-unknown-freebsd, DYLIB: 1, STD: 1 }
61
+ x86_64-unknown-netbsd : { TARGET: x86_64-unknown-netbsd, CPP: 1, DYLIB: 1, STD: 1 }
62
+ sparcv9-sun-solaris : { TARGET: sparcv9-sun-solaris, CPP: 1, DYLIB: 1, STD: 1 }
63
+ x86_64-sun-solaris : { TARGET: x86_64-sun-solaris, CPP: 1, DYLIB: 1, STD: 1 }
64
+ asmjs-unknown-emscripten : { TARGET: asmjs-unknown-emscripten, STD: 1, RUN: 1 }
65
+ # `cargo run` fails with an assertion error (https://github.com/rust-lang/cargo/issues/4689) on `wasm32-unknown-emscripten`.
66
+ wasm32-unknown-emscripten : { TARGET: wasm32-unknown-emscripten, STD: 1 }
67
+ thumbv6m-none-eabi : { TARGET: thumbv6m-none-eabi, STD: 1 }
68
+ thumbv7em-none-eabi : { TARGET: thumbv7em-none-eabi, STD: 1 }
69
+ thumbv7em-none-eabihf : { TARGET: thumbv7em-none-eabihf, STD: 1 }
70
+ thumbv7m-none-eabi : { TARGET: thumbv7m-none-eabi, STD: 1 }
71
+ x86_64-pc-windows-msvc : { TARGET: x86_64-pc-windows-msvc, CPP: 1, STD: 1, RUN: 1, VM_IMAGE: vs2017-win2016, DEPLOY: 1 }
85
72
timeoutInMinutes : 360
86
- - bash : cargo publish
87
- displayName : Publish on crates.io
88
- env :
89
- CARGO_REGISTRY_TOKEN : $(CARGO_REGISTRY_TOKEN)
90
- condition : and(startsWith(variables['TAG'], 'v'), eq(variables['CRATES_IO_PUBLISH'], '1'))
91
- - bash : ci/build_release.sh
92
- displayName : Build Release
93
- condition : eq(variables['DEPLOY'], '1')
94
- - task : ArchiveFiles@2
95
- inputs :
96
- includeRootFolder : false
97
- archiveType : tar
98
- tarCompression : gz
99
- archiveFile : $(Build.ArtifactStagingDirectory)/cross-$(TAG)-$(TARGET).tar.gz
100
- verbose : true
101
- condition : eq(variables['DEPLOY'], '1')
102
- - task : GithubRelease@0
103
- displayName : Create GitHub Release
104
- inputs :
105
- githubConnection : github
106
- assets : $(Build.ArtifactStagingDirectory)/cross-$(TAG)-$(TARGET).tar.gz
107
- assetUploadMode : replace
108
- action : edit
109
- tag : $(TAG)
110
- condition : and(startsWith(variables['TAG'], 'v'), eq(variables['DEPLOY'], '1'))
111
- - task : Docker@2
112
- displayName : Log into Docker Hub
113
- inputs :
114
- containerRegistry : docker
115
- command : login
116
- condition : and(or(eq(variables['BRANCH'], 'master'), startsWith(variables['TAG'], 'v')), eq(variables['OS'], 'linux'))
117
- - bash : ci/docker_push.sh
118
- displayName : Push Image to Docker Hub
119
- condition : and(or(eq(variables['BRANCH'], 'master'), startsWith(variables['TAG'], 'v')), eq(variables['OS'], 'linux'))
73
+ steps :
74
+ - template : ci/azure-install-rust.yml
75
+ - bash : echo "##vso[task.setvariable variable=OS]$(echo "${AGENT_OS}" | tr '[:upper:]' '[:lower:]')"
76
+ displayName : Set OS Variable
77
+ - bash : echo "##vso[task.setvariable variable=BRANCH]${BUILD_SOURCEBRANCH##refs/heads/}"
78
+ displayName : Set BRANCH Variable
79
+ condition : startsWith(variables['Build.SourceBranch'], 'refs/heads/')
80
+ - bash : echo "##vso[task.setvariable variable=TAG]${BUILD_SOURCEBRANCH##refs/tags/}"
81
+ displayName : Set TAG Variable
82
+ condition : startsWith(variables['Build.SourceBranch'], 'refs/tags/')
83
+ - bash : ./build-docker-image.sh "${TARGET}"
84
+ displayName : Build Docker Image
85
+ timeoutInMinutes : 360
86
+ condition : eq(variables['OS'], 'linux')
87
+ - bash : ci/test.sh
88
+ displayName : Test
89
+ - bash : cargo publish
90
+ displayName : Publish on crates.io
91
+ env :
92
+ CARGO_REGISTRY_TOKEN : $(CARGO_REGISTRY_TOKEN)
93
+ condition : and(startsWith(variables['TAG'], 'v'), eq(variables['CRATES_IO_PUBLISH'], '1'))
94
+ - bash : ci/build_release.sh
95
+ displayName : Build Release
96
+ condition : eq(variables['DEPLOY'], '1')
97
+ - task : ArchiveFiles@2
98
+ inputs :
99
+ includeRootFolder : false
100
+ archiveType : tar
101
+ tarCompression : gz
102
+ archiveFile : $(Build.ArtifactStagingDirectory)/cross-$(TAG)-$(TARGET).tar.gz
103
+ verbose : true
104
+ condition : eq(variables['DEPLOY'], '1')
105
+ - task : GithubRelease@0
106
+ displayName : Create GitHub Release
107
+ inputs :
108
+ githubConnection : github
109
+ assets : $(Build.ArtifactStagingDirectory)/cross-$(TAG)-$(TARGET).tar.gz
110
+ assetUploadMode : replace
111
+ action : edit
112
+ tag : $(TAG)
113
+ condition : and(startsWith(variables['TAG'], 'v'), eq(variables['DEPLOY'], '1'))
114
+ - task : Docker@2
115
+ displayName : Log into Docker Hub
116
+ inputs :
117
+ containerRegistry : docker
118
+ command : login
119
+ condition : and(or(eq(variables['BRANCH'], 'master'), startsWith(variables['TAG'], 'v')), eq(variables['OS'], 'linux'))
120
+ - bash : ci/docker_push.sh
121
+ displayName : Push Image to Docker Hub
122
+ condition : and(or(eq(variables['BRANCH'], 'master'), startsWith(variables['TAG'], 'v')), eq(variables['OS'], 'linux'))
0 commit comments