summaryrefslogtreecommitdiff
path: root/azure-pipelines.yml
blob: 4567b9b04398490c1ad2c252ba4667eb46827b07 (plain)
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
# Create the project in Azure with:
# az devops project create --name $name --organization https://dev.azure.com/$org/ --visibility public
# then configure the pipelines (through web UI)

trigger:
  branches:
    include:
    - '*'
  tags:
    include:
    - '*'

pool:
  vmImage: $(pool_vm_image)

variables:
- group: Azure secrets
- name: pool_vm_image
  value: Ubuntu-18.04

stages:
- stage: Test
  jobs:

  - job: 'Test'
    strategy:
      matrix:
        Bionic Python 3.6:
          python.version: '3.6'
        Bionic Python 3.8:
          python.version: '3.8'
        Windows:
          python.version: '3.8'
          pool_vm_image: vs2017-win2016
        MacOS:
          python.version: '3.8'
          pool_vm_image: macos-10.15

      maxParallel: 4

    steps:
    - task: UsePythonVersion@0
      inputs:
        versionSpec: '$(python.version)'
        architecture: 'x64'

    - script: python -m pip install tox
      displayName: 'Install tox'

    - script: |
        tox -- --junit-xml=test-results.xml
      displayName: 'run tests'

    - task: PublishTestResults@2
      inputs:
        testResultsFiles: '**/test-results.xml'
        testRunTitle: 'Python $(python.version)'
      condition: succeededOrFailed()

- stage: Publish
  dependsOn: Test
  jobs:
  - job: 'Publish'

    steps:
    - task: UsePythonVersion@0
      inputs:
        versionSpec: '3.8'
        architecture: 'x64'

    - script: python -m pip install tox
      displayName: 'Install tox'

    - script: |
        tox -e release
      env:
        TWINE_PASSWORD: $(PyPI-token)
        TIDELIFT_TOKEN: $(Tidelift-token)
        GITHUB_TOKEN: $(Github-token)
      displayName: 'publish to PyPI'

  condition: contains(variables['Build.SourceBranch'], 'tags')