From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web11.56606.1669927270381708968 for ; Thu, 01 Dec 2022 12:41:10 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=DLpZlNer; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from [192.168.4.22] (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id 9E75C20B83C2; Thu, 1 Dec 2022 12:41:07 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9E75C20B83C2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1669927269; bh=ucl2H6rr4eRFn85RlPvmGMn+6ftRECtl4I+DqizBfHU=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=DLpZlNerXQWnCI7qjuf157Sd09FGZY1XsytFH9yOMXnPKuG2xxYTk8DJL7FkyiYci C8elKvbdwm8a4VbpfZHb4Q0oDZeHFqxRnc7PiEpAtvT+SWk4KjjoZJtD1AONebg12O Lgc3yaId5PpWDXhGjy/31ZK4/GcTDTkqw68Voy5g= Message-ID: Date: Thu, 1 Dec 2022 15:41:06 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.1 Subject: Re: [edk2-devel] [PATCH v10 01/17] CI: make Python version configurable To: devel@edk2.groups.io, osteffen@redhat.com Cc: Andrew Fish , Ard Biesheuvel , Bob Feng , Daniel Schaefer , Gerd Hoffmann , Jiewen Yao , Jordan Justen , Leif Lindholm , Liming Gao , Michael D Kinney , Ray Ni , Sami Mujawar , Sean Brogan , Sunil V L , Yuwei Chen , Zhiguang Liu , Pawel Polawski , Chris Fernald References: <20221201202810.109662-1-osteffen@redhat.com> From: "Michael Kubacki" In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Reviewed-by: Michael Kubacki On 12/1/2022 3:28 PM, Oliver Steffen wrote: > 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 > --- > .azurepipelines/Ubuntu-GCC5.yml | 4 ++++ > .azurepipelines/Windows-VS2019.yml | 4 ++++ > .azurepipelines/templates/defaults.yml | 11 +++++++++++ > .../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(+), 3 deletions(-) > create mode 100644 .azurepipelines/templates/defaults.yml > > diff --git a/.azurepipelines/Ubuntu-GCC5.yml b/.azurepipelines/Ubuntu-GCC5.yml > index 1acd8d2a46a7..4ed6cb601b8e 100644 > --- a/.azurepipelines/Ubuntu-GCC5.yml > +++ b/.azurepipelines/Ubuntu-GCC5.yml > @@ -13,10 +13,14 @@ 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" > + usePythonVersion: ${{ variables.default_python_version }} > > diff --git a/.azurepipelines/Windows-VS2019.yml > b/.azurepipelines/Windows-VS2019.yml > index e4bd4b1d2283..89bccde82575 100644 > --- a/.azurepipelines/Windows-VS2019.yml > +++ b/.azurepipelines/Windows-VS2019.yml > @@ -12,9 +12,13 @@ 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 }} > diff --git a/.azurepipelines/templates/defaults.yml > b/.azurepipelines/templates/defaults.yml > new file mode 100644 > index 000000000000..b4909448bdea > --- /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 40a31a509fc5..8803d80cf51c 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 7f88b41dc8d3..f0ef1142da49 100644 > --- a/.azurepipelines/templates/pr-gate-build-job.yml > +++ b/.azurepipelines/templates/pr-gate-build-job.yml > @@ -12,6 +12,7 @@ parameters: > tool_chain_tag: '' > vm_image: '' > arch_list: '' > + usePythonVersion: '' > > # Build step > jobs: > @@ -77,3 +78,4 @@ jobs: > build_pkgs: $(Build.Pkgs) > build_targets: $(Build.Targets) > build_archs: ${{ parameters.arch_list }} > + usePythonVersion: ${{ parameters.usePythonVersion }} > diff --git a/.azurepipelines/templates/pr-gate-steps.yml > b/.azurepipelines/templates/pr-gate-steps.yml > index cb431e53fcd1..27a44c06011c 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: '' > > steps: > - checkout: self > @@ -20,8 +21,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'