-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathazure-pipelines.yml
More file actions
119 lines (105 loc) · 3.55 KB
/
azure-pipelines.yml
File metadata and controls
119 lines (105 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
variables:
buildConfiguration: "Debug"
testProject: "Universe.CpuUsage.Tests/Universe.CpuUsage.Tests.csproj"
solution: "Universe.CpuUsage.sln"
jobs:
- job: Virtual
displayName: 'Virtual'
pool:
vmImage: ubuntu-latest
timeoutInMinutes: 45
strategy:
maxParallel: 6
matrix:
'armel-debian-8':
QEMU_IMAGE_ID: armel-debian-8
'armel-debian-11':
QEMU_IMAGE_ID: armel-debian-11
'armhf-debian-12':
QEMU_IMAGE_ID: armhf-debian-12
'arm64-debian-13':
QEMU_IMAGE_ID: arm64-debian-13
'x64-debian-11':
QEMU_IMAGE_ID: x64-debian-11
'i386-debian-10':
QEMU_IMAGE_ID: i386-debian-10
steps:
- script: |
set -eu; set -o pipefail
script=https://raw.githubusercontent.com/devizer/test-and-build/master/install-build-tools-bundle.sh; (wget -q -nv --no-check-certificate -O - $script 2>/dev/null || curl -ksSL $script) | bash >/dev/null
Say --Reset-Stopwatch
Say "CPU: $(Get-CpuName)"
# sudo apt-get update -qq; sudo apt-get install fuse -y -qq | grep "Unpack\|Setting" || true
printenv | sort;
displayName: 'Variables'
- script: |
set -eu; set -o pipefail
Configuration=Debug
FW=net48
Say "CPU: $(Get-CpuName)"
Reset-Target-Framework -fw $FW -l latest
cd Universe.CpuUsage.Tests
for p in NUnit3TestAdapter Appveyor.TestLogger Microsoft.NET.Test.Sdk; do dotnet remove package $p; done
time try-and-retry dotnet build -c $Configuration -v:q Universe.CpuUsage.Tests.csproj
cd bin/$Configuration/$FW
ls -lah
Say "Pull devizervlad/crossplatform-pipeline:$QEMU_IMAGE_ID"
try-and-retry docker pull -q devizervlad/crossplatform-pipeline:$QEMU_IMAGE_ID
Say "Test on [$QEMU_IMAGE_ID]"
cmd="export NUNIT_TEST_RUNNER_VERSION=3.12.0; curl -sfSL https://raw.githubusercontent.com/devizer/glist/master/bin/NUnit.ConsoleRunner/install.sh | bash; nunit3-console --workers=1 Universe.CpuUsage.Tests.dll"
docker run -e VM_VARIABLES="VAR42;Hello" -e VAR42="42" -e Hello="Hello World" -v $(pwd):/job --privileged --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined -t --hostname $QEMU_IMAGE_ID devizervlad/crossplatform-pipeline:$QEMU_IMAGE_ID bash -c "echo; $cmd"
displayName: 'Test'
- job: Pool
displayName: 'Pool'
pool:
name: $(POOL_NAME)
timeoutInMinutes: 45
strategy:
maxParallel: 8
matrix:
'ARM64 Windows':
POOL_NAME: 'ARM64Win-pool'
OS: Windows
SKIP_SDK_INSTALL: 'True'
'ARMv7 Linux':
POOL_NAME: 'armv7-pool'
OS: Linux
'ARM64 Linux':
POOL_NAME: 'arm64-pool'
OS: Linux
steps:
- template: azure-steps-nix.yml
- job: Hosted
displayName: 'Hosted'
pool:
vmImage: $(VMIMAGE)
timeoutInMinutes: 45
strategy:
maxParallel: 9
matrix:
'Ubuntu 22.04':
VMIMAGE: 'ubuntu-22.04'
OS: Linux
'Ubuntu 24.04':
VMIMAGE: 'ubuntu-24.04'
OS: Linux
'MacOS Latest':
VMIMAGE: 'macOS-latest'
OS: OSX
'MacOS 13':
VMIMAGE: 'macOS-13'
OS: OSX
'Win 2019':
VMIMAGE: 'windows-2019'
OS: Windows
'Win Latest':
VMIMAGE: 'windows-latest'
OS: Windows
steps:
- template: azure-steps-nix.yml
trigger:
- master
pr:
branches:
exclude:
- '*'