From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.groups.io with SMTP id smtpd.web11.173930.1673890860978624812 for ; Mon, 16 Jan 2023 09:41:01 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Htm6v2ac; spf=pass (domain: redhat.com, ip: 170.10.129.124, mailfrom: osteffen@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1673890860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4V9eWzaKyLzWdbZ4LuwbuJtecrs0nolhfsxgDHqLFUM=; b=Htm6v2acPsZkjaUAvuvwhcMGWhLlPMX6NH2buBDC5QXpnHZQQ8/fjw0CGelGgdsHWVspem M0zgna8/+IIalKcxjRH7LhmmE+6XkqxAhuxQRAM3eYs5vOJ3/lHK8poe6H1skmi4Tl69q9 E1sJXvgROwsgtIc6nO2Q59Neplw8Gfk= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-605-k7MPViZwPf6QYgCxmwFl0Q-1; Mon, 16 Jan 2023 12:40:58 -0500 X-MC-Unique: k7MPViZwPf6QYgCxmwFl0Q-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id ED0503C0F660; Mon, 16 Jan 2023 17:40:57 +0000 (UTC) Received: from osteffen-laptop.redhat.com (unknown [10.39.192.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id CD05FC15BAD; Mon, 16 Jan 2023 17:40:54 +0000 (UTC) From: "Oliver Steffen" To: devel@edk2.groups.io Cc: Andrew Fish , Ard Biesheuvel , Bob Feng , Dandan Bi , Gerd Hoffmann , Jian J Wang , Jiewen Yao , Jordan Justen , Leif Lindholm , Liming Gao , Michael D Kinney , Michael Kubacki , Ray Ni , Sami Mujawar , Sean Brogan , Yuwei Chen , Pawel Polawski , chris.fernald@outlook.com, Oliver Steffen , Michael Kubacki Subject: [PATCH v11 01/17] CI: make Python version configurable Date: Mon, 16 Jan 2023 18:40:28 +0100 Message-Id: <20230116174044.3346383-2-osteffen@redhat.com> In-Reply-To: <20230116174044.3346383-1-osteffen@redhat.com> References: <20230116174044.3346383-1-osteffen@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true 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 --- .azurepipelines/Ubuntu-GCC5.yml | 9 +++++---- .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, 31 insertions(+), 7 deletions(-) create mode 100644 .azurepipelines/templates/defaults.yml diff --git a/.azurepipelines/Ubuntu-GCC5.yml b/.azurepipelines/Ubuntu-GCC5.yml index f83951eeaf86..4ed6cb601b8e 100644 --- a/.azurepipelines/Ubuntu-GCC5.yml +++ b/.azurepipelines/Ubuntu-GCC5.yml @@ -13,13 +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" - 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 c07e5bb43424..58bb98d42b28 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 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 fff61a3193b0..b8573b90da1c 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 080f60aea6ab..ebc1e86c37d4 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' -- 2.39.0