Edit pipeline to use runtime parameters
https://stackoverflow.com/a/70046417
This commit is contained in:
@@ -6,75 +6,83 @@ trigger:
|
||||
- bugfix/*
|
||||
- release/*
|
||||
|
||||
strategy:
|
||||
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||
matrix:
|
||||
parameters:
|
||||
# https://stackoverflow.com/a/70046417
|
||||
- name: matrix
|
||||
type: object
|
||||
default:
|
||||
UbuntuPython38:
|
||||
python.version: '3.8'
|
||||
imageName: 'ubuntu-latest'
|
||||
py: '3.8'
|
||||
img: 'ubuntu-latest'
|
||||
only_pr: false
|
||||
UbuntuPython310:
|
||||
python.version: '3.10'
|
||||
imageName: 'ubuntu-latest'
|
||||
py: '3.10'
|
||||
img: 'ubuntu-latest'
|
||||
only_pr: true
|
||||
WindowsPython38:
|
||||
python.version: '3.8'
|
||||
imageName: 'windows-latest'
|
||||
py: '3.8'
|
||||
img: 'windows-latest'
|
||||
only_pr: false
|
||||
WindowsPython310:
|
||||
python.version: '3.10'
|
||||
imageName: 'windows-latest'
|
||||
py: '3.10'
|
||||
img: 'windows-latest'
|
||||
only_pr: false
|
||||
MacOSPython38:
|
||||
python.version: '3.8'
|
||||
imageName: 'macOS-latest'
|
||||
py: '3.8'
|
||||
img: 'macOS-latest'
|
||||
only_pr: false
|
||||
MacOSPython310:
|
||||
python.version: '3.10'
|
||||
imageName: 'macOS-latest'
|
||||
${{ if not(eq(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
matrix:
|
||||
UbuntuPython310:
|
||||
python.version: '3.10'
|
||||
imageName: 'ubuntu-latest'
|
||||
py: '3.10'
|
||||
img: 'macOS-latest'
|
||||
only_pr: false
|
||||
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
stages:
|
||||
- stage: Test
|
||||
jobs:
|
||||
- ${{ each item in parameters.matrix }}:
|
||||
${{ if or(eq(variables['Build.Reason'], 'PullRequest'), item.value.on_pr) }}:
|
||||
- job: ${{ item.Key }}
|
||||
pool:
|
||||
vmImage: ${{ item.Value.img }}
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: ${{ item.Value.py }}
|
||||
displayName: 'Use Python ${{ item.Value.py }}'
|
||||
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: '$(python.version)'
|
||||
displayName: 'Use Python $(python.version)'
|
||||
- script: |
|
||||
python -m pip install pre-commit
|
||||
pre-commit install
|
||||
pre-commit run --all-files
|
||||
displayName: 'Run pre-commits'
|
||||
|
||||
- script: |
|
||||
python -m pip install pre-commit
|
||||
pre-commit install
|
||||
pre-commit run --all-files
|
||||
displayName: 'Run pre-commits'
|
||||
- script: |
|
||||
python -m pip install --upgrade pip==23.0.1
|
||||
pip install wheel==0.38.4 --upgrade
|
||||
pip install setuptools==66 --upgrade
|
||||
pip install build==0.10.0
|
||||
pip install pytest-azurepipelines
|
||||
displayName: 'Install build dependencies'
|
||||
|
||||
- script: |
|
||||
python -m pip install --upgrade pip==23.0.1
|
||||
pip install wheel==0.38.4 --upgrade
|
||||
pip install setuptools==66 --upgrade
|
||||
pip install build==0.10.0
|
||||
pip install pytest-azurepipelines
|
||||
displayName: 'Install build dependencies'
|
||||
- script: |
|
||||
python -m build
|
||||
displayName: 'Build PrimAITE'
|
||||
|
||||
- script: |
|
||||
python -m build
|
||||
displayName: 'Build PrimAITE'
|
||||
- script: |
|
||||
PRIMAITE_WHEEL=$(ls ./dist/primaite*.whl)
|
||||
python -m pip install $PRIMAITE_WHEEL[dev]
|
||||
displayName: 'Install PrimAITE'
|
||||
condition: or(eq( variables['Agent.OS'], 'Linux' ), eq( variables['Agent.OS'], 'Darwin' ))
|
||||
|
||||
- script: |
|
||||
PRIMAITE_WHEEL=$(ls ./dist/primaite*.whl)
|
||||
python -m pip install $PRIMAITE_WHEEL[dev]
|
||||
displayName: 'Install PrimAITE'
|
||||
condition: or(eq( variables['Agent.OS'], 'Linux' ), eq( variables['Agent.OS'], 'Darwin' ))
|
||||
- script: |
|
||||
forfiles /p dist\ /m *.whl /c "cmd /c python -m pip install @file[dev]"
|
||||
displayName: 'Install PrimAITE'
|
||||
condition: eq( variables['Agent.OS'], 'Windows_NT' )
|
||||
|
||||
- script: |
|
||||
forfiles /p dist\ /m *.whl /c "cmd /c python -m pip install @file[dev]"
|
||||
displayName: 'Install PrimAITE'
|
||||
condition: eq( variables['Agent.OS'], 'Windows_NT' )
|
||||
- script: |
|
||||
primaite setup
|
||||
displayName: 'Perform PrimAITE Setup'
|
||||
|
||||
- script: |
|
||||
primaite setup
|
||||
displayName: 'Perform PrimAITE Setup'
|
||||
|
||||
- script: |
|
||||
pytest tests/
|
||||
displayName: 'Run tests'
|
||||
- script: |
|
||||
pytest tests/
|
||||
displayName: 'Run tests'
|
||||
|
||||
Reference in New Issue
Block a user