Compare commits

..

6 Commits
r3 ... r2

Author SHA1 Message Date
Patrick Lehmann
e1e3da83f1 v2.3.1 2024-12-08 23:49:13 +01:00
Patrick Lehmann
af582df38d Remove temporary tarball after extraction. 2024-12-08 23:47:36 +01:00
Patrick Lehmann
84625b8790 v2.3.0 2024-12-08 21:35:09 +01:00
Patrick Lehmann
7cfd7f9567 Backport of v3.1.0. 2024-12-08 21:32:17 +01:00
Patrick Lehmann
d6e835cbd4 v2.2.0 2024-12-08 10:39:35 +01:00
Patrick Lehmann
8661720172 Backport of v3.0.0 without breaking changes. 2024-12-08 09:58:16 +01:00
12 changed files with 49 additions and 59 deletions

View File

@@ -255,10 +255,9 @@ jobs:
- name: 📤 Upload 'TestReportSummary.xml' artifact - name: 📤 Upload 'TestReportSummary.xml' artifact
if: inputs.apptest_xml_artifact != '' if: inputs.apptest_xml_artifact != ''
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.apptest_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.apptest_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
working-directory: report/unit path: report/unit/TestReportSummary.xml
path: TestReportSummary.xml
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -50,11 +50,10 @@ jobs:
- name: 📤 Upload 'documentation' artifacts - name: 📤 Upload 'documentation' artifacts
if: inputs.artifact != '' if: inputs.artifact != ''
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.artifact }} name: ${{ inputs.artifact }}
working-directory: doc/_build/html path: doc/_build/html
path: '*'
retention-days: 1 retention-days: 1
- name: '📓 Publish site to GitHub Pages' - name: '📓 Publish site to GitHub Pages'

View File

@@ -163,11 +163,10 @@ jobs:
- name: 📤 Upload 'Coverage Report' artifact - name: 📤 Upload 'Coverage Report' artifact
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.artifact }} name: ${{ inputs.artifact }}
working-directory: ${{ steps.getVariables.outputs.coverage_report_html_directory }} path: ${{ steps.getVariables.outputs.coverage_report_html_directory }}
path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -62,7 +62,7 @@ jobs:
root_file: ${{ inputs.document }}.tex root_file: ${{ inputs.document }}.tex
- name: 📤 Upload 'PDF Documentation' artifact - name: 📤 Upload 'PDF Documentation' artifact
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
if: inputs.pdf_artifact != '' if: inputs.pdf_artifact != ''
with: with:
name: ${{ inputs.pdf_artifact }} name: ${{ inputs.pdf_artifact }}

View File

@@ -106,10 +106,9 @@ jobs:
run: python setup.py bdist_wheel run: python setup.py bdist_wheel
- name: 📤 Upload wheel artifact - name: 📤 Upload wheel artifact
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.artifact }} name: ${{ inputs.artifact }}
working-directory: dist path: dist/
path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -182,7 +182,7 @@ jobs:
- name: 📤 Upload 'Coverage SQLite Database' artifact - name: 📤 Upload 'Coverage SQLite Database' artifact
if: inputs.coverage_sqlite_artifact != '' if: inputs.coverage_sqlite_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_sqlite_artifact }} name: ${{ inputs.coverage_sqlite_artifact }}
path: .coverage path: .coverage
@@ -192,7 +192,7 @@ jobs:
- name: 📤 Upload 'Coverage XML Report' artifact - name: 📤 Upload 'Coverage XML Report' artifact
if: inputs.coverage_xml_artifact != '' if: inputs.coverage_xml_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_xml_artifact }} name: ${{ inputs.coverage_xml_artifact }}
path: ${{ steps.getVariables.outputs.coverage_report_xml }} path: ${{ steps.getVariables.outputs.coverage_report_xml }}
@@ -202,7 +202,7 @@ jobs:
- name: 📤 Upload 'Coverage JSON Report' artifact - name: 📤 Upload 'Coverage JSON Report' artifact
if: inputs.coverage_json_artifact != '' if: inputs.coverage_json_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_json_artifact }} name: ${{ inputs.coverage_json_artifact }}
path: ${{ steps.getVariables.outputs.coverage_report_json }} path: ${{ steps.getVariables.outputs.coverage_report_json }}
@@ -212,11 +212,10 @@ jobs:
- name: 📤 Upload 'Coverage HTML Report' artifact - name: 📤 Upload 'Coverage HTML Report' artifact
if: inputs.coverage_html_artifact != '' if: inputs.coverage_html_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_html_artifact }} name: ${{ inputs.coverage_html_artifact }}
working-directory: ${{ steps.getVariables.outputs.coverage_report_html_directory }} path: ${{ steps.getVariables.outputs.coverage_report_html_directory }}
path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -102,7 +102,7 @@ jobs:
- name: 📤 Upload merged 'JUnit Test Summary' artifact - name: 📤 Upload merged 'JUnit Test Summary' artifact
if: inputs.merged_junit_artifact != '' if: inputs.merged_junit_artifact != ''
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.merged_junit_artifact }} name: ${{ inputs.merged_junit_artifact }}
path: Unittesting.xml path: Unittesting.xml

View File

@@ -124,11 +124,10 @@ jobs:
- name: 📤 Upload 'HTML Documentation' artifact - name: 📤 Upload 'HTML Documentation' artifact
if: inputs.html_artifact != '' if: inputs.html_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.html_artifact }} name: ${{ inputs.html_artifact }}
working-directory: ${{ inputs.doc_directory }}/_build/html path: ${{ inputs.doc_directory }}/_build/html
path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
@@ -183,10 +182,9 @@ jobs:
- name: 📤 Upload 'LaTeX Documentation' artifact - name: 📤 Upload 'LaTeX Documentation' artifact
if: inputs.latex_artifact != '' if: inputs.latex_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.latex_artifact }} name: ${{ inputs.latex_artifact }}
working-directory: ${{ inputs.doc_directory }}/_build/latex path: ${{ inputs.doc_directory }}/_build/latex
path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -89,18 +89,17 @@ jobs:
- name: 📤 Upload 'Static Typing Report' HTML artifact - name: 📤 Upload 'Static Typing Report' HTML artifact
if: ${{ inputs.html_artifact != '' }} if: ${{ inputs.html_artifact != '' }}
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.html_artifact }} name: ${{ inputs.html_artifact }}
working-directory: ${{ inputs.html_report }} path: ${{ inputs.html_report }}
path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
- name: 📤 Upload 'Static Typing Report' JUnit artifact - name: 📤 Upload 'Static Typing Report' JUnit artifact
if: ${{ inputs.junit_artifact != '' }} if: ${{ inputs.junit_artifact != '' }}
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.junit_artifact }} name: ${{ inputs.junit_artifact }}
path: ${{ inputs.junit_report }} path: ${{ inputs.junit_report }}

View File

@@ -442,18 +442,17 @@ jobs:
- name: 📤 Upload 'TestReportSummary.xml' artifact - name: 📤 Upload 'TestReportSummary.xml' artifact
if: inputs.unittest_xml_artifact != '' if: inputs.unittest_xml_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.unittest_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.unittest_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
working-directory: report/unit path: report/unit/TestReportSummary.xml
path: TestReportSummary.xml
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
# - name: 📤 Upload 'Unit Tests HTML Report' artifact # - name: 📤 Upload 'Unit Tests HTML Report' artifact
# if: inputs.unittest_html_artifact != '' # if: inputs.unittest_html_artifact != ''
# continue-on-error: true # continue-on-error: true
# uses: pyTooling/upload-artifact@v4 # uses: actions/upload-artifact@v4
# with: # with:
# name: ${{ inputs.unittest_html_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} # name: ${{ inputs.unittest_html_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
# path: ${{ steps.getVariables.outputs.unittest_report_html_directory }} # path: ${{ steps.getVariables.outputs.unittest_report_html_directory }}
@@ -463,7 +462,7 @@ jobs:
- name: 📤 Upload 'Coverage SQLite Database' artifact - name: 📤 Upload 'Coverage SQLite Database' artifact
if: inputs.coverage_sqlite_artifact != '' if: inputs.coverage_sqlite_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_sqlite_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.coverage_sqlite_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
path: .coverage path: .coverage
@@ -474,7 +473,7 @@ jobs:
- name: 📤 Upload 'Coverage XML Report' artifact - name: 📤 Upload 'Coverage XML Report' artifact
if: inputs.coverage_xml_artifact != '' if: inputs.coverage_xml_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.coverage_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
path: ${{ steps.getVariables.outputs.coverage_report_xml }} path: ${{ steps.getVariables.outputs.coverage_report_xml }}
@@ -484,7 +483,7 @@ jobs:
- name: 📤 Upload 'Coverage JSON Report' artifact - name: 📤 Upload 'Coverage JSON Report' artifact
if: inputs.coverage_json_artifact != '' if: inputs.coverage_json_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_json_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.coverage_json_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
path: ${{ steps.getVariables.outputs.coverage_report_json }} path: ${{ steps.getVariables.outputs.coverage_report_json }}
@@ -494,10 +493,9 @@ jobs:
- name: 📤 Upload 'Coverage HTML Report' artifact - name: 📤 Upload 'Coverage HTML Report' artifact
if: inputs.coverage_html_artifact != '' if: inputs.coverage_html_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_html_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.coverage_html_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
working-directory: ${{ steps.getVariables.outputs.coverage_report_html_directory }} path: ${{ steps.getVariables.outputs.coverage_report_html_directory }}
path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -25,7 +25,7 @@ jobs:
run: echo "${{ matrix.runs-on }}-${{ matrix.python }}" >> artifact.txt run: echo "${{ matrix.runs-on }}-${{ matrix.python }}" >> artifact.txt
- name: 📤 Upload artifact for ${{ matrix.system }}-${{ matrix.python }} - name: 📤 Upload artifact for ${{ matrix.system }}-${{ matrix.python }}
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}-${{ matrix.system }}-${{ matrix.python }} name: ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}-${{ matrix.system }}-${{ matrix.python }}
path: artifact.txt path: artifact.txt
@@ -42,7 +42,7 @@ jobs:
run: echo "Package" >> package.txt run: echo "Package" >> package.txt
- name: 📤 Upload artifact for ${{ matrix.system }}-${{ matrix.python }} - name: 📤 Upload artifact for ${{ matrix.system }}-${{ matrix.python }}
uses: pyTooling/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }} name: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }}
path: package.txt path: package.txt

View File

@@ -6,26 +6,26 @@ on:
jobs: jobs:
ConfigParams: ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r3 uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r2
with: with:
package_name: pyDummy package_name: pyDummy
UnitTestingParams: UnitTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r3 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r2
with: with:
name: pyDummy name: pyDummy
python_version_list: "3.9 3.10 3.11 3.12 3.13 pypy-3.9 pypy-3.10" python_version_list: "3.9 3.10 3.11 3.12 3.13 pypy-3.9 pypy-3.10"
# disable_list: "windows:pypy-3.10" # disable_list: "windows:pypy-3.10"
PlatformTestingParams: PlatformTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r3 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r2
with: with:
name: Platform name: Platform
python_version_list: "" python_version_list: ""
system_list: "ubuntu windows macos mingw32 mingw64 clang64 ucrt64" system_list: "ubuntu windows macos mingw32 mingw64 clang64 ucrt64"
UnitTesting: UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r3 uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r2
needs: needs:
- UnitTestingParams - UnitTestingParams
with: with:
@@ -38,7 +38,7 @@ jobs:
# coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} # coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
PlatformTesting: PlatformTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r3 uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r2
needs: needs:
- PlatformTestingParams - PlatformTestingParams
with: with:
@@ -53,7 +53,7 @@ jobs:
coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }} coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }}
# Coverage: # Coverage:
# uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r3 # uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r2
# needs: # needs:
# - UnitTestingParams # - UnitTestingParams
# with: # with:
@@ -63,7 +63,7 @@ jobs:
# codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} # codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}
StaticTypeCheck: StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r3 uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r2
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -86,7 +86,7 @@ jobs:
# fail_below: 70 # fail_below: 70
Package: Package:
uses: pyTooling/Actions/.github/workflows/Package.yml@r3 uses: pyTooling/Actions/.github/workflows/Package.yml@r2
needs: needs:
- UnitTestingParams - UnitTestingParams
- UnitTesting - UnitTesting
@@ -97,7 +97,7 @@ jobs:
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
PublishCoverageResults: PublishCoverageResults:
uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@r3 uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@r2
needs: needs:
- UnitTestingParams - UnitTestingParams
- UnitTesting - UnitTesting
@@ -112,7 +112,7 @@ jobs:
codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}
PublishTestResults: PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r3 uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r2
needs: needs:
- UnitTesting - UnitTesting
- PlatformTesting - PlatformTesting
@@ -120,14 +120,14 @@ jobs:
additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit;reduce-depth:pytest.tests.platform"' additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit;reduce-depth:pytest.tests.platform"'
# VerifyDocs: # VerifyDocs:
# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@r3 # uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@r2
# needs: # needs:
# - UnitTestingParams # - UnitTestingParams
# with: # with:
# python_version: ${{ needs.UnitTestingParams.outputs.python_version }} # python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
Documentation: Documentation:
uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@r3 uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@r2
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -154,7 +154,7 @@ jobs:
xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}- xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-
PDFDocumentation: PDFDocumentation:
uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@r3 uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@r2
needs: needs:
- UnitTestingParams - UnitTestingParams
- Documentation - Documentation
@@ -164,7 +164,7 @@ jobs:
pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }} pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }}
PublishToGitHubPages: PublishToGitHubPages:
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r3 uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r2
needs: needs:
- UnitTestingParams - UnitTestingParams
- Documentation - Documentation
@@ -178,7 +178,7 @@ jobs:
typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
ReleasePage: ReleasePage:
uses: pyTooling/Actions/.github/workflows/Release.yml@r3 uses: pyTooling/Actions/.github/workflows/Release.yml@r2
if: startsWith(github.ref, 'refs/tags') if: startsWith(github.ref, 'refs/tags')
needs: needs:
- UnitTesting - UnitTesting
@@ -189,7 +189,7 @@ jobs:
- PublishToGitHubPages - PublishToGitHubPages
PublishOnPyPI: PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r3 uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r2
if: startsWith(github.ref, 'refs/tags') if: startsWith(github.ref, 'refs/tags')
needs: needs:
- UnitTestingParams - UnitTestingParams
@@ -203,7 +203,7 @@ jobs:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
ArtifactCleanUp: ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r3 uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r2
needs: needs:
- UnitTestingParams - UnitTestingParams
- PlatformTestingParams - PlatformTestingParams