mirror of
https://github.com/pyTooling/Actions.git
synced 2026-02-12 02:56:56 +08:00
Added 'disable_list'.
This commit is contained in:
23
.github/workflows/Parameters.yml
vendored
23
.github/workflows/Parameters.yml
vendored
@@ -54,6 +54,11 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
default: ''
|
default: ''
|
||||||
type: string
|
type: string
|
||||||
|
disable_list:
|
||||||
|
description: 'Space separated list of system:python items to be disabled from the list of test.'
|
||||||
|
required: false
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
python_version:
|
python_version:
|
||||||
@@ -95,6 +100,7 @@ jobs:
|
|||||||
versions = "${{ inputs.python_version_list }}".strip()
|
versions = "${{ inputs.python_version_list }}".strip()
|
||||||
include_list = "${{ inputs.include_list }}".strip()
|
include_list = "${{ inputs.include_list }}".strip()
|
||||||
exclude_list = "${{ inputs.exclude_list }}".strip()
|
exclude_list = "${{ inputs.exclude_list }}".strip()
|
||||||
|
disable_list = "${{ inputs.disable_list }}".strip()
|
||||||
|
|
||||||
currentMSYS2Version = "3.10"
|
currentMSYS2Version = "3.10"
|
||||||
currentAlphaVersion = "3.12"
|
currentAlphaVersion = "3.12"
|
||||||
@@ -120,12 +126,19 @@ jobs:
|
|||||||
else:
|
else:
|
||||||
excludes = [exclude.strip() for exclude in exclude_list.split(" ")]
|
excludes = [exclude.strip() for exclude in exclude_list.split(" ")]
|
||||||
|
|
||||||
|
if disable_list == "":
|
||||||
|
disabled = []
|
||||||
|
else:
|
||||||
|
disabled = [disable.strip() for disable in disable_list.split(" ")]
|
||||||
|
|
||||||
if "3.6" in versions:
|
if "3.6" in versions:
|
||||||
print("::warning title=Deprecated::Support for Python 3.6 ended in 2021.12.23.")
|
print("::warning title=Deprecated::Support for Python 3.6 ended in 2021.12.23.")
|
||||||
if "msys2" in systems:
|
if "msys2" in systems:
|
||||||
print("::warning title=Deprecated::System 'msys2' will be replaced by 'mingw64'.")
|
print("::warning title=Deprecated::System 'msys2' will be replaced by 'mingw64'.")
|
||||||
if currentAlphaVersion in versions:
|
if currentAlphaVersion in versions:
|
||||||
print(f"::notice title=Experimental::Python {currentAlphaVersion} ({currentAlphaRelease}) is a pre-release.")
|
print(f"::notice title=Experimental::Python {currentAlphaVersion} ({currentAlphaRelease}) is a pre-release.")
|
||||||
|
for disable in disabled:
|
||||||
|
print(f"::warning title=Disabled Python Job::System '{disable}' temporary disabled.")
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
# Python and PyPy versions supported by "setup-python" action
|
# Python and PyPy versions supported by "setup-python" action
|
||||||
@@ -164,6 +177,9 @@ jobs:
|
|||||||
print(f"excludes ({len(excludes)}):")
|
print(f"excludes ({len(excludes)}):")
|
||||||
for exclude in excludes:
|
for exclude in excludes:
|
||||||
print(f"- {exclude}")
|
print(f"- {exclude}")
|
||||||
|
print(f"disabled ({len(disabled)}):")
|
||||||
|
for disable in disabled:
|
||||||
|
print(f"- {disable}")
|
||||||
|
|
||||||
combinations = [
|
combinations = [
|
||||||
(system, version)
|
(system, version)
|
||||||
@@ -172,20 +188,23 @@ jobs:
|
|||||||
for version in versions
|
for version in versions
|
||||||
if version in data["python"]
|
if version in data["python"]
|
||||||
and f"{system}:{version}" not in excludes
|
and f"{system}:{version}" not in excludes
|
||||||
|
and f"{system}:{version}" not in disabled
|
||||||
] + [
|
] + [
|
||||||
(system, currentMSYS2Version)
|
(system, currentMSYS2Version)
|
||||||
for system in systems
|
for system in systems
|
||||||
if system in data["runtime"]
|
if system in data["runtime"]
|
||||||
and f"{system}:{currentMSYS2Version}" not in excludes
|
and f"{system}:{currentMSYS2Version}" not in excludes
|
||||||
|
and f"{system}:{currentMSYS2Version}" not in disabled
|
||||||
] + [
|
] + [
|
||||||
(system, version)
|
(system, version)
|
||||||
for system, version in includes
|
for system, version in includes
|
||||||
if system in data["sys"]
|
if system in data["sys"]
|
||||||
and version in data["python"]
|
and version in data["python"]
|
||||||
|
and f"{system}:{version}" not in disabled
|
||||||
]
|
]
|
||||||
print(f"Combinations ({len(combinations)}):")
|
print(f"Combinations ({len(combinations)}):")
|
||||||
for system, version in combinations:
|
for system, version in combinations:
|
||||||
print(f" {system}:{version}")
|
print(f"- {system}:{version}")
|
||||||
|
|
||||||
jobs = [
|
jobs = [
|
||||||
{
|
{
|
||||||
@@ -241,7 +260,7 @@ jobs:
|
|||||||
)
|
)
|
||||||
print(f" artifact_names ({len(artifact_names)}):")
|
print(f" artifact_names ({len(artifact_names)}):")
|
||||||
for id, name in artifact_names.items():
|
for id, name in artifact_names.items():
|
||||||
print(f" {id:>14}: {name}")
|
print(f" {id:>20}: {name}")
|
||||||
|
|
||||||
# Write jobs to special file
|
# Write jobs to special file
|
||||||
github_output = Path(getenv("GITHUB_OUTPUT"))
|
github_output = Path(getenv("GITHUB_OUTPUT"))
|
||||||
|
|||||||
58
.github/workflows/_Checking_Parameters.yml
vendored
58
.github/workflows/_Checking_Parameters.yml
vendored
@@ -38,6 +38,14 @@ jobs:
|
|||||||
system_list: "ubuntu windows macos"
|
system_list: "ubuntu windows macos"
|
||||||
exclude_list: "windows:3.10 windows:3.11"
|
exclude_list: "windows:3.10 windows:3.11"
|
||||||
|
|
||||||
|
Params_Disable:
|
||||||
|
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
|
||||||
|
with:
|
||||||
|
name: Example
|
||||||
|
python_version_list: "3.10"
|
||||||
|
system_list: "ubuntu windows macos"
|
||||||
|
disable_list: "windows:3.10 windows:3.11"
|
||||||
|
|
||||||
Params_All:
|
Params_All:
|
||||||
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
|
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
|
||||||
with:
|
with:
|
||||||
@@ -54,6 +62,7 @@ jobs:
|
|||||||
- Params_Systems
|
- Params_Systems
|
||||||
- Params_Include
|
- Params_Include
|
||||||
- Params_Exclude
|
- Params_Exclude
|
||||||
|
- Params_Disable
|
||||||
- Params_All
|
- Params_All
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
defaults:
|
defaults:
|
||||||
@@ -308,6 +317,55 @@ jobs:
|
|||||||
print(f"All checks PASSED.")
|
print(f"All checks PASSED.")
|
||||||
exit(errors)
|
exit(errors)
|
||||||
|
|
||||||
|
# Params_Disable
|
||||||
|
- name: Checking results from 'Params_Disable'
|
||||||
|
run: |
|
||||||
|
from json import loads as json_loads
|
||||||
|
from sys import exit
|
||||||
|
|
||||||
|
from pyTooling.Common import zipdicts
|
||||||
|
|
||||||
|
expectedPythonVersion = "3.11"
|
||||||
|
expectedPythons = ["3.10"]
|
||||||
|
expectedSystems = ["ubuntu", "macos"]
|
||||||
|
expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons]
|
||||||
|
expectedName = "Example"
|
||||||
|
expectedArtifacts = {
|
||||||
|
"unittesting_xml": f"{expectedName}-TestReportSummary-XML",
|
||||||
|
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
|
||||||
|
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
|
||||||
|
"statictyping_html": f"{expectedName}-StaticTyping-HTML",
|
||||||
|
"package_all": f"{expectedName}-Packages",
|
||||||
|
"documentation_pdf": f"{expectedName}-Documentation-PDF",
|
||||||
|
"documentation_html": f"{expectedName}-Documentation-HTML",
|
||||||
|
}
|
||||||
|
|
||||||
|
actualPythonVersion = """${{ needs.Params_Exclude.outputs.python_version }}"""
|
||||||
|
actualPythonJobs = json_loads("""${{ needs.Params_Exclude.outputs.python_jobs }}""".replace("'", '"'))
|
||||||
|
actualArtifactNames = json_loads("""${{ needs.Params_Exclude.outputs.artifact_names }}""".replace("'", '"'))
|
||||||
|
errors = 0
|
||||||
|
|
||||||
|
if actualPythonVersion != expectedPythonVersion:
|
||||||
|
print(f"'python_version' does not match: '{actualPythonVersion}' != '{expectedPythonVersion}'.")
|
||||||
|
errors += 1
|
||||||
|
if len(actualPythonJobs) != len(expectedJobs):
|
||||||
|
print(f"Number of 'python_jobs' does not match: {len(actualPythonJobs)} != {len(expectedJobs)}.")
|
||||||
|
for job in actualPythonJobs:
|
||||||
|
print(f" {job['system']}:{job['python']}")
|
||||||
|
errors += 1
|
||||||
|
if len(actualArtifactNames) != len(expectedArtifacts):
|
||||||
|
print(f"Number of 'artifact_names' does not match: {len(actualArtifactNames)} != {len(expectedArtifacts)}.")
|
||||||
|
errors += 1
|
||||||
|
else:
|
||||||
|
for key, actual, expected in zipdicts(actualArtifactNames, expectedArtifacts):
|
||||||
|
if actual != expected:
|
||||||
|
print(f"Artifact name '{key}' does not match: {actual} != {expected}.")
|
||||||
|
errors += 1
|
||||||
|
|
||||||
|
if errors == 0:
|
||||||
|
print(f"All checks PASSED.")
|
||||||
|
exit(errors)
|
||||||
|
|
||||||
# Params_All
|
# Params_All
|
||||||
- name: Checking results from 'Params_All'
|
- name: Checking results from 'Params_All'
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in New Issue
Block a user