This repo contains reusable GitHub Action workflows and configuration.
The pre-commit workflow creates matrix jobs for every pre-commit hook. The matrix jobs fail if the hook fails and/or if there is a diff after running the hook.
This action requires a .pre-commit-config.yaml file that contains the hooks as well as a .tool-versions file that contains (at least) the version of pre-commit to be installed.
The pre-commit workflow can be integrated using the following workflow file:
name: pre-commit
on:
  push:
jobs:
  pre-commit:
    uses: cybcon/github_workflows/.github/workflows/pre-commit.yaml@v1.0.0The release workflows provide a pull-request label based release process.
A release is created when a pull request is merged to the main or master branch.
The release version type (major, minor or patch) is determined by a corresponding release label.
The release-label-validation workflow ensures that a pull request cannot be merged before an appropriate label is set. The release-from-label workflow is responsible for creating the actual release after merge.
Possible release labels are
- major- Release a major version
- minor- Release a minor version
- patch- Release a patch version
Additionally the pre-release label can be set to create a pre-release instead of a production one.
If no release should be created the chore label must be used.
The release workflows can be integrated using the following workflow files:
name: release
on:
  pull_request:
    types:
      - closed
jobs:
  release:
    uses: cybcon/github_workflows/.github/workflows/release-from-label.yaml@v1.0.0name: release-label-validation
on:
  pull_request:
    types:
      - opened
      - edited
      - synchronize
      - reopened
      - labeled
      - unlabeled
jobs:
  release-label-validation:
    uses: cybcon/github_workflows/.github/workflows/release-label-validation.yaml@v1.0.0