Compare commits

..

1 Commits
r5 ... latex

Author SHA1 Message Date
Patrick Lehmann
77a7545f66 Translate LaTeX documentation to PDF. 2025-06-21 00:04:57 +02:00
42 changed files with 183 additions and 233 deletions

View File

@@ -86,10 +86,10 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 📥 Download artifacts '${{ inputs.wheel }}' from 'Package' job - name: 📥 Download artifacts '${{ inputs.wheel }}' from 'Package' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
with: with:
name: ${{ inputs.wheel }} name: ${{ inputs.wheel }}
path: install path: install

View File

@@ -41,7 +41,7 @@ jobs:
run: printf "::warning title=%s::%s\n" "Deprecated" "'BuildTheDocs.yml' is not maintained anymore. Please switch to 'SphinxDocumentation.yml', 'LaTeXDocumentation.yml' and 'ExtractConfiguration.yml'." run: printf "::warning title=%s::%s\n" "Deprecated" "'BuildTheDocs.yml' is not maintained anymore. Please switch to 'SphinxDocumentation.yml', 'LaTeXDocumentation.yml' and 'ExtractConfiguration.yml'."
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 🛳️ Build documentation - name: 🛳️ Build documentation
uses: buildthedocs/btd@v0 uses: buildthedocs/btd@v0

View File

@@ -50,7 +50,7 @@ jobs:
runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}" runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}"
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 🐍 Setup Python ${{ inputs.python_version }} - name: 🐍 Setup Python ${{ inputs.python_version }}
uses: actions/setup-python@v5 uses: actions/setup-python@v5

View File

@@ -33,6 +33,11 @@ on:
description: 'Name of the tool''s package.' description: 'Name of the tool''s package.'
required: true required: true
type: string type: string
documentation:
description: 'Name of documentation document.'
required: false
default: ''
type: string
unittest_python_version: unittest_python_version:
description: 'Python version.' description: 'Python version.'
required: false required: false
@@ -126,16 +131,16 @@ on:
jobs: jobs:
Prepare: Prepare:
uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@r5 uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@dev
ConfigParams: ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r5 uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev
with: with:
package_namespace: ${{ inputs.package_namespace }} package_namespace: ${{ inputs.package_namespace }}
package_name: ${{ inputs.package_name }} package_name: ${{ inputs.package_name }}
UnitTestingParams: UnitTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
package_namespace: ${{ inputs.package_namespace }} package_namespace: ${{ inputs.package_namespace }}
package_name: ${{ inputs.package_name }} package_name: ${{ inputs.package_name }}
@@ -147,7 +152,7 @@ jobs:
disable_list: ${{ inputs.unittest_disable_list }} disable_list: ${{ inputs.unittest_disable_list }}
# AppTestingParams: # AppTestingParams:
# uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 # uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
# with: # with:
# package_namespace: ${{ inputs.package_namespace }} # package_namespace: ${{ inputs.package_namespace }}
# package_name: ${{ inputs.package_name }} # package_name: ${{ inputs.package_name }}
@@ -159,7 +164,7 @@ jobs:
# disable_list: ${{ inputs.apptest_disable_list }} # disable_list: ${{ inputs.apptest_disable_list }}
InstallParams: InstallParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
package_namespace: ${{ inputs.package_namespace }} package_namespace: ${{ inputs.package_namespace }}
package_name: ${{ inputs.package_name }} package_name: ${{ inputs.package_name }}
@@ -171,7 +176,7 @@ jobs:
disable_list: ${{ inputs.unittest_disable_list }} disable_list: ${{ inputs.unittest_disable_list }}
UnitTesting: UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r5 uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -186,7 +191,7 @@ jobs:
coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
StaticTypeCheck: StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r5 uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -199,7 +204,7 @@ jobs:
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
DocCoverage: DocCoverage:
uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@r5 uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -208,7 +213,7 @@ jobs:
directory: ${{ needs.ConfigParams.outputs.package_directory }} directory: ${{ needs.ConfigParams.outputs.package_directory }}
Package: Package:
uses: pyTooling/Actions/.github/workflows/Package.yml@r5 uses: pyTooling/Actions/.github/workflows/Package.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
# - UnitTesting # - UnitTesting
@@ -217,7 +222,7 @@ jobs:
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
Install: Install:
uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@r5 uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -229,7 +234,7 @@ jobs:
package_name: ${{ needs.ConfigParams.outputs.package_fullname }} package_name: ${{ needs.ConfigParams.outputs.package_fullname }}
# AppTesting: # AppTesting:
# uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@r5 # uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@dev
# needs: # needs:
# - AppTestingParams # - AppTestingParams
# - UnitTestingParams # - UnitTestingParams
@@ -240,12 +245,11 @@ jobs:
# apptest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).apptesting_xml }} # apptest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).apptesting_xml }}
PublishCoverageResults: PublishCoverageResults:
uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
- UnitTesting - UnitTesting
if: success() || failure()
with: with:
# coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} # coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
# coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} # coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
@@ -263,12 +267,11 @@ jobs:
CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }} CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }}
PublishTestResults: PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
- UnitTesting - UnitTesting
if: success() || failure()
with: with:
testsuite-summary-name: ${{ needs.ConfigParams.outputs.package_fullname }} testsuite-summary-name: ${{ needs.ConfigParams.outputs.package_fullname }}
merged_junit_filename: ${{ needs.ConfigParams.outputs.unittest_merged_report_xml_filename }} merged_junit_filename: ${{ needs.ConfigParams.outputs.unittest_merged_report_xml_filename }}
@@ -279,21 +282,20 @@ jobs:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# VerifyDocs: # VerifyDocs:
# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@r5 # uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev
# 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@r5 uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
- PublishTestResults - PublishTestResults
- PublishCoverageResults - PublishCoverageResults
# - VerifyDocs # - VerifyDocs
if: success() || failure()
with: with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }} python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }}
@@ -303,28 +305,28 @@ jobs:
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
IntermediateCleanUp: IntermediateCleanUp:
uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@r5 uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- PublishCoverageResults - PublishCoverageResults
- PublishTestResults - PublishTestResults
if: ( success() || failure() ) && inputs.cleanup == 'true' if: inputs.cleanup == 'true'
with: with:
sqlite_coverage_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}- sqlite_coverage_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}-
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@r5 uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@latex
# needs: needs:
# - UnitTestingParams - UnitTestingParams
# - Documentation - Documentation
# with: with:
# document: pyEDAA.ProjectModel document: ${{ inputs.documentation }}
# latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
# 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@r5 uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- Documentation - Documentation
@@ -337,7 +339,7 @@ jobs:
typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
TriggerTaggedRelease: TriggerTaggedRelease:
uses: pyTooling/Actions/.github/workflows/TagReleaseCommit.yml@r5 uses: pyTooling/Actions/.github/workflows/TagReleaseCommit.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTesting - UnitTesting
@@ -346,7 +348,7 @@ jobs:
# - StaticTypeCheck # - StaticTypeCheck
- Package - Package
- PublishToGitHubPages - PublishToGitHubPages
if: needs.Prepare.outputs.is_release_commit && github.event_name != 'schedule' if: needs.Prepare.outputs.is_release_commit
permissions: permissions:
contents: write # required for create tag contents: write # required for create tag
actions: write # required for trigger workflow actions: write # required for trigger workflow
@@ -356,7 +358,7 @@ jobs:
secrets: inherit secrets: inherit
ReleasePage: ReleasePage:
uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTesting - UnitTesting
@@ -374,7 +376,7 @@ jobs:
secrets: inherit secrets: inherit
PublishOnPyPI: PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTestingParams - UnitTestingParams
@@ -389,13 +391,13 @@ jobs:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
ArtifactCleanUp: ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r5 uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- UnitTesting - UnitTesting
- StaticTypeCheck - StaticTypeCheck
- Documentation - Documentation
# - PDFDocumentation - PDFDocumentation
- PublishTestResults - PublishTestResults
- PublishCoverageResults - PublishCoverageResults
- PublishToGitHubPages - PublishToGitHubPages

View File

@@ -75,7 +75,7 @@ jobs:
run: printf "::warning title=%s::%s\n" "Deprecated" "'CoverageCollection.yml' is not maintained anymore. Please switch to 'UnitTesting.yml', 'PublishCoverageResults.yml' and 'PublishTestResults.yml'." run: printf "::warning title=%s::%s\n" "Deprecated" "'CoverageCollection.yml' is not maintained anymore. Please switch to 'UnitTesting.yml', 'PublishCoverageResults.yml' and 'PublishTestResults.yml'."
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
lfs: true lfs: true
submodules: true submodules: true

View File

@@ -123,7 +123,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 🐍 Setup Python ${{ inputs.python_version }} - name: 🐍 Setup Python ${{ inputs.python_version }}
uses: actions/setup-python@v5 uses: actions/setup-python@v5

View File

@@ -53,7 +53,7 @@ jobs:
steps: steps:
- name: 📥 Download artifacts '${{ inputs.wheel }}' from 'Package' job - name: 📥 Download artifacts '${{ inputs.wheel }}' from 'Package' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
with: with:
name: ${{ inputs.wheel }} name: ${{ inputs.wheel }}
path: install path: install

View File

@@ -43,33 +43,37 @@ on:
required: false required: false
default: '' default: ''
type: string type: string
miktex_image:
description: 'Name of the MikTeX image.'
required: false
default: 'pytooling/miktex:latest'
type: string
jobs: jobs:
PDFDocumentation: PDFDocumentation:
name: 📓 Converting LaTeX Documentation to PDF name: 📓 Converting LaTeX Documentation to PDF
runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}" runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}"
container:
image: ${{ inputs.miktex_image }}
steps: steps:
- name: 📥 Download artifacts '${{ inputs.latex_artifact }}' from 'SphinxDocumentation' job - name: 📥 Download artifacts '${{ inputs.latex_artifact }}' from 'SphinxDocumentation' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
with: with:
name: ${{ inputs.latex_artifact }} name: ${{ inputs.latex_artifact }}
path: latex path: latex
- name: Debug - name: Version check
run: | run: |
tree -pash . echo "which pdflatex: $(which pdflatex)"
echo ""
pdflatex --version
- name: Build LaTeX document using 'pytooling/miktex:sphinx' - name: Version check
uses: addnab/docker-run-action@v3 run: |
with: cd latex
image: pytooling/miktex:sphinx ls -lAh *.tex
options: -v ${{ github.workspace }}/latex:/latex --workdir /latex latexmk ${{ inputs.document }}.tex
run: |
which pdflatex
pwd
ls -lAh
latexmk -xelatex ${{ inputs.document }}.tex
- name: 📤 Upload 'PDF Documentation' artifact - name: 📤 Upload 'PDF Documentation' artifact
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4

View File

@@ -101,7 +101,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
# The command 'git describe' (used for version) needs the history. # The command 'git describe' (used for version) needs the history.
fetch-depth: 0 fetch-depth: 0

View File

@@ -53,7 +53,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
lfs: true lfs: true
submodules: true submodules: true

View File

@@ -103,11 +103,11 @@ jobs:
version: ${{ steps.Classify.outputs.version || steps.FindPullRequest.outputs.pr_version }} version: ${{ steps.Classify.outputs.version || steps.FindPullRequest.outputs.pr_version }}
# release_version: ${{ steps.FindPullRequest.outputs.release_version }} # release_version: ${{ steps.FindPullRequest.outputs.release_version }}
pr_title: ${{ steps.FindPullRequest.outputs.pr_title }} pr_title: ${{ steps.FindPullRequest.outputs.pr_title }}
pr_number: ${{ steps.Classify.outputs.pr_number || steps.FindPullRequest.outputs.pr_number }} pr_number: ${{ steps.FindPullRequest.outputs.pr_number }}
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
# The command 'git describe' (used for version) needs the history. # The command 'git describe' (used for version) needs the history.
fetch-depth: 0 fetch-depth: 0
@@ -144,7 +144,6 @@ jobs:
ref_kind="unknown" ref_kind="unknown"
branch="" branch=""
tag="" tag=""
pr_number=""
version="" version=""
if [[ "${ref:0:11}" == "refs/heads/" ]]; then if [[ "${ref:0:11}" == "refs/heads/" ]]; then
@@ -226,13 +225,6 @@ jobs:
printf "::error title=RexExpCheck::Tag name '%s' doesn't conform to regexp '%s' nor '%s'.\n" "${tag}" "${NIGHTLY_TAG_PATTERN}" "${RELEASE_TAG_PATTERN}" printf "::error title=RexExpCheck::Tag name '%s' doesn't conform to regexp '%s' nor '%s'.\n" "${tag}" "${NIGHTLY_TAG_PATTERN}" "${RELEASE_TAG_PATTERN}"
exit 1 exit 1
fi fi
elif [[ "${ref:0:10}" == "refs/pull/" ]]; then
ref_kind="pullrequest"
pr_number=${ref:11}
pr_number=${pr_number%%/*}
printf "Pull Request check:\n"
printf " Number: %s\n" "${pr_number}"
else else
printf "${ANSI_LIGHT_RED}Unknown Git reference '%s'.${ANSI_NOCOLOR}\n" "${{ github.ref }}" printf "${ANSI_LIGHT_RED}Unknown Git reference '%s'.${ANSI_NOCOLOR}\n" "${{ github.ref }}"
printf "::error title=Classify Commit::Unknown Git reference '%s'.\n" "${{ github.ref }}" printf "::error title=Classify Commit::Unknown Git reference '%s'.\n" "${{ github.ref }}"
@@ -251,7 +243,6 @@ jobs:
ref_kind=${ref_kind} ref_kind=${ref_kind}
branch=${branch} branch=${branch}
tag=${tag} tag=${tag}
pr_number=${pr_number}
version=${version} version=${version}
EOF EOF
@@ -336,10 +327,8 @@ jobs:
printf "ref_kind: %s\n" "${{ steps.Classify.outputs.ref_kind }}" printf "ref_kind: %s\n" "${{ steps.Classify.outputs.ref_kind }}"
printf "branch: %s\n" "${{ steps.Classify.outputs.branch }}" printf "branch: %s\n" "${{ steps.Classify.outputs.branch }}"
printf "tag: %s\n" "${{ steps.Classify.outputs.tag }}" printf "tag: %s\n" "${{ steps.Classify.outputs.tag }}"
printf "version from tag: %s\n" "${{ steps.Classify.outputs.version }}"
printf "version from pr: %s\n" "${{ steps.FindPullRequest.outputs.pr_version }}"
printf "version: %s\n" "${{ steps.Classify.outputs.version || steps.FindPullRequest.outputs.pr_version }}" printf "version: %s\n" "${{ steps.Classify.outputs.version || steps.FindPullRequest.outputs.pr_version }}"
printf " from tag: %s\n" "${{ steps.Classify.outputs.version }}"
printf " from pr: %s\n" "${{ steps.FindPullRequest.outputs.pr_version }}"
printf "pr title: %s\n" "${{ steps.FindPullRequest.outputs.pr_title }}" printf "pr title: %s\n" "${{ steps.FindPullRequest.outputs.pr_title }}"
printf "pr number: %s\n" "${{ steps.Classify.outputs.pr_number || steps.FindPullRequest.outputs.pr_number }}" printf "pr number: %s\n" "${{ steps.FindPullRequest.outputs.pr_number }}"
printf " from merge: %s\n" "${{ steps.Classify.outputs.pr_number }}"
printf " from pr: %s\n" "${{ steps.FindPullRequest.outputs.pr_number }}"

View File

@@ -109,13 +109,13 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
lfs: true lfs: true
submodules: true submodules: true
- name: 📥 Download Artifacts - name: 📥 Download Artifacts
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
with: with:
pattern: ${{ inputs.coverage_artifacts_pattern }} pattern: ${{ inputs.coverage_artifacts_pattern }}
path: artifacts path: artifacts

View File

@@ -56,7 +56,7 @@ jobs:
steps: steps:
- name: 📥 Download artifacts '${{ inputs.artifact }}' from 'Package' job - name: 📥 Download artifacts '${{ inputs.artifact }}' from 'Package' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
with: with:
name: ${{ inputs.artifact }} name: ${{ inputs.artifact }}
path: dist path: dist

View File

@@ -133,7 +133,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
# The command 'git describe' (used for version) needs the history. # The command 'git describe' (used for version) needs the history.
fetch-depth: 0 fetch-depth: 0

View File

@@ -44,16 +44,6 @@ on:
required: false required: false
default: '' default: ''
type: string type: string
merge-input-dialect:
description: 'JUnit dialect used to load and parse inputs for merging.'
required: false
default: 'pyTest-JUnit'
type: string
merge-output-dialect:
description: 'JUnit dialect used for writing the merged report.'
required: false
default: 'pyTest-JUnit'
type: string
additional_merge_args: additional_merge_args:
description: 'Additional merging arguments.' description: 'Additional merging arguments.'
required: false required: false
@@ -102,10 +92,10 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 📥 Download Artifacts - name: 📥 Download Artifacts
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
with: with:
pattern: ${{ inputs.unittest_artifacts_pattern }} pattern: ${{ inputs.unittest_artifacts_pattern }}
path: artifacts path: artifacts
@@ -126,18 +116,13 @@ jobs:
- name: 🔁 Merge JUnit Unit Test Summaries - name: 🔁 Merge JUnit Unit Test Summaries
run: | run: |
if [[ -n "${{ inputs.testsuite-summary-name }}" ]]; then pyedaa-reports -v unittest "--name=${{ inputs.testsuite-summary-name }}" "--merge=pyTest-JUnit:junit/*.xml" ${{ inputs.additional_merge_args }} "--output=pyTest-JUnit:${{ inputs.merged_junit_filename }}"
name="\"--name=${{ inputs.testsuite-summary-name }}\""
fi
pyedaa-reports -v unittest $name "--merge=${{ inputs.merge-input-dialect }}:junit/*.xml" ${{ inputs.additional_merge_args }} "--output=${{ inputs.merge-output-dialect }}:${{ inputs.merged_junit_filename }}"
printf "%s\n" "cat ${{ inputs.merged_junit_filename }}" printf "%s\n" "cat ${{ inputs.merged_junit_filename }}"
cat ${{ inputs.merged_junit_filename }} cat ${{ inputs.merged_junit_filename }}
- name: 📊 Publish Unit Test Results - name: 📊 Publish Unit Test Results
uses: dorny/test-reporter@v2 uses: dorny/test-reporter@v2
id: test-reporter
if: ( inputs.dorny == 'true' || inputs.publish == 'true' ) && inputs.report_title != '' if: ( inputs.dorny == 'true' || inputs.publish == 'true' ) && inputs.report_title != ''
continue-on-error: true
with: with:
name: ${{ inputs.report_title }} name: ${{ inputs.report_title }}
path: ${{ inputs.merged_junit_filename }} path: ${{ inputs.merged_junit_filename }}
@@ -155,6 +140,14 @@ jobs:
flags: ${{ inputs.codecov_flags }} flags: ${{ inputs.codecov_flags }}
fail_ci_if_error: true fail_ci_if_error: true
- name: Generate error messages
run: |
if [[ "${{ steps.codecov.outcome }}" == "failure" ]]; then
printf "::error title=%s::%s\n" "Publish Unit Test Results / Codecov" "Failed to publish unittest results."
else
printf "Codecov: No errors to report.\n"
fi
- name: 📤 Upload merged 'JUnit Test Summary' artifact - name: 📤 Upload merged 'JUnit Test Summary' artifact
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
if: inputs.merged_junit_artifact != '' if: inputs.merged_junit_artifact != ''
@@ -164,24 +157,3 @@ jobs:
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
investigate: true investigate: true
- name: Generate error messages
run: |
exitCode=0
if [[ "${{ steps.test-reporter.outcome }}" == "failure" ]]; then
printf "❌ Dorney/Test-Reporter: %s\n" "Failed to publish unittest results."
printf "::error title=%s::%s\n" "Dorney/Test-Reporter" "Failed to publish unittest results."
exitCode=1
else
printf "✅ Dorney/Test-Reporter: No errors to report.\n"
fi
if [[ "${{ steps.codecov.outcome }}" == "failure" ]]; then
printf "❌ CodeCov: %s\n" "Failed to publish unittest and code coverage results."
printf "::error title=%s::%s\n" "CodeCov" "Failed to publish unittest and code coverage results."
exitCode=1
else
printf "✅ CodeCov: No errors to report.\n"
fi
exit $exitCode

View File

@@ -53,23 +53,23 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 📥 Download artifacts '${{ inputs.doc }}' from 'SphinxDocumentation' job - name: 📥 Download artifacts '${{ inputs.doc }}' from 'SphinxDocumentation' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
with: with:
name: ${{ inputs.doc }} name: ${{ inputs.doc }}
path: public path: public
- name: 📥 Download artifacts '${{ inputs.coverage }}' from 'Coverage' job - name: 📥 Download artifacts '${{ inputs.coverage }}' from 'Coverage' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
if: ${{ inputs.coverage != '' }} if: ${{ inputs.coverage != '' }}
with: with:
name: ${{ inputs.coverage }} name: ${{ inputs.coverage }}
path: public/coverage path: public/coverage
- name: 📥 Download artifacts '${{ inputs.typing }}' from 'StaticTypeCheck' job - name: 📥 Download artifacts '${{ inputs.typing }}' from 'StaticTypeCheck' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
if: ${{ inputs.typing != '' }} if: ${{ inputs.typing != '' }}
with: with:
name: ${{ inputs.typing }} name: ${{ inputs.typing }}

View File

@@ -81,7 +81,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
lfs: true lfs: true
submodules: true submodules: true
@@ -100,7 +100,7 @@ jobs:
python -m pip install --disable-pip-version-check ${{ inputs.requirements }} python -m pip install --disable-pip-version-check ${{ inputs.requirements }}
- name: 📥 Download artifacts '${{ inputs.unittest_xml_artifact }}' from 'Unittesting' job - name: 📥 Download artifacts '${{ inputs.unittest_xml_artifact }}' from 'Unittesting' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
if: inputs.unittest_xml_artifact != '' if: inputs.unittest_xml_artifact != ''
with: with:
name: ${{ inputs.unittest_xml_artifact }} name: ${{ inputs.unittest_xml_artifact }}
@@ -108,7 +108,7 @@ jobs:
investigate: true investigate: true
- name: 📥 Download artifacts '${{ inputs.coverage_json_artifact }}' from 'PublishCoverageResults' job - name: 📥 Download artifacts '${{ inputs.coverage_json_artifact }}' from 'PublishCoverageResults' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
if: inputs.coverage_json_artifact != '' if: inputs.coverage_json_artifact != ''
with: with:
name: ${{ inputs.coverage_json_artifact }} name: ${{ inputs.coverage_json_artifact }}
@@ -140,7 +140,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
lfs: true lfs: true
submodules: true submodules: true
@@ -159,7 +159,7 @@ jobs:
python -m pip install --disable-pip-version-check ${{ inputs.requirements }} python -m pip install --disable-pip-version-check ${{ inputs.requirements }}
- name: 📥 Download artifacts '${{ inputs.unittest_xml_artifact }}' from 'Unittesting' job - name: 📥 Download artifacts '${{ inputs.unittest_xml_artifact }}' from 'Unittesting' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
if: inputs.unittest_xml_artifact != '' if: inputs.unittest_xml_artifact != ''
with: with:
name: ${{ inputs.unittest_xml_artifact }} name: ${{ inputs.unittest_xml_artifact }}
@@ -167,7 +167,7 @@ jobs:
investigate: true investigate: true
- name: 📥 Download artifacts '${{ inputs.coverage_json_artifact }}' from 'PublishCoverageResults' job - name: 📥 Download artifacts '${{ inputs.coverage_json_artifact }}' from 'PublishCoverageResults' job
uses: pyTooling/download-artifact@v5 uses: pyTooling/download-artifact@v4
if: inputs.coverage_json_artifact != '' if: inputs.coverage_json_artifact != ''
with: with:
name: ${{ inputs.coverage_json_artifact }} name: ${{ inputs.coverage_json_artifact }}

View File

@@ -72,7 +72,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 🐍 Setup Python ${{ inputs.python_version }} - name: 🐍 Setup Python ${{ inputs.python_version }}
uses: actions/setup-python@v5 uses: actions/setup-python@v5

View File

@@ -3,7 +3,7 @@
# Unai Martinez-Corral # # Unai Martinez-Corral #
# # # #
# ==================================================================================================================== # # ==================================================================================================================== #
# Copyright 2020-2025 The pyTooling Authors # # Copyright 2020-2024 The pyTooling Authors #
# # # #
# Licensed under the Apache License, Version 2.0 (the "License"); # # Licensed under the Apache License, Version 2.0 (the "License"); #
# you may not use this file except in compliance with the License. # # you may not use this file except in compliance with the License. #
@@ -45,7 +45,7 @@ jobs:
env: env:
DOCKER_BUILDKIT: 1 DOCKER_BUILDKIT: 1
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Build container image - name: Build container image
run: docker build -t ghcr.io/pytooling/releaser -f releaser/Dockerfile releaser run: docker build -t ghcr.io/pytooling/releaser -f releaser/Dockerfile releaser
@@ -62,7 +62,7 @@ jobs:
Composite: Composite:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- run: printf "%s\n" "Build some tool and generate some (versioned) artifacts" > artifact-$(date -u +"%Y-%m-%dT%H-%M-%SZ").txt - run: printf "%s\n" "Build some tool and generate some (versioned) artifacts" > artifact-$(date -u +"%Y-%m-%dT%H-%M-%SZ").txt
@@ -122,7 +122,7 @@ jobs:
- Composite - Composite
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- run: printf "%s\n" "Build some tool and generate some (versioned) artifacts" > artifact-$(date -u +"%Y-%m-%dT%H-%M-%SZ").txt - run: printf "%s\n" "Build some tool and generate some (versioned) artifacts" > artifact-$(date -u +"%Y-%m-%dT%H-%M-%SZ").txt

View File

@@ -161,7 +161,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
lfs: true lfs: true
submodules: true submodules: true
@@ -342,7 +342,6 @@ jobs:
# Run pytests # Run pytests
- name: ✅ Run unit tests (Ubuntu/macOS) - name: ✅ Run unit tests (Ubuntu/macOS)
id: pytest_bash
if: matrix.system != 'windows' if: matrix.system != 'windows'
continue-on-error: true continue-on-error: true
run: | run: |
@@ -360,7 +359,6 @@ jobs:
fi fi
- name: ✅ Run unit tests (Windows) - name: ✅ Run unit tests (Windows)
id: pytest_posh
if: matrix.system == 'windows' if: matrix.system == 'windows'
continue-on-error: true continue-on-error: true
run: | run: |
@@ -378,19 +376,16 @@ jobs:
} }
- name: Convert coverage to XML format (Cobertura) - name: Convert coverage to XML format (Cobertura)
id: convert_xml
if: inputs.coverage_xml_artifact != '' if: inputs.coverage_xml_artifact != ''
continue-on-error: true continue-on-error: true
run: coverage xml --data-file=.coverage run: coverage xml --data-file=.coverage
- name: Convert coverage to JSON format - name: Convert coverage to JSON format
id: convert_json
if: inputs.coverage_json_artifact != '' if: inputs.coverage_json_artifact != ''
continue-on-error: true continue-on-error: true
run: coverage json --data-file=.coverage run: coverage json --data-file=.coverage
- name: Convert coverage to HTML format - name: Convert coverage to HTML format
id: convert_html
if: inputs.coverage_html_artifact != '' if: inputs.coverage_html_artifact != ''
continue-on-error: true continue-on-error: true
run: | run: |
@@ -432,7 +427,7 @@ jobs:
retention-days: 1 retention-days: 1
- name: 📤 Upload 'Coverage XML Report' artifact - name: 📤 Upload 'Coverage XML Report' artifact
if: inputs.coverage_xml_artifact != '' && steps.convert_xml.outcome == 'success' if: inputs.coverage_xml_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
with: with:
@@ -442,7 +437,7 @@ jobs:
retention-days: 1 retention-days: 1
- name: 📤 Upload 'Coverage JSON Report' artifact - name: 📤 Upload 'Coverage JSON Report' artifact
if: inputs.coverage_json_artifact != '' && steps.convert_json.outcome == 'success' if: inputs.coverage_json_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
with: with:
@@ -452,7 +447,7 @@ jobs:
retention-days: 1 retention-days: 1
- name: 📤 Upload 'Coverage HTML Report' artifact - name: 📤 Upload 'Coverage HTML Report' artifact
if: inputs.coverage_html_artifact != '' && steps.convert_html.outcome == 'success' if: inputs.coverage_html_artifact != ''
continue-on-error: true continue-on-error: true
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
with: with:
@@ -461,17 +456,3 @@ jobs:
path: '*' path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
- name: Generate error messages
shell: bash
run: |
exitCode=0
if [[ "${{ steps.pytest_bash.outcome }}" == "failure" || "${{ steps.pytest_posh.outcome }}" == "failure" ]]; then
printf "❌ pytest: %s\n" "Error in pytest execution."
printf "::error title=%s::%s\n" "pytest" "Error in pytest execution."
exitCode=1
else
printf "✅ pytest: No errors.\n"
fi
exit $exitCode

View File

@@ -44,7 +44,7 @@ jobs:
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: 🐍 Setup Python - name: 🐍 Setup Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5

View File

@@ -6,7 +6,7 @@ on:
jobs: jobs:
Params: Params:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
python_version_list: "3.12 3.13" python_version_list: "3.12 3.13"
@@ -50,7 +50,7 @@ jobs:
retention-days: 1 retention-days: 1
ArtifactCleanUp: ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r5 uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev
needs: needs:
- Params - Params
- Testing - Testing

View File

@@ -6,35 +6,35 @@ on:
jobs: jobs:
Prepare: Prepare:
uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@r5 uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@dev
ConfigParams: ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r5 uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev
with: with:
package_name: pyDummy package_name: pyDummy
InstallParams: InstallParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
package_name: pyDummy package_name: pyDummy
python_version_list: '' python_version_list: ''
UnitTestingParams: UnitTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
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@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Platform name: Platform
python_version_list: "" python_version_list: ""
system_list: "ubuntu windows macos mingw64 clang64 ucrt64" system_list: "ubuntu windows macos mingw64 clang64 ucrt64"
UnitTesting: UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r5 uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -51,7 +51,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@r5 uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- PlatformTestingParams - PlatformTestingParams
@@ -70,7 +70,7 @@ jobs:
coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }} coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }}
StaticTypeCheck: StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r5 uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -83,7 +83,7 @@ jobs:
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
DocCoverage: DocCoverage:
uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@r5 uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -93,7 +93,7 @@ jobs:
# fail_below: 70 # fail_below: 70
Package: Package:
uses: pyTooling/Actions/.github/workflows/Package.yml@r5 uses: pyTooling/Actions/.github/workflows/Package.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
# - UnitTesting # - UnitTesting
@@ -103,7 +103,7 @@ jobs:
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
Install: Install:
uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@r5 uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -115,7 +115,7 @@ jobs:
package_name: ${{ needs.ConfigParams.outputs.package_fullname }} package_name: ${{ needs.ConfigParams.outputs.package_fullname }}
PublishCoverageResults: PublishCoverageResults:
uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -136,7 +136,7 @@ jobs:
secrets: inherit secrets: inherit
PublishTestResults: PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -151,14 +151,14 @@ jobs:
secrets: inherit secrets: inherit
# VerifyDocs: # VerifyDocs:
# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@r5 # uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev
# 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@r5 uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -174,7 +174,7 @@ jobs:
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
IntermediateCleanUp: IntermediateCleanUp:
uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@r5 uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- PublishCoverageResults - PublishCoverageResults
@@ -184,7 +184,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@r5 uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- Documentation - Documentation
@@ -194,7 +194,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@r5 uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- Documentation - Documentation
@@ -207,7 +207,7 @@ jobs:
typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
TriggerTaggedRelease: TriggerTaggedRelease:
uses: pyTooling/Actions/.github/workflows/TagReleaseCommit.yml@r5 uses: pyTooling/Actions/.github/workflows/TagReleaseCommit.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTesting - UnitTesting
@@ -225,7 +225,7 @@ jobs:
secrets: inherit secrets: inherit
ReleasePage: ReleasePage:
uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTesting - UnitTesting
@@ -243,7 +243,7 @@ jobs:
secrets: inherit secrets: inherit
PublishOnPyPI: PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r5 uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- ReleasePage - ReleasePage
@@ -256,7 +256,7 @@ jobs:
secrets: inherit secrets: inherit
ArtifactCleanUp: ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r5 uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- PlatformTestingParams - PlatformTestingParams

View File

@@ -6,10 +6,11 @@ on:
jobs: jobs:
NamespacePackage: NamespacePackage:
uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5 uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@latex
with: with:
package_namespace: pyExamples package_namespace: pyExamples
package_name: Extensions package_name: Extensions
documentation: Actions
codecov: true codecov: true
codacy: true codacy: true
dorny: true dorny: true

View File

@@ -42,7 +42,7 @@ jobs:
retention-days: 1 retention-days: 1
NightlyPage: NightlyPage:
uses: pyTooling/Actions/.github/workflows/NightlyRelease.yml@r5 uses: ./.github/workflows/NightlyRelease.yml
needs: needs:
- Build - Build
permissions: permissions:

View File

@@ -6,24 +6,24 @@ on:
jobs: jobs:
Params_Default: Params_Default:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
Params_PythonVersions: Params_PythonVersions:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
python_version_list: "3.11 3.12 pypy-3.9 pypy-3.10" python_version_list: "3.11 3.12 pypy-3.9 pypy-3.10"
Params_Systems: Params_Systems:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
system_list: "windows mingw32 mingw64" system_list: "windows mingw32 mingw64"
Params_Include: Params_Include:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
python_version_list: "3.11" python_version_list: "3.11"
@@ -31,7 +31,7 @@ jobs:
include_list: "ubuntu:3.12 ubuntu:3.13" include_list: "ubuntu:3.12 ubuntu:3.13"
Params_Exclude: Params_Exclude:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
python_version_list: "3.12" python_version_list: "3.12"
@@ -39,7 +39,7 @@ jobs:
exclude_list: "windows:3.12 windows:3.13" exclude_list: "windows:3.12 windows:3.13"
Params_Disable: Params_Disable:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
python_version_list: "3.12" python_version_list: "3.12"
@@ -47,7 +47,7 @@ jobs:
disable_list: "windows:3.12 windows:3.13" disable_list: "windows:3.12 windows:3.13"
Params_All: Params_All:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r5 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: Example name: Example
python_version_list: "3.12 3.13" python_version_list: "3.12 3.13"

View File

@@ -6,13 +6,14 @@ on:
jobs: jobs:
SimplePackage: SimplePackage:
uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5 uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@latex
with: with:
package_name: pyDummy package_name: pyDummy
codecov: true documentation: Actions
codacy: true codecov: true
dorny: true codacy: true
cleanup: false dorny: true
cleanup: false
secrets: secrets:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -85,7 +85,7 @@ The following block shows a minimal YAML workflow file:
steps: steps:
# Clone repository # Clone repository
- uses: actions/checkout@v5 - uses: actions/checkout@v4
# Build your application, tool, artifacts, etc. # Build your application, tool, artifacts, etc.
- name: Build - name: Build
@@ -95,7 +95,7 @@ The following block shows a minimal YAML workflow file:
# Update tag and pre-release # Update tag and pre-release
# - Update (force-push) tag to the commit that is used in the workflow. # - Update (force-push) tag to the commit that is used in the workflow.
# - Upload artifacts defined by the user. # - Upload artifacts defined by the user.
- uses: pyTooling/Actions/releaser@r4 - uses: pyTooling/Actions/releaser@r0
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
files: | files: |

View File

@@ -60,12 +60,12 @@ Documentation Only (Sphinx)
jobs: jobs:
BuildTheDocs: BuildTheDocs:
uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@r4 uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@r0
with: with:
artifact: Documentation artifact: Documentation
PublishToGitHubPages: PublishToGitHubPages:
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r4 uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r0
needs: needs:
- BuildTheDocs - BuildTheDocs
with: with:

View File

@@ -27,7 +27,7 @@ The simplest variant just uses the artifact name for the package.
jobs: jobs:
ArtifactCleanUp: ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r4 uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r0
with: with:
package: Package package: Package
@@ -39,7 +39,7 @@ Complex Example
jobs: jobs:
ArtifactCleanUp: ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r4 uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r0
needs: needs:
- Params - Params
- UnitTesting - UnitTesting

View File

@@ -30,7 +30,7 @@ Simple Example
jobs: jobs:
BuildTheDocs: BuildTheDocs:
uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@r4 uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@r0
Complex Example Complex Example
@@ -40,7 +40,7 @@ Complex Example
jobs: jobs:
BuildTheDocs: BuildTheDocs:
uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@r4 uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@r0
needs: needs:
- Params - Params
with: with:

View File

@@ -52,7 +52,7 @@ Simple Example
jobs: jobs:
Coverage: Coverage:
uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r4 uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r0
with: with:
artifact: Coverage artifact: Coverage
secrets: inherit secrets: inherit
@@ -64,7 +64,7 @@ Complex Example
jobs: jobs:
Coverage: Coverage:
uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r4 uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r0
needs: needs:
- Params - Params
with: with:

View File

@@ -33,7 +33,7 @@ Simple Example
jobs: jobs:
Package: Package:
uses: pyTooling/Actions/.github/workflows/Package.yml@r4 uses: pyTooling/Actions/.github/workflows/Package.yml@r0
with: with:
artifact: Package artifact: Package
@@ -45,7 +45,7 @@ Complex Example
jobs: jobs:
Package: Package:
uses: pyTooling/Actions/.github/workflows/Package.yml@r4 uses: pyTooling/Actions/.github/workflows/Package.yml@r0
needs: needs:
- Params - Params
- Coverage - Coverage

View File

@@ -35,7 +35,7 @@ requires a `name` parameter to create the artifact names.
jobs: jobs:
Params: Params:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r4 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0
with: with:
name: pyTooling name: pyTooling
@@ -81,7 +81,7 @@ over resulting in the following combinations:
jobs: jobs:
UnitTestingParams: UnitTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r4 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0
with: with:
name: pyTooling name: pyTooling
python_version_list: "3.8 3.9 3.10 3.11 pypy-3.9 pypy-3.10" python_version_list: "3.8 3.9 3.10 3.11 pypy-3.9 pypy-3.10"
@@ -89,14 +89,14 @@ over resulting in the following combinations:
exclude_list: "windows:pypy-3.9 windows:pypy-3.10" exclude_list: "windows:pypy-3.9 windows:pypy-3.10"
PerformanceTestingParams: PerformanceTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r4 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0
with: with:
name: pyTooling name: pyTooling
python_version_list: "3.11 3.12" python_version_list: "3.11 3.12"
system_list: "ubuntu windows macos" system_list: "ubuntu windows macos"
PlatformTestingParams: PlatformTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r4 uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with: with:
name: pyTooling name: pyTooling
python_version_list: "3.12" python_version_list: "3.12"
@@ -297,12 +297,12 @@ variables. Thus, this job is used to compute an output parameter that can be reu
jobs: jobs:
Params: Params:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r4 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0
with: with:
name: pyTooling name: pyTooling
CodeCoverage: CodeCoverage:
uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r4 uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r0
needs: needs:
- Params - Params
with: with:
@@ -330,12 +330,12 @@ A job description contains the following key-value pairs:
jobs: jobs:
Params: Params:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r4 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0
with: with:
name: pyTooling name: pyTooling
UnitTesting: UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r4 uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
needs: needs:
- Params - Params
with: with:
@@ -389,12 +389,12 @@ The supported artifacts are:
jobs: jobs:
Params: Params:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r4 uses: pyTooling/Actions/.github/workflows/Parameters.yml@r0
with: with:
name: pyTooling name: pyTooling
Coverage: Coverage:
uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r4 uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@dev
needs: needs:
- Params - Params
with: with:

View File

@@ -42,7 +42,7 @@ by a Git tag. A secret is forwarded from GitHub secrets to a job secret.
# ... # ...
PublishOnPyPI: PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r4 uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r0
if: startsWith(github.ref, 'refs/tags') if: startsWith(github.ref, 'refs/tags')
with: with:
artifact: Package artifact: Package
@@ -66,7 +66,7 @@ by that job. Finally, the list of requirements is overwritten to load a list of
# ... # ...
PublishOnPyPI: PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r4 uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r0
if: startsWith(github.ref, 'refs/tags') if: startsWith(github.ref, 'refs/tags')
needs: needs:
- Params - Params

View File

@@ -34,7 +34,7 @@ Simple Example
jobs: jobs:
PublishTestResults: PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r4 uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r0
Complex Example Complex Example
=============== ===============
@@ -49,7 +49,7 @@ Complex Example
# ... # ...
PublishTestResults: PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r4 uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r0
needs: needs:
- CodeCoverage - CodeCoverage
- UnitTesting - UnitTesting

View File

@@ -29,7 +29,7 @@ Simple Example
# ... # ...
PublishToGitHubPages: PublishToGitHubPages:
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r4 uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r0
needs: needs:
- BuildTheDocs - BuildTheDocs
with: with:
@@ -43,7 +43,7 @@ Complex Example
jobs: jobs:
PublishToGitHubPages: PublishToGitHubPages:
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r4 uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r0
needs: needs:
- Params - Params
- BuildTheDocs - BuildTheDocs

View File

@@ -62,7 +62,7 @@ Simple Example
jobs: jobs:
Release: Release:
uses: pyTooling/Actions/.github/workflows/Release.yml@r4 uses: pyTooling/Actions/.github/workflows/Release.yml@r0
Complex Example Complex Example
@@ -72,7 +72,7 @@ Complex Example
jobs: jobs:
Release: Release:
uses: pyTooling/Actions/.github/workflows/Release.yml@r4 uses: pyTooling/Actions/.github/workflows/Release.yml@r0
if: startsWith(github.ref, 'refs/tags') if: startsWith(github.ref, 'refs/tags')
needs: needs:
- Package - Package

View File

@@ -29,7 +29,7 @@ Simple Example
jobs: jobs:
StaticTypeCheck: StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r4 uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r0
with: with:
commands: | commands: |
touch pyTooling/__init__.py touch pyTooling/__init__.py
@@ -44,7 +44,7 @@ Complex Example
jobs: jobs:
StaticTypeCheck: StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r4 uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r0
needs: needs:
- Params - Params
with: with:

View File

@@ -36,7 +36,7 @@ Simple Example
# ... # ...
UnitTesting: UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r4 uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r0
needs: needs:
- Params - Params
with: with:

View File

@@ -79,7 +79,7 @@ jobs:
steps: steps:
# Clone repository # Clone repository
- uses: actions/checkout@v5 - uses: actions/checkout@v4
# Build your application, tool, artifacts, etc. # Build your application, tool, artifacts, etc.
- name: Build - name: Build

View File

@@ -1,13 +1,13 @@
-r ../requirements.txt -r ../requirements.txt
# Coverage collection # Coverage collection
Coverage ~= 7.10 Coverage ~= 7.9
# Test Runner # Test Runner
pytest ~= 8.4 pytest ~= 8.4
pytest-cov ~= 6.2 pytest-cov ~= 6.2
# Static Type Checking # Static Type Checking
mypy ~= 1.17 mypy ~= 1.16
typing_extensions ~= 4.14 typing_extensions ~= 4.14
lxml ~= 6.0 lxml ~= 5.4