feat: automatic releases (#165)

This uses:
    1) Renovate for managing the latest `thelounge` version.
    2) Release Please Action for automating creation of release PRs and
       releases (once the release PR is merged).
    3) Automerge Action for automatically merging PRs created by Release
       Please Action.
This commit is contained in:
William Boman 2023-05-31 01:57:56 +02:00 committed by GitHub
parent c01bd0b076
commit bec4974f55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 83 additions and 0 deletions

34
.github/workflows/automerge.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: automerge
on:
pull_request:
types:
- labeled
- unlabeled
- synchronize
- opened
- edited
- ready_for_review
- reopened
- unlocked
pull_request_review:
types:
- submitted
check_suite:
types:
- completed
status: {}
permissions:
contents: write
pull-requests: write
jobs:
automerge:
runs-on: ubuntu-latest
steps:
- id: automerge
name: automerge
uses: pascalgn/automerge-action@v0.15.6
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

25
.github/workflows/release-please.yml vendored Normal file
View file

@ -0,0 +1,25 @@
name: Release
on:
push:
branches:
- main
permissions:
contents: write
pull-requests: write
jobs:
release:
name: release
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
id: release
with:
release-type: simple
package-name: thelounge-docker
prerelease: true
include-v-in-tag: false
labels: |
automerge

24
renovate.json Normal file
View file

@ -0,0 +1,24 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"automerge": true,
"platformAutomerge": true,
"automergeType": "pr",
"commitBody": "Release-As: {{newVersion}}",
"enabledManagers": ["regex"],
"regexManagers": [
{
"fileMatch": ["Dockerfile", "Makefile"],
"matchStrings": [
"THELOUNGE_VERSION\\??=(?<currentValue>[^\\s]+)"
],
"datasourceTemplate": "npm",
"packageNameTemplate": "thelounge"
}
],
"packageRules": [
{
"matchPackageNames": ["thelounge"],
"allowedVersions": "\\d+\\.\\d+\\.\\d+.*"
}
]
}