name: Namespace Package on: workflow_call: inputs: package_namespace: description: 'Name of the tool''s namespace.' required: false default: '' type: string package_name: description: 'Name of the tool''s package.' required: true type: string unittest_python_version: description: 'Python version.' required: false default: '3.13' type: string unittest_python_version_list: description: 'Space separated list of Python versions to run tests with.' required: false default: '3.9 3.10 3.11 3.12 3.13' type: string unittest_system_list: description: 'Space separated list of systems to run tests on.' required: false default: 'ubuntu windows macos macos-arm mingw64 ucrt64' type: string unittest_include_list: description: 'Space separated list of system:python items to be included into the list of test.' required: false default: '' type: string unittest_exclude_list: description: 'Space separated list of system:python items to be excluded from the list of test.' required: false default: '' type: string unittest_disable_list: description: 'Space separated list of system:python items to be disabled from the list of test.' required: false default: '' type: string apptest_python_version: description: 'Python version.' required: false default: '3.13' type: string apptest_python_version_list: description: 'Space separated list of Python versions to run tests with.' required: false default: "" type: string apptest_system_list: description: 'Space separated list of systems to run tests on.' required: false default: 'ubuntu windows macos macos-arm ucrt64' type: string apptest_include_list: description: 'Space separated list of system:python items to be included into the list of test.' required: false default: '' type: string apptest_exclude_list: description: 'Space separated list of system:python items to be excluded from the list of test.' required: false default: '' type: string apptest_disable_list: description: 'Space separated list of system:python items to be disabled from the list of test.' required: false default: '' type: string jobs: ConfigParams: uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev with: package_namespace: ${{ inputs.package_namespace }} package_name: ${{ inputs.package_name }} UnitTestingParams: uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev with: package_namespace: ${{ inputs.package_namespace }} package_name: ${{ inputs.package_name }} python_version: ${{ inputs.unittest_python_version }} python_version_list: ${{ inputs.unittest_python_version_list }} system_list: ${{ inputs.unittest_system_list }} include_list: ${{ inputs.unittest_include_list }} exclude_list: ${{ inputs.unittest_exclude_list }} disable_list: ${{ inputs.unittest_disable_list }} AppTestingParams: uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev with: package_namespace: ${{ inputs.package_namespace }} package_name: ${{ inputs.package_name }} python_version: ${{ inputs.apptest_python_version }} python_version_list: ${{ inputs.apptest_python_version_list }} system_list: ${{ inputs.apptest_system_list }} include_list: ${{ inputs.apptest_include_list }} exclude_list: ${{ inputs.apptest_exclude_list }} disable_list: ${{ inputs.apptest_disable_list }} UnitTesting: uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev needs: - UnitTestingParams with: jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }} requirements: "-r tests/unit/requirements.txt" # pacboy: "msys/git python-lxml:p" unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} StaticTypeCheck: uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev needs: - ConfigParams - UnitTestingParams with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} commands: | ${{ needs.ConfigParams.outputs.mypy_prepare_command }} mypy --html-report report/typing -p ${{ needs.ConfigParams.outputs.package_fullname }} html_report: 'report/typing' html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} DocCoverage: uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@dev needs: - UnitTestingParams with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} directory: ${{ inputs.package_namespace }}/${{ inputs.package_name }} # fail_below: 70 Package: uses: pyTooling/Actions/.github/workflows/Package.yml@dev needs: - UnitTestingParams - UnitTesting with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} # AppTesting: # uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@dev # needs: # - AppTestingParams # - UnitTestingParams # - Package # with: # jobs: ${{ needs.AppTestingParams.outputs.python_jobs }} # wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} # apptest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).apptesting_xml }} PublishCoverageResults: uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev needs: - UnitTestingParams - UnitTesting with: # coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} # coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} secrets: codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} PublishTestResults: uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev needs: - UnitTestingParams - UnitTesting with: merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} # VerifyDocs: # uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev # needs: # - UnitTestingParams # with: # python_version: ${{ needs.UnitTestingParams.outputs.python_version }} Documentation: uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@dev needs: - UnitTestingParams - ConfigParams - PublishTestResults - PublishCoverageResults # - VerifyDocs with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-ubuntu-native-3.12 coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} IntermediateCleanUp: uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev needs: - UnitTestingParams - PublishCoverageResults - PublishTestResults - Documentation with: sqlite_coverage_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}- xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}- # PDFDocumentation: # uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@dev # needs: # - UnitTestingParams # - Documentation # with: # document: pyEDAA.ProjectModel # latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} # pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }} PublishToGitHubPages: uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev needs: - UnitTestingParams - Documentation # - PDFDocumentation - PublishCoverageResults - StaticTypeCheck with: doc: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} coverage: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} ReleasePage: uses: pyTooling/Actions/.github/workflows/Release.yml@dev if: startsWith(github.ref, 'refs/tags') needs: - Package # - AppTesting - PublishToGitHubPages PublishOnPyPI: uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev if: startsWith(github.ref, 'refs/tags') needs: - UnitTestingParams - ReleasePage with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} requirements: -r dist/requirements.txt artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} secrets: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} ArtifactCleanUp: uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev needs: - UnitTestingParams - UnitTesting - StaticTypeCheck - Documentation # - PDFDocumentation - PublishTestResults - PublishCoverageResults - PublishToGitHubPages # - PublishOnPyPI - IntermediateCleanUp with: package: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} remaining: | ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} # ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).apptesting_xml }}-* # ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }}