[core] Add Continuous Delivery and Release Workflow (#3)

Add a continuous delivery and release workflow. The continuous delivery
workflow is used to build the Docker image for FeedDeck and the release
workflow is used to generate the changelog.
This commit is contained in:
Rico Berger
2023-09-05 23:19:59 +02:00
committed by GitHub
parent f94d0cb847
commit d95f350a7e
3 changed files with 109 additions and 0 deletions

29
.github/release.yaml vendored Normal file
View File

@@ -0,0 +1,29 @@
name-template: "$RESOLVED_VERSION"
tag-template: "$RESOLVED_VERSION"
version-template: "v$MAJOR.$MINOR.$PATCH"
categories:
- title: "Added"
labels:
- "changelog: added"
- title: "Fixed"
labels:
- "changelog: fixed"
- title: "Changed"
labels:
- "changelog: changed"
version-resolver:
minor:
labels:
- "changelog: added"
- "changelog: changed"
patch:
labels:
- "changelog: fixed"
default: patch
category-template: "### $TITLE"
change-template: '- #$NUMBER: $TITLE @$AUTHOR'
template: |
$CHANGES
replacers:
- search: ':warning:'
replace: ':warning: _Breaking change:_ :warning:'

View File

@@ -0,0 +1,54 @@
name: Continuous Delivery
on:
push:
branches:
- main
tags:
- v*
jobs:
docker:
name: Docker
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set Docker Tag
id: tag
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
echo TAG=${GITHUB_REF:10} >> $GITHUB_ENV
else
echo TAG=main >> $GITHUB_ENV
fi
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: ghcr.io
- name: Build and Push Docker Image
id: docker_build
uses: docker/build-push-action@v4
with:
push: true
context: ./supabase/functions
file: ./supabase/functions/_cmd/Dockerfile
platforms: linux/amd64,linux/arm64/v8
tags: ghcr.io/${{ github.repository_owner }}/feeddeck:${{ env.TAG }}

26
.github/workflows/release.yaml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: Release
on:
push:
branches:
- main
permissions:
contents: read
jobs:
changelog:
name: Changelog
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Update Changelog
uses: release-drafter/release-drafter@v5
with:
config-name: release.yaml
disable-autolabeler: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}