Github Organisation Workflows
This workflow will automaticaly attach a changelog to a Github release whenever a new Semantic Versioning tag starting with v
is created in a repository.
The changelog is built from Semantic Commit Messages. Therefore, your commit messages have to be in this format:
type(category): description [flags]
Where type is one of the following:
breaking
build
ci
chore
docs
feat
fix
other
perf
refactor
revert
style
test
Where flags is an optional comma-separated list of one or more of the following (must be surrounded in square brackets):
breaking
: alterstype
to be a breaking change
And category can be anything of your choice. If you use a type not found in the list (but it still follows the same format of the message), it'll be grouped under other.
E.g.:
feat(messaging): Add support for sending images [breaking]
To add this action click on Actions
in the top bar of the target repository, scroll to Workflows created by Wire Swiss GmbH
and click Set up this workflow
.
This workflow will automaticaly add labels to a pull reques based on it's title. Therefore the title must follow Semantic Commit Messages.
Add this action but clicking on Actions
in the top bar of the target repository, scroll to Workflows created by Wire Swiss GmbH
and click Set up this workflow
.
In the .github
folder in your repo, create a file called labeler.yml
like the following:
# Types. This are lables such as `type: feature`
'type: refactoring 🛠':
title: '^refactor(\(.+\))?:.*'
'type: bug / fix 🐞':
title: '^(run)?fix(\(.+\))?:.*'
'type: chore 🧹':
title: '^chore(\(.+\))?:.*'
'type: documentation 📋':
title: '^docs(\(.+\))?:.*'
'type: feature / request ✨':
title: '^feat(\(.+\))?:.*'
'type: test 👷':
title: '^test(\(.+\))?:.*'
# Sizes. Based on the amount of line changed
'👕 size: XS':
size-below: 10
'👕 size: S':
size-above: 9
size-below: 100
'👕 size: M':
size-above: 99
size-below: 300
'👕 size: L':
size-above: 299
size-below: 500
'👕 size: XL':
size-above: 499
size-below: 1000
'👕 size: XXL':
size-above: 999
# Components. Depens on the files that are changed.
'comp: FooBar':
files:
- 'bin/foobar/.*'
'comp: Readme':
files:
- 'README.md'
Add Otto-the-bot as "triage" to the target repository, make sure someone in the Web Chapter accepts the request. Otto's github token, shared as organization secret, also needs to be made available to the target repo.
For a complete description see https://github.com/marketplace/actions/jira-description
To add this action click on Actions
in the top bar of the target repository, scroll to Workflows created by Wire Swiss GmbH
and click Set up this workflow
.
For a complete description see https://github.com/marketplace/actions/semantic-pull-request
To add this action click on Actions
in the top bar of the target repository, scroll to Workflows created by Wire Swiss GmbH
and click Set up this workflow
.
This action automates the process of cherry-picking merged PRs from release/candidate
branch to TARGET_BRANCH
.
It is triggered whenever a pull request is merged into release/candidate
.
The action performs the following steps:
- Checkout the merged PR.
- If changes are made outside the specified submodule or no submodule is specified, the action proceeds.
- If a submodule name is provided in the
SUBMODULE_NAME
environment variable: a. The action creates a temporary branch. b. Updates the submodule to its latest version fromdevelop
. c. Commits the submodule updates. - Squashes the commit with the commit message of the merged PR (if a submodule was updated).
- Cherry-picks the squashed (or original if no squashing occurred) commit to a new branch based on
develop
. - If any conflicts arise during the cherry-pick, they are committed.
- The branch with the cherry-picked changes is pushed.
- A new pull request is created against
develop
with the cherry-picked changes.
Note: Ensure you add a "cherry-pick" label to your project. This label is required for the creation of cherry-picked PRs.
If needed, you can also set the TARGET_BRANCH
environment variable to specify a different target branch for the cherry-pick.
By default, it's set to develop
.