Browse Source

Add '.azure-pipelines/azure-pipelines.yml'

天问 1 year ago
parent
commit
9c87254002
1 changed files with 223 additions and 0 deletions
  1. 223 0
      .azure-pipelines/azure-pipelines.yml

+ 223 - 0
.azure-pipelines/azure-pipelines.yml

@@ -0,0 +1,223 @@
+trigger:
+  batch: true
+  branches:
+    include:
+      - devel
+      - stable-*
+
+pr:
+  autoCancel: true
+  branches:
+    include:
+      - devel
+      - stable-*
+
+schedules:
+  - cron: 0 7 * * *
+    displayName: Nightly
+    always: true
+    branches:
+      include:
+        - devel
+        - stable-*
+
+variables:
+  - name: checkoutPath
+    value: ansible
+  - name: coverageBranches
+    value: devel
+  - name: entryPoint
+    value: .azure-pipelines/commands/entry-point.sh
+  - name: fetchDepth
+    value: 500
+  - name: defaultContainer
+    value: quay.io/ansible/azure-pipelines-test-container:4.0.1
+
+pool: Standard
+
+stages:
+  - stage: Sanity
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          nameFormat: Test {0}
+          testFormat: sanity/{0}
+          targets:
+            - test: 1
+            - test: 2
+  - stage: Units
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          nameFormat: Python {0}
+          testFormat: units/{0}
+          targets:
+            - test: 2.7
+            - test: 3.6
+            - test: 3.7
+            - test: 3.8
+            - test: 3.9
+            - test: '3.10'
+            - test: 3.11
+            - test: 3.12
+  - stage: Windows
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          nameFormat: Server {0}
+          testFormat: windows/{0}/1
+          targets:
+            - test: 2016
+            - test: 2019
+            - test: 2022
+  - stage: Remote
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml  # context/target
+        parameters:
+          targets:
+            - name: macOS 13.2
+              test: macos/13.2
+            - name: RHEL 7.9
+              test: rhel/7.9
+            - name: RHEL 8.8 py36
+              test: rhel/8.8@3.6
+            - name: RHEL 8.8 py311
+              test: rhel/8.8@3.11
+            - name: RHEL 9.2 py39
+              test: rhel/9.2@3.9
+            - name: RHEL 9.2 py311
+              test: rhel/9.2@3.11
+            - name: FreeBSD 13.2
+              test: freebsd/13.2
+          groups:
+            - 1
+            - 2
+      - template: templates/matrix.yml  # context/controller
+        parameters:
+          targets:
+            - name: macOS 13.2
+              test: macos/13.2
+            - name: RHEL 8.8
+              test: rhel/8.8
+            - name: RHEL 9.2
+              test: rhel/9.2
+            - name: FreeBSD 13.2
+              test: freebsd/13.2
+          groups:
+            - 3
+            - 4
+            - 5
+      - template: templates/matrix.yml  # context/controller (ansible-test container management)
+        parameters:
+          targets:
+            - name: Alpine 3.18
+              test: alpine/3.18
+            - name: Fedora 38
+              test: fedora/38
+            - name: RHEL 8.8
+              test: rhel/8.8
+            - name: RHEL 9.2
+              test: rhel/9.2
+            - name: Ubuntu 22.04
+              test: ubuntu/22.04
+          groups:
+            - 6
+  - stage: Docker
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          testFormat: linux/{0}
+          targets:
+            - name: Alpine 3
+              test: alpine3
+            - name: CentOS 7
+              test: centos7
+            - name: Fedora 38
+              test: fedora38
+            - name: openSUSE 15
+              test: opensuse15
+            - name: Ubuntu 20.04
+              test: ubuntu2004
+            - name: Ubuntu 22.04
+              test: ubuntu2204
+          groups:
+            - 1
+            - 2
+      - template: templates/matrix.yml
+        parameters:
+          testFormat: linux/{0}
+          targets:
+            - name: Alpine 3
+              test: alpine3
+            - name: Fedora 38
+              test: fedora38
+            - name: Ubuntu 22.04
+              test: ubuntu2204
+          groups:
+            - 3
+            - 4
+            - 5
+  - stage: Galaxy
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          nameFormat: Python {0}
+          testFormat: galaxy/{0}/1
+          targets:
+            - test: '3.10'
+            - test: 3.11
+            - test: 3.12
+  - stage: Generic
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          nameFormat: Python {0}
+          testFormat: generic/{0}/1
+          targets:
+            - test: '3.10'
+            - test: 3.11
+            - test: 3.12
+  - stage: Incidental_Windows
+    displayName: Incidental Windows
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          nameFormat: Server {0}
+          testFormat: i/windows/{0}
+          targets:
+            - test: 2016
+            - test: 2019
+            - test: 2022
+  - stage: Incidental
+    dependsOn: []
+    jobs:
+      - template: templates/matrix.yml
+        parameters:
+          testFormat: i/{0}/1
+          targets:
+            - name: IOS Python
+              test: ios/csr1000v/
+            - name: VyOS Python
+              test: vyos/1.1.8/
+  - stage: Summary
+    condition: succeededOrFailed()
+    dependsOn:
+      - Sanity
+      - Units
+      - Windows
+      - Remote
+      - Docker
+      - Galaxy
+      - Generic
+      - Incidental_Windows
+      - Incidental
+    jobs:
+      - template: templates/coverage.yml