mirror of
https://github.com/pyTooling/Actions.git
synced 2026-02-13 03:26:55 +08:00
133 lines
3.9 KiB
YAML
133 lines
3.9 KiB
YAML
name: Unit Testing, Coverage Collection, Package, Release, Documentation and Publish
|
|
|
|
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/Params.yml@dev
|
|
with:
|
|
name: ToolName
|
|
# Optional
|
|
python_version: '3.10'
|
|
python_version_list: '3.8 3.9 3.10'
|
|
|
|
UnitTesting:
|
|
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
|
|
with:
|
|
jobs: ${{ needs.Params.outputs.python_jobs }}
|
|
# Optional
|
|
requirements: '-r tests/requirements.txt'
|
|
TestReport: true
|
|
|
|
Coverage:
|
|
uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@dev
|
|
needs:
|
|
- Params
|
|
with:
|
|
artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.coverage }}
|
|
# Optional
|
|
python_version: ${{ fromJson(needs.Params.outputs.params).python_version }}
|
|
requirements: '-r tests/requirements.txt'
|
|
secrets:
|
|
codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
|
|
|
StaticTypeCheck:
|
|
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev
|
|
needs:
|
|
- Params
|
|
with:
|
|
mypy_args: -m ${{ fromJson(needs.Params.outputs.params).name }}
|
|
artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing }}
|
|
# Optional
|
|
python_version: ${{ fromJson(needs.Params.outputs.params).python_version }}
|
|
requirements: '-r tests/requirements.txt'
|
|
html_report: 'htmlmypy'
|
|
|
|
Release:
|
|
uses: pyTooling/Actions/.github/workflows/Release.yml@dev
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
needs:
|
|
- UnitTesting
|
|
- Coverage
|
|
- StaticTypeCheck
|
|
|
|
Package:
|
|
uses: pyTooling/Actions/.github/workflows/Package.yml@dev
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
needs:
|
|
- Params
|
|
- Coverage
|
|
with:
|
|
artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.package }}
|
|
# Optional
|
|
python_version: ${{ fromJson(needs.Params.outputs.params).python_version }}
|
|
requirements: 'wheel'
|
|
|
|
PublishOnPyPI:
|
|
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
needs:
|
|
- Params
|
|
- Release
|
|
- Package
|
|
with:
|
|
artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.package }}
|
|
# Optional
|
|
python_version: ${{ fromJson(needs.Params.outputs.params).python_version }}
|
|
requirements: 'wheel twine'
|
|
secrets:
|
|
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
|
|
|
|
VerifyDocs:
|
|
uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev
|
|
needs:
|
|
- Params
|
|
with:
|
|
# Optional
|
|
python_version: ${{ fromJson(needs.Params.outputs.params).python_version }}
|
|
|
|
BuildTheDocs:
|
|
uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@dev
|
|
needs:
|
|
- Params
|
|
- VerifyDocs
|
|
with:
|
|
artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.doc }}
|
|
|
|
PublishToGitHubPages:
|
|
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev
|
|
needs:
|
|
- Params
|
|
- BuildTheDocs
|
|
- Coverage
|
|
- StaticTypeCheck
|
|
with:
|
|
doc: ${{ fromJson(needs.Params.outputs.params).artifacts.doc }}
|
|
# Optional
|
|
coverage: ${{ fromJson(needs.Params.outputs.params).artifacts.coverage }}
|
|
typing: ${{ fromJson(needs.Params.outputs.params).artifacts.typing }}
|
|
|
|
|
|
ArtifactCleanUp:
|
|
name: 🗑️ Artifact Cleanup
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- Params
|
|
- Coverage
|
|
- StaticTypeCheck
|
|
- BuildTheDocs
|
|
- PublishToGitHubPages
|
|
|
|
steps:
|
|
- name: 🗑️ Delete all Artifacts
|
|
uses: geekyeggo/delete-artifact@v1
|
|
with:
|
|
name: |
|
|
${{ fromJson(needs.Params.outputs.params).artifacts.coverage }}
|
|
${{ fromJson(needs.Params.outputs.params).artifacts.typing }}
|
|
${{ fromJson(needs.Params.outputs.params).artifacts.doc }}
|