Skip to content

Commit

Permalink
Updated README.
Browse files Browse the repository at this point in the history
  • Loading branch information
Paebbels committed Dec 26, 2024
1 parent d324bda commit e00a775
Showing 1 changed file with 34 additions and 11 deletions.
45 changes: 34 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,15 @@ This repository gathers reusable CI tooling for testing, packaging and distribut
See [GitHub Actions and GitHub Reusable Workflows](https://pytooling.github.io/Actions/Background.html) for more
background information.

## Reusable workflows
## Reusable Actions

- Artifacts:
- [pyTooling/upload-artifact](https://github.com/pyTooling/upload-artifact): The upload-artifact action will preserve
file attributes like permissions.
- [pyTooling/download-artifact](https://github.com/pyTooling/download-artifact): The download-artifact action will
preserve file attributes like permissions.

## Reusable Workflows

This repository provides 10+ *Reusable Workflows* based on the CI pipelines of the repos in this GitHub organisation,
[EDA²](https://github.com/edaa-org), [VHDL](https://github.com/vhdl), and others. By combining them, Python packages can
Expand All @@ -27,31 +35,46 @@ As shown in the screenshots above, the expected order is:
- [Parameters](.github/workflows/Parameters.yml): a workaround for the limitations to handle global variables in
GitHub Actions workflows (see [actions/runner#480](https://github.com/actions/runner/issues/480)).
It generates outputs with artifact names and job matrices to be used in later running jobs.
- [ExtractConfiguration](.github/workflows/ExtractConfiguration.yml): extracts configuration values from
`pyproject.toml` and exposes configured paths and filenames as job output parameters.
- Predefined pipelines:
- [CompletePipeline](.github/workflows/CompletePipeline.yml)
- Code testing/analysis:
- [ApplicationTesting](.github/workflows/ApplicationTesting.yml): like UnitTesting, but running tests using an
installed Python package.
- [UnitTesting](.github/workflows/UnitTesting.yml): run unit test with `pytest` using multiple versions of Python, and
optionally upload results as XML reports. Configuration options to `pytest` should be given via section
`[tool.pytest.ini_options]` in a `pyproject.toml` file.
- [CoverageCollection](.github/workflows/CoverageCollection.yml): collect code coverage data (incl. branch coverage)
with `pytest`/`pytest-cov`/`coverage.py` using a single version of Python (latest). It generates HTML and Cobertura
(XML)reports, upload the HTML report as an artifact, and upload the test results to Codecov and Codacy. Configuration
options to `pytest` and `coverage.py` should be given via section `[tool.pytest.ini_options]` and `[tool.coverage.*]`
in a `pyproject.toml` file.
`[tool.pytest.ini_options]` in a `pyproject.toml` file. Besides test results, also code coverage data (incl. branch
coverage) can be collected using `pytest`/`pytest-cov`/`coverage.py`. Configuration options to `coverage.py` should
be given via section `[tool.coverage.*]` in a `pyproject.toml` file.
While multiple report formats can be created in the job, it's recommended to use `PublishTestResults` and/or
`PublishCoverageResults` to merge results from matrix runs and then generate final reports as XML, JSON or HTML.
Finally, reports can be published to GitHub Pages or cloud services like Codecov and Codacy.
- [StaticTypeCheck](.github/workflows/StaticTypeCheck.yml): collect static type check result with `mypy`, and
optionally upload results as an HTML report.
Example `commands`:

- [VerifyDocs](.github/workflows/VerifyDocs.yml): extract code examples from the README and test these code snippets.
- Packaging and releasing:
- [Release](.github/workflows/Release.yml): publish GitHub Release.
- [NightlyRelease](.github/workflows/NightlyRelease.yml): publish GitHub Release.
- [Package](.github/workflows/Package.yml): generate source and wheel packages, and upload them as an artifact.
- [PublishOnPyPI](.github/workflows/PublishOnPyPI.yml): publish source and wheel packages to PyPI.
- [PublishTestResults](.github/workflows/PublishTestResults.yml): publish unit test results through GH action `dorny/test-reporter`.
- [PublishCoverageResults](.github/workflows/PublishCoverageResults.yml): publish ucode coverage results.
- Documentation:
- [BuildTheDocs](.github/workflows/BuildTheDocs.yml): build Sphinx documentation with BuildTheDocs, and upload HTML as
an artifact.
- [SphinxDocumentation](.github/workflows/PublishCoverageResults.yml): create HTML and LaTeX documentation using
Sphinx.
- [LaTeXDocumentation](.github/workflows/LaTeXDocumentation.yml): compile LaTeX documentation to a PDF file using
MikTeX.
- [PublishToGitHubPages](.github/workflows/PublishToGitHubPages.yml): publish HTML documentation to GitHub Pages.
- Cleanup:
- [IntermediateCleanUp](.github/workflows/IntermediateCleanUp.yml): delete intermediate artifacts.
- [ArtifactCleanUp](.github/workflows/ArtifactCleanUp.yml): delete artifacts.
- ⚠ Deprecated ⚠:
-[CoverageCollection](.github/workflows/CoverageCollection.yml): Use `UnitTesting`, because is can collect code
coverage too. This avoids code duplication in job templates.
-[BuildTheDocs](.github/workflows/BuildTheDocs.yml): Use `SphinxDocumentation`, `LaTeXDocumentation` and
`PublishToGitHubPages`. BuildTheDocs isn't maintained anymore.


### Example pipeline

Expand Down

0 comments on commit e00a775

Please sign in to comment.