# ==================================================================================================================== # # Authors: # # Patrick Lehmann # # Unai Martinez-Corral # # # # ==================================================================================================================== # # Copyright 2020-2024 The pyTooling Authors # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # # You may obtain a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # # # # SPDX-License-Identifier: Apache-2.0 # # ==================================================================================================================== # name: Pipeline on: workflow_dispatch: jobs: # This job is a workaround for global variables # See https://github.com/actions/runner/issues/480 Params: uses: pyTooling/Actions/.github/workflows/Parameters.yml@main with: name: ToolName # Optional system_list: 'ubuntu windows msys2 macos' python_version: '3.10' python_version_list: '3.8 3.9 3.10' UnitTesting: uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@main needs: - Params with: jobs: ${{ needs.Params.outputs.python_jobs }} # Optional requirements: '-r tests/requirements.txt' pacboy: >- python-pip:p python-wheel:p python-coverage:p python-lxml:p mingw_requirements: '-r tests/requirements.mingw.txt' tests_directory: 'tests' unittest_directory: 'unit' artifact: ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }} Coverage: uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@main needs: - Params with: artifact: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }} # Optional python_version: ${{ needs..Params.outputs.python_version }} requirements: '-r tests/requirements.txt' tests_directory: 'tests' unittest_directory: 'unit' secrets: codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} StaticTypeCheck: uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@main needs: - Params with: commands: | mypy --junit-xml StaticTypingSummary.xml --html-report htmlmypy -p ToolName html_artifact: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }} junit_artifact: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_junit }} # Optional python_version: ${{ needs..Params.outputs.python_version }} requirements: '-r tests/requirements.txt' html_report: 'htmlmypy' junit_report: 'StaticTypingSummary.xml' allow_failure: true PublishTestResults: uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@main needs: - UnitTesting - StaticTypeCheck with: # Optional report_files: artifacts/**/*.xml Package: uses: pyTooling/Actions/.github/workflows/Package.yml@main needs: - Params - Coverage with: artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }} # Optional python_version: ${{ needs..Params.outputs.python_version }} requirements: 'wheel' Release: uses: pyTooling/Actions/.github/workflows/Release.yml@main if: startsWith(github.ref, 'refs/tags') needs: - UnitTesting - Coverage - StaticTypeCheck - Package PublishOnPyPI: uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@main if: startsWith(github.ref, 'refs/tags') needs: - Params - Release - Package with: artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }} # Optional python_version: ${{ needs..Params.outputs.python_version }} requirements: 'wheel twine' secrets: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} VerifyDocs: uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@main needs: - Params with: # Optional python_version: ${{ needs..Params.outputs.python_version }} BuildTheDocs: uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@main needs: - Params - VerifyDocs with: artifact: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }} PublishToGitHubPages: uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@main needs: - Params - BuildTheDocs - Coverage - StaticTypeCheck with: doc: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }} # Optional coverage: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }} typing: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }} ArtifactCleanUp: uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@main needs: - Params - PublishTestResults - Coverage - StaticTypeCheck - BuildTheDocs - PublishToGitHubPages with: package: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }} remaining: | ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}-* ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }} ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }} ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_junit }} ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }}