From 357955173463b0a3c884ef9b5a9e8370e3d46f9a Mon Sep 17 00:00:00 2001 From: Oliver Steffen Date: Mon, 16 Jan 2023 18:40:28 +0100 Subject: CI: make Python version configurable Add a new parameter "usePythonVersion" to the CI job templates. This makes it possible to specify the version of Python to use. The default value is '', in which case Python will not be downloaded at runtime and the one provided by the VM/container image will be used. Additionally, add a template .azurepipelines/templates/defaults.yml, from which the default Pyhton version string can be obtained. Signed-off-by: Oliver Steffen Reviewed-by: Michael Kubacki Acked-by: Ard Biesheuvel Acked-by: Gerd Hoffmann Reviewed-by: Chris Fernald --- .azurepipelines/Ubuntu-GCC5.yml | 8 ++++---- .azurepipelines/Windows-VS2019.yml | 4 ++++ .azurepipelines/templates/defaults.yml | 11 +++++++++++ .azurepipelines/templates/platform-build-run-steps.yml | 6 +++++- .azurepipelines/templates/pr-gate-build-job.yml | 2 ++ .azurepipelines/templates/pr-gate-steps.yml | 6 ++++-- 6 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 .azurepipelines/templates/defaults.yml (limited to '.azurepipelines') diff --git a/.azurepipelines/Ubuntu-GCC5.yml b/.azurepipelines/Ubuntu-GCC5.yml index f83951eeaf..4f9dcf0170 100644 --- a/.azurepipelines/Ubuntu-GCC5.yml +++ b/.azurepipelines/Ubuntu-GCC5.yml @@ -13,13 +13,13 @@ pr: - master - stable/* +variables: + - template: templates/defaults.yml + jobs: - template: templates/pr-gate-build-job.yml parameters: tool_chain_tag: 'GCC5' vm_image: 'ubuntu-latest' arch_list: "IA32,X64,ARM,AARCH64,RISCV64,LOONGARCH64" - extra_install_step: - - bash: sudo apt-get install -y lcov - displayName: Install Code Coverage Tools - condition: and(gt(variables.pkg_count, 0), succeeded()) + usePythonVersion: ${{ variables.default_python_version }} diff --git a/.azurepipelines/Windows-VS2019.yml b/.azurepipelines/Windows-VS2019.yml index c07e5bb434..58bb98d42b 100644 --- a/.azurepipelines/Windows-VS2019.yml +++ b/.azurepipelines/Windows-VS2019.yml @@ -12,12 +12,16 @@ pr: - master - stable/* +variables: + - template: templates/defaults.yml + jobs: - template: templates/pr-gate-build-job.yml parameters: tool_chain_tag: 'VS2019' vm_image: 'windows-2019' arch_list: "IA32,X64" + usePythonVersion: ${{ variables.default_python_version }} extra_install_step: - powershell: choco install opencppcoverage; Write-Host "##vso[task.prependpath]C:\Program Files\OpenCppCoverage" displayName: Install Code Coverage Tool diff --git a/.azurepipelines/templates/defaults.yml b/.azurepipelines/templates/defaults.yml new file mode 100644 index 0000000000..b4909448bd --- /dev/null +++ b/.azurepipelines/templates/defaults.yml @@ -0,0 +1,11 @@ +## @file +# File templates/default.yml +# +# template file containing common default values +# +# Copyright (c) Red Hat, Inc. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +variables: + default_python_version: ">=3.10.6" diff --git a/.azurepipelines/templates/platform-build-run-steps.yml b/.azurepipelines/templates/platform-build-run-steps.yml index 40a31a509f..8803d80cf5 100644 --- a/.azurepipelines/templates/platform-build-run-steps.yml +++ b/.azurepipelines/templates/platform-build-run-steps.yml @@ -34,6 +34,9 @@ parameters: - name: extra_install_step type: stepList default: [] +- name: usePythonVersion + type: string + default: '' steps: - checkout: self @@ -42,8 +45,9 @@ steps: - task: UsePythonVersion@0 inputs: - versionSpec: ">=3.10.6" + versionSpec: ${{ parameters.usePythonVersion }} architecture: "x64" + condition: ne('${{ parameters.usePythonVersion }}', '') - script: pip install -r pip-requirements.txt --upgrade displayName: 'Install/Upgrade pip modules' diff --git a/.azurepipelines/templates/pr-gate-build-job.yml b/.azurepipelines/templates/pr-gate-build-job.yml index fff61a3193..b8573b90da 100644 --- a/.azurepipelines/templates/pr-gate-build-job.yml +++ b/.azurepipelines/templates/pr-gate-build-job.yml @@ -13,6 +13,7 @@ parameters: vm_image: '' arch_list: '' extra_install_step: [] + usePythonVersion: '' # Build step jobs: @@ -78,6 +79,7 @@ jobs: build_pkgs: $(Build.Pkgs) build_targets: $(Build.Targets) build_archs: ${{ parameters.arch_list }} + usePythonVersion: ${{ parameters.usePythonVersion }} extra_install_step: ${{ parameters.extra_install_step }} - job: Build_${{ parameters.tool_chain_tag }}_TARGET_CODE_COVERAGE diff --git a/.azurepipelines/templates/pr-gate-steps.yml b/.azurepipelines/templates/pr-gate-steps.yml index 080f60aea6..ebc1e86c37 100644 --- a/.azurepipelines/templates/pr-gate-steps.yml +++ b/.azurepipelines/templates/pr-gate-steps.yml @@ -12,6 +12,7 @@ parameters: build_pkgs: '' build_targets: '' build_archs: '' + usePythonVersion: '' extra_install_step: [] steps: @@ -21,8 +22,9 @@ steps: - task: UsePythonVersion@0 inputs: - versionSpec: '>=3.10.6' - architecture: 'x64' + versionSpec: ${{ parameters.usePythonVersion }} + architecture: "x64" + condition: ne('${{ parameters.usePythonVersion }}', '') - script: pip install -r pip-requirements.txt --upgrade displayName: 'Install/Upgrade pip modules' -- cgit