|
4 | 4 | # Matrix Strategy: |
5 | 5 | # ---------------- |
6 | 6 | # The pipeline uses a dynamic matrix to test against multiple package versions: |
7 | | -# - PR/CI builds: Test only against BaselineVersion (latest preview) |
8 | | -# - Scheduled/Manual runs: Test against all versions in VersionsToTest |
| 7 | +# - PR/CI builds: Test only against BaselineVersion (latest preview) via QuickCheck stage |
| 8 | +# - Other builds: Test against all versions in parameters.VersionsToTest via FullMatrix stage |
9 | 9 | # |
10 | 10 | # Adding New Versions: |
11 | 11 | # -------------------- |
12 | 12 | # When a new preview or release version is published: |
13 | | -# 1. Update 'BaselineVersion' to the latest version |
14 | | -# 2. Add the new version to 'VersionsToTest' (comma-separated list) |
| 13 | +# 1. Update 'BaselineVersion' variable to the latest version |
| 14 | +# 2. Add the new version to the 'VersionsToTest' parameter list (in parameters section) |
15 | 15 | # 3. Optionally remove old versions if the matrix becomes too large |
16 | 16 | # |
17 | | -# Example: |
18 | | -# BaselineVersion: '1.0.0-preview08' |
19 | | -# VersionsToTest: '1.0.0-preview08,1.0.0-preview07,1.0.0-preview06' |
| 17 | +# Example in parameters section: |
| 18 | +# - name: VersionsToTest |
| 19 | +# type: object |
| 20 | +# default: |
| 21 | +# - '1.0.0-preview08' |
| 22 | +# - '1.0.0-preview07' |
| 23 | +# - '1.0.0-preview06' |
20 | 24 | # |
21 | 25 | # The matrix will automatically spawn parallel jobs for each version. |
22 | | -# |
23 | | -# For detailed documentation, see: docs/compatibility-testing/MATRIX-CONFIGURATION.md |
24 | 26 |
|
25 | 27 | trigger: |
26 | 28 | branches: |
@@ -53,15 +55,17 @@ variables: |
53 | 55 |
|
54 | 56 | # Baseline version (last published) for PR/CI builds |
55 | 57 | BaselineVersion: '1.0.0-preview07' |
56 | | - |
| 58 | + |
| 59 | +parameters: |
57 | 60 | # Full version matrix for scheduled/manual runs |
58 | 61 | # Update this list when new versions are published |
59 | | - # Format: comma-separated version list |
60 | | - ${{ if or(eq(variables['Build.Reason'], 'Schedule'), eq(variables['Build.Reason'], 'Manual')) }}: |
61 | | - VersionsToTest: '1.0.0-preview07,1.0.0-preview06,1.0.0-preview05,1.0.0-preview04' |
62 | | - ${{ else }}: |
63 | | - # For PR/CI builds, only test against latest |
64 | | - VersionsToTest: '1.0.0-preview07' |
| 62 | + - name: VersionsToTest |
| 63 | + type: object |
| 64 | + default: |
| 65 | + - '1.0.0-preview07' |
| 66 | + - '1.0.0-preview06' |
| 67 | + - '1.0.0-preview05' |
| 68 | + - '1.0.0-preview04' |
65 | 69 |
|
66 | 70 | stages: |
67 | 71 | # Stage 0: API Compatibility Check (fast fail on breaking changes) |
@@ -105,8 +109,8 @@ stages: |
105 | 109 | vmImage: 'windows-latest' |
106 | 110 | strategy: |
107 | 111 | matrix: |
108 | | - ${{ each version in split(variables.VersionsToTest, ',') }}: |
109 | | - ${{ replace(version, '.', '_') }}: |
| 112 | + ${{ each version in parameters.VersionsToTest }}: |
| 113 | + ${{ replace(replace(version, '.', '_'), '-', '_') }}: |
110 | 114 | TestVersion: ${{ version }} |
111 | 115 | steps: |
112 | 116 | - template: templates/encryption-custom-compatibility-test-steps.yml |
|
0 commit comments