https://github.com/canonical/data-platform-workflows
Reusable GitHub Actions workflows used by the Data Platform team
https://github.com/canonical/data-platform-workflows
data-platform
Last synced: about 2 months ago
JSON representation
Reusable GitHub Actions workflows used by the Data Platform team
- Host: GitHub
- URL: https://github.com/canonical/data-platform-workflows
- Owner: canonical
- License: apache-2.0
- Created: 2023-02-09T10:17:48.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-11-07T09:14:18.000Z (2 months ago)
- Last Synced: 2025-11-07T11:20:05.403Z (2 months ago)
- Topics: data-platform
- Language: Python
- Homepage:
- Size: 486 KB
- Stars: 7
- Watchers: 8
- Forks: 13
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
## Usage
### Workflows
| Name | Description |
|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
| [lint.yaml](.github/workflows/lint.md) | Lint GitHub Actions workflows (`.github/workflows/`) and `tox run -e lint` |
| [tag_charm_edge.yaml](.github/workflows/tag_charm_edge.md) | Create charm refresh compatibility version git tag before edge build & release |
| [build_snap.yaml](.github/workflows/build_snap.md) | Build snap |
| [build_rock.yaml](.github/workflows/build_rock.md) | Build rock |
| [build_charm.yaml](.github/workflows/build_charm.md) | Build charm |
| [release_python_package.yaml](.github/workflows/release_python_package.md) | Release Python package to PyPI |
| [check_python_package_pr.yaml](.github/workflows/check_python_package_pr.md) | Check Python package pull request has required semantic version prefix |
| [release_snap.yaml](.github/workflows/release_snap.md) | Release snap to Snap Store |
| [release_rock.yaml](.github/workflows/release_rock.md) | Release rock to GitHub Container Registry |
| [release_charm_edge.yaml](.github/workflows/release_charm_edge.md) | Release charm to Charmhub "edge" risk |
| [release_charm_pr.yaml](.github/workflows/release_charm_pr.md) | Release pull request charm to Charmhub branch |
| [_mirror_charm.yaml](.github/workflows/_mirror_charm.md) | **Experimental** Mirror subset of charm monorepo with local Python package to single-charm repo |
| [_promote_charms.yaml](.github/workflows/_promote_charms.md) | **Experimental** `charmcraft promote` & generate release notes |
| [_promote_charm_legacy.yaml](.github/workflows/_promote_charm_legacy.md) | **Deprecated** `charmcraft promote` & generate release notes for charm without refresh compatibility version tags |
| [check_charm_pr.yaml](.github/workflows/check_charm_pr.md) | Check charm pull request has required labels for release notes |
| [approve_renovate_pr.yaml](.github/workflows/approve_renovate_pr.md) | Reduce required approvals on [Renovate](https://docs.renovatebot.com/) pull requests by 1 |
| [_update_bundle.yaml](.github/workflows/_update_bundle.md) | **Experimental** Update charm revisions in bundle |
| [integration_test_charm.yaml](.github/workflows/integration_test_charm.md) | **Deprecated** Integration test charm |
| [sync_docs.yaml](.github/workflows/sync_docs.md) | **Deprecated** Sync Discourse documentation to GitHub |
### Version
Recommendation: pin the latest version (e.g. `v1.0.0`) and use [Renovate](https://docs.renovatebot.com/) to stay up-to-date.
Bug fixes will **not** be backported.
Example workflow:
```yaml
jobs:
build:
name: Build charms
uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v1.0.0
```
Example Renovate configuration:
```json5
{
"enabledManagers": ["poetry", "github-actions"],
"packageRules": [
// Later rules override earlier rules
// Group data-platform-workflows Python package & workflow updates into the same PR
{
"matchManagers": ["poetry"],
"matchPackageNames": ["canonical/data-platform-workflows"],
// Ensure Renovate prefers vX.0.0 tag (e.g. "v24.0.0") over vX tag (e.g. "v24") if vX.X.X tag
// currently in use
// (Matches default versioning of "github-actions" manager)
"versioning": "docker",
"groupName": "data-platform-workflows"
},
{
"matchManagers": ["github-actions"],
"matchPackageNames": ["canonical/data-platform-workflows"],
"groupName": "data-platform-workflows"
},
]
}
```
Note: all workflows in this repository share a version number. If a breaking change is made to the public interface of one workflow, all workflows will have a new major version even if they have no breaking changes.
If you do not want to use Renovate, pin to the latest major version (e.g. `v1`).
### Public interface
Workflows that do **not** begin with an underscore (e.g. `foo.yaml`) may be called outside this repository.
Workflows that begin with one underscore (e.g. `_foo.yaml`) are internal and are only intended to be called by reusable workflows in this repository (that begin with zero or one underscores).
Workflows that begin with two underscores (e.g. `__foo.yaml`) are for this repository only. They may only be (triggered by an event on this repository or) called by workflows in this repository that begin with two underscores.
## Documentation
- User Documentation: See [Workflows](#workflows)
- Developer Documentation: See [CONTRIBUTING.md](CONTRIBUTING.md). To be improved.
## Community and support
- Report [issues](https://github.com/canonical/data-platform-workflows/issues)
- [Contact us on Matrix](https://matrix.to/#/#charmhub-data-platform:ubuntu.com)
Data Platform Workflows is covered by the [Ubuntu Code of
Conduct](https://ubuntu.com/community/ethos/code-of-conduct).