Skip to content

canonical/data-platform-workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Usage

Workflows

Name Description
lint.yaml Lint GitHub Actions workflows (.github/workflows/) and tox run -e lint
tag_charm_edge.yaml Create charm refresh compatibility version git tag before edge build & release
build_snap.yaml Build snap
build_rock.yaml Build rock
build_charm.yaml Build charm
release_python_package.yaml Release Python package to PyPI
check_python_package_pr.yaml Check Python package pull request has required semantic version prefix
release_snap.yaml Release snap to Snap Store
release_rock.yaml Release rock to GitHub Container Registry
release_charm_edge.yaml Release charm to Charmhub "edge" risk
release_charm_pr.yaml Release pull request charm to Charmhub branch
_mirror_charm.yaml Experimental Mirror subset of charm monorepo with local Python package to single-charm repo
_promote_charms.yaml Experimental charmcraft promote, update git tags, & generate release notes
check_charm_pr.yaml Check charm pull request has required labels for release notes
approve_renovate_pr.yaml Reduce required approvals on Renovate pull requests by 1
_update_bundle.yaml Experimental Update charm revisions in bundle
integration_test_charm.yaml Deprecated Integration test charm
sync_docs.yaml Deprecated Sync Discourse documentation to GitHub

Version

Recommendation: pin the latest version (e.g. v1.0.0) and use Renovate to stay up-to-date.

Bug fixes will not be backported.

Example workflow:

jobs:
  build:
    name: Build charms
    uses: canonical/data-platform-workflows/.github/workflows/[email protected]

Example Renovate configuration:

{
  "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.

Contributing

See CONTRIBUTING.md

About

Reusable GitHub Actions workflows used by the Data Platform team

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 8

Languages