Compare commits

..

3 Commits

Author SHA1 Message Date
Patrick Lehmann
77a7545f66 Translate LaTeX documentation to PDF. 2025-06-21 00:04:57 +02:00
Patrick Lehmann
f3e2e42ae3 Handle replacement placeholders, if no substitution exists. 2025-06-20 02:02:46 +02:00
Patrick Lehmann
2f7fa88c36 Compute and verify SHA256 checksums. 2025-06-19 17:44:31 +02:00
10 changed files with 128 additions and 87 deletions

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@main uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@dev
ConfigParams: ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@main 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@main 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@main # 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@main 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@main 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@main 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@main 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@main 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@main 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@main # uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@dev
# needs: # needs:
# - AppTestingParams # - AppTestingParams
# - UnitTestingParams # - UnitTestingParams
@@ -240,7 +245,7 @@ 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@main uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -262,7 +267,7 @@ jobs:
CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }} CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }}
PublishTestResults: PublishTestResults:
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@main uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -277,14 +282,14 @@ jobs:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# VerifyDocs: # VerifyDocs:
# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@main # 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@main uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@dev
needs: needs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
@@ -300,7 +305,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@main uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- PublishCoverageResults - PublishCoverageResults
@@ -310,18 +315,18 @@ jobs:
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@main 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@main uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev
needs: needs:
- UnitTestingParams - UnitTestingParams
- Documentation - Documentation
@@ -334,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@main uses: pyTooling/Actions/.github/workflows/TagReleaseCommit.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTesting - UnitTesting
@@ -353,7 +358,7 @@ jobs:
secrets: inherit secrets: inherit
ReleasePage: ReleasePage:
uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@main uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTesting - UnitTesting
@@ -371,7 +376,7 @@ jobs:
secrets: inherit secrets: inherit
PublishOnPyPI: PublishOnPyPI:
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@main uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev
needs: needs:
- Prepare - Prepare
- UnitTestingParams - UnitTestingParams
@@ -386,13 +391,13 @@ jobs:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
ArtifactCleanUp: ArtifactCleanUp:
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@main 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

@@ -43,11 +43,19 @@ 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@v4 uses: pyTooling/download-artifact@v4
@@ -55,21 +63,17 @@ jobs:
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

@@ -290,6 +290,8 @@ jobs:
# Inline description # Inline description
if [[ -s __DESCRIPTION__.md ]]; then if [[ -s __DESCRIPTION__.md ]]; then
NOTES="${NOTES//%%DESCRIPTION%%/$(<__DESCRIPTION__.md)}" NOTES="${NOTES//%%DESCRIPTION%%/$(<__DESCRIPTION__.md)}"
else
NOTES="${NOTES//%%DESCRIPTION%%/}"
fi fi
# Inline PullRequest and increase headline levels # Inline PullRequest and increase headline levels
@@ -310,11 +312,17 @@ jobs:
;; ;;
esac esac
done done
else
while [[ "${NOTES}" =~ %%(PULLREQUEST(\+[0-3])?)%% ]]; do
NOTES="${NOTES//${BASH_REMATCH[0]}/}"
done
fi fi
# inline Footer # inline Footer
if [[ -s __FOOTER__.md ]]; then if [[ -s __FOOTER__.md ]]; then
NOTES="${NOTES//%%FOOTER%%/$(<__FOOTER__.md)}" NOTES="${NOTES//%%FOOTER%%/$(<__FOOTER__.md)}"
else
NOTES="${NOTES//%%FOOTER%%/}"
fi fi
# Apply replacements # Apply replacements
@@ -525,6 +533,8 @@ jobs:
declare -A downloadedArtifacts declare -A downloadedArtifacts
# A dictionary to check for duplicate asset files in release # A dictionary to check for duplicate asset files in release
declare -A assetFilenames declare -A assetFilenames
# A dictionary of SHA256 checksums
declare -A sha256Checksums
while IFS=$'\r\n' read -r assetLine; do while IFS=$'\r\n' read -r assetLine; do
if [[ "${assetLine}" == "" || "${assetLine:0:1}" == "#" ]]; then if [[ "${assetLine}" == "" || "${assetLine:0:1}" == "#" ]]; then
continue continue
@@ -552,7 +562,7 @@ jobs:
asset="$(Replace "${asset}")" asset="$(Replace "${asset}")"
title="$(Replace "${title}")" title="$(Replace "${title}")"
printf "Publish asset '%s' from artifact '%s' with title '%s'\n" "${asset}" "${artifact}" "${title}" printf "${ANSI_LIGHT_BLUE}Publish asset '%s' from artifact '%s' with title '%s'${ANSI_NOCOLOR}\n" "${asset}" "${artifact}" "${title}"
printf " Checked asset for duplicates ... " printf " Checked asset for duplicates ... "
if [[ -n "${assetFilenames[$asset]}" ]]; then if [[ -n "${assetFilenames[$asset]}" ]]; then
printf "${ANSI_LIGHT_RED}[ERROR]${ANSI_NOCOLOR}\n" printf "${ANSI_LIGHT_RED}[ERROR]${ANSI_NOCOLOR}\n"
@@ -566,7 +576,7 @@ jobs:
# Download artifact by artifact name # Download artifact by artifact name
if [[ -n "${downloadedArtifacts[$artifact]}" ]]; then if [[ -n "${downloadedArtifacts[$artifact]}" ]]; then
printf " downloading '%s' ... ${ANSI_LIGHT_YELLOW}[SKIPPED]${ANSI_NOCOLOR}\n" "${artifact}" printf " downloading artifact '%s' ... ${ANSI_LIGHT_YELLOW}[SKIPPED]${ANSI_NOCOLOR}\n" "${artifact}"
else else
echo " downloading '${artifact}' ... " echo " downloading '${artifact}' ... "
printf " gh run download $GITHUB_RUN_ID --dir \"%s\" --name \"%s\" " "${artifact}" "${artifact}" printf " gh run download $GITHUB_RUN_ID --dir \"%s\" --name \"%s\" " "${artifact}" "${artifact}"
@@ -701,6 +711,11 @@ jobs:
continue continue
fi fi
printf " compute SHA256 checksum of '${uploadFile}' ... "
sha256=$(sha256sum -b ${uploadFile} | cut -d " " -f1)
sha256Checksums[$asset]="sha256:${sha256}"
printf "${ANSI_LIGHT_BLUE}${sha256}${ANSI_NOCOLOR}\n"
# Add asset to JSON inventory # Add asset to JSON inventory
if [[ "${{ inputs.inventory-json }}" != "" ]]; then if [[ "${{ inputs.inventory-json }}" != "" ]]; then
if [[ "${categories}" != "${title}" ]]; then if [[ "${categories}" != "${title}" ]]; then
@@ -708,8 +723,9 @@ jobs:
category="" category=""
jsonEntry=$(jq -c -n \ jsonEntry=$(jq -c -n \
--arg title "${title}" \ --arg title "${title}" \
--arg sha256 "${sha256}" \
--arg file "${uploadFile#*/}" \ --arg file "${uploadFile#*/}" \
'{"file": $file, "title": $title}' \ '{"file": $file, "sha256": $sha256, "title": $title}' \
) )
while [[ "${categories}" != "${category}" ]]; do while [[ "${categories}" != "${category}" ]]; do
@@ -733,6 +749,20 @@ jobs:
gh release upload ${{ inputs.tag }} "${uploadFile}#${title}" --clobber gh release upload ${{ inputs.tag }} "${uploadFile}#${title}" --clobber
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then
printf "${ANSI_LIGHT_GREEN}[OK]${ANSI_NOCOLOR}\n" printf "${ANSI_LIGHT_GREEN}[OK]${ANSI_NOCOLOR}\n"
printf " checking assets SHA256 checksum ... \n"
ghSHA256=$(gh release view --json assets --jq ".assets[] | select(.name == \"${asset}\") | .digest" ${{ inputs.tag }})
if [[ "${ghSHA256}" == "${sha256Checksums[$asset]}" ]]; then
printf "${ANSI_LIGHT_GREEN}[PASSED]${ANSI_NOCOLOR}\n"
else
printf "${ANSI_LIGHT_RED}[FAILED]${ANSI_NOCOLOR}\n"
printf " ${ANSI_LIGHT_RED}SHA256 checksum compare failed.${ANSI_NOCOLOR}\n"
printf " ${ANSI_LIGHT_RED}Local: %s${ANSI_NOCOLOR}\n" "${sha256Checksums[$asset]}"
printf " ${ANSI_LIGHT_RED}GitHub: %s${ANSI_NOCOLOR}\n" "${ghSHA256}"
printf "::error title=%s::%s\n" "ChecksumError" "SHA256 checksum compare failed. Local=${sha256Checksums[$asset]} GitHub=${ghSHA256}"
ERRORS=$((ERRORS + 1))
continue
fi
else else
printf "${ANSI_LIGHT_RED}[ERROR]${ANSI_NOCOLOR}\n" printf "${ANSI_LIGHT_RED}[ERROR]${ANSI_NOCOLOR}\n"
printf " ${ANSI_LIGHT_RED}Couldn't upload asset '%s' from '%s' to release '%s'.${ANSI_NOCOLOR}\n" "${asset}" "${uploadFile}" "${{ inputs.tag }}" printf " ${ANSI_LIGHT_RED}Couldn't upload asset '%s' from '%s' to release '%s'.${ANSI_NOCOLOR}\n" "${asset}" "${uploadFile}" "${{ inputs.tag }}"

View File

@@ -6,7 +6,7 @@ on:
jobs: jobs:
Params: Params:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@main 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@main 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@main uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@dev
ConfigParams: ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main # 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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@main 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

@@ -9,5 +9,5 @@ pytest-cov ~= 6.2
# Static Type Checking # Static Type Checking
mypy ~= 1.16 mypy ~= 1.16
typing_extensions ~= 4.13 typing_extensions ~= 4.14
lxml ~= 5.4 lxml ~= 5.4