mirror of
https://github.com/pyTooling/Actions.git
synced 2026-02-12 19:16:57 +08:00
179 lines
7.4 KiB
YAML
179 lines
7.4 KiB
YAML
# ==================================================================================================================== #
|
|
# Authors: #
|
|
# Patrick Lehmann #
|
|
# Unai Martinez-Corral #
|
|
# #
|
|
# ==================================================================================================================== #
|
|
# Copyright 2020-2023 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 }}
|