An open API service indexing awesome lists of open source software.

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

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).