Initial commit
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: fraujulian
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
polar: # Replace with a single Polar username
|
||||
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
||||
thanks_dev: # Replace with a single thanks dev username
|
||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
@@ -0,0 +1,42 @@
|
||||
name: 🐛 Bug Report
|
||||
description: Report a bug or unexpected behavior
|
||||
title: '🐛 [BUG]: '
|
||||
body:
|
||||
- type: textarea
|
||||
id: information
|
||||
attributes:
|
||||
label: Information
|
||||
description: Provide all information about the issue.
|
||||
placeholder: 'What happened? What did you expect to happen?'
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: steps
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: Step-by-step instructions to reproduce the issue.
|
||||
placeholder: |
|
||||
1. Go to ...
|
||||
2. Click on ...
|
||||
3. Observe ...
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: logos
|
||||
attributes:
|
||||
label: Logs or Error Messages
|
||||
description: Paste any relevant console output, stack traces, or screenshots.
|
||||
placeholder: 'Console output, stacktrace, or screenshots here'
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: input
|
||||
id: occurrence
|
||||
attributes:
|
||||
label: Occurrence Version
|
||||
description: Specify in which version the issue occurred
|
||||
placeholder: 'v0.1.TTMMJJ-hhmm'
|
||||
validations:
|
||||
required: true
|
||||
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: false
|
||||
@@ -0,0 +1,29 @@
|
||||
name: 💡 Enhancement
|
||||
description: Suggest a new feature or improvement
|
||||
title: '💡 [ENHANCEMENT]: '
|
||||
body:
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Describe the new feature or improvement!
|
||||
placeholder: 'What problem does it solve or what value does it add?'
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: proposal
|
||||
attributes:
|
||||
label: Proposed Solution
|
||||
placeholder: 'Describe how the feature should work.'
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: input
|
||||
id: implementation
|
||||
attributes:
|
||||
label: Implementation Version
|
||||
description: Specify in which version the enhancement should be released.
|
||||
placeholder: 'v0.1'
|
||||
validations:
|
||||
required: true
|
||||
@@ -0,0 +1,39 @@
|
||||
name: ⚙️ Improvement
|
||||
description: Suggest an improvement to existing functionality, code quality, or performance
|
||||
title: '⚙️ [Improvement]: '
|
||||
body:
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Current Situation / Context
|
||||
description: Describe the current behavior or implementation that could be improved.
|
||||
placeholder: 'Currently, the system loads all users at once, which slows down response time.'
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: proposal
|
||||
attributes:
|
||||
label: Proposed Improvement
|
||||
description: Describe your proposed change or improvement in detail.
|
||||
placeholder: 'Implement pagination for user loading to reduce memory usage and response time.'
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: benefits
|
||||
attributes:
|
||||
label: Expected Benefits
|
||||
description: Explain how this improvement will help (e.g., better performance, cleaner code, easier maintenance).
|
||||
placeholder: 'Faster load times, improved scalability, and reduced database load.'
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: input
|
||||
id: implementation
|
||||
attributes:
|
||||
label: Implementation Version
|
||||
description: Specify in which version the improvement should be released.
|
||||
placeholder: 'v0.1'
|
||||
validations:
|
||||
required: true
|
||||
@@ -0,0 +1,66 @@
|
||||
name: Build Docker Image - Dev
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
env:
|
||||
REGISTRY: docker.lechner-systems.at
|
||||
IMAGE_NAME: lechnersystems/maintenance
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Read version
|
||||
id: version
|
||||
shell: bash
|
||||
run: |
|
||||
version="$(tr -d '[:space:]' < VERSION)"
|
||||
|
||||
if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+([-.+][0-9A-Za-z.-]+)?$ ]]; then
|
||||
echo "Invalid VERSION value: $version" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker_tag="${version//+/-}"
|
||||
short_sha="${GITHUB_SHA::7}"
|
||||
|
||||
echo "value=$version" >> "$GITHUB_OUTPUT"
|
||||
echo "docker_tag=$docker_tag" >> "$GITHUB_OUTPUT"
|
||||
echo "dev_tag=${docker_tag}-dev.${short_sha}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
|
||||
|
||||
- name: Build and push dev image
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
provenance: false
|
||||
build-args: |
|
||||
APP_VERSION=${{ steps.version.outputs.value }}
|
||||
VCS_REF=${{ github.sha }}
|
||||
tags: |
|
||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev
|
||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.dev_tag }}
|
||||
labels: |
|
||||
org.opencontainers.image.version=${{ steps.version.outputs.value }}
|
||||
org.opencontainers.image.revision=${{ github.sha }}
|
||||
org.opencontainers.image.source=https://github.com/${{ github.repository }}
|
||||
@@ -0,0 +1,107 @@
|
||||
name: Build Docker Image - Latest
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_release:
|
||||
description: Create or update the GitHub release for this version
|
||||
required: true
|
||||
default: true
|
||||
type: boolean
|
||||
|
||||
env:
|
||||
REGISTRY: docker.lechner-systems.at
|
||||
IMAGE_NAME: lechnersystems/maintenance
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Read version
|
||||
id: version
|
||||
shell: bash
|
||||
run: |
|
||||
version="$(tr -d '[:space:]' < VERSION)"
|
||||
|
||||
if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+([-.+][0-9A-Za-z.-]+)?$ ]]; then
|
||||
echo "Invalid VERSION value: $version" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker_tag="${version//+/-}"
|
||||
|
||||
echo "value=$version" >> "$GITHUB_OUTPUT"
|
||||
echo "docker_tag=$docker_tag" >> "$GITHUB_OUTPUT"
|
||||
echo "release_tag=v$docker_tag" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
|
||||
|
||||
- name: Build and push latest image
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
provenance: false
|
||||
build-args: |
|
||||
APP_VERSION=${{ steps.version.outputs.value }}
|
||||
VCS_REF=${{ github.sha }}
|
||||
tags: |
|
||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.docker_tag }}
|
||||
labels: |
|
||||
org.opencontainers.image.version=${{ steps.version.outputs.value }}
|
||||
org.opencontainers.image.revision=${{ github.sha }}
|
||||
org.opencontainers.image.source=https://github.com/${{ github.repository }}
|
||||
|
||||
- name: Create GitHub release
|
||||
if: ${{ inputs.create_release }}
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RELEASE_TAG: ${{ steps.version.outputs.release_tag }}
|
||||
shell: bash
|
||||
run: |
|
||||
previous_tag="$(gh release list --exclude-drafts --exclude-pre-releases --limit 100 --json tagName --jq '.[].tagName' | grep -Fxv "$RELEASE_TAG" | head -n 1 || true)"
|
||||
|
||||
if [ -n "$previous_tag" ]; then
|
||||
commit_messages="$(git log --reverse --format='- %s' "${previous_tag}..${GITHUB_SHA}")"
|
||||
full_changelog="https://github.com/${{ github.repository }}/compare/${previous_tag}...${RELEASE_TAG}"
|
||||
else
|
||||
commit_messages="$(git log --reverse --format='- %s' "${GITHUB_SHA}")"
|
||||
full_changelog=""
|
||||
fi
|
||||
|
||||
if [ -z "$commit_messages" ]; then
|
||||
commit_messages="- No commits since the previous release"
|
||||
fi
|
||||
|
||||
{
|
||||
echo "## Changes"
|
||||
echo
|
||||
printf "%s\n" "$commit_messages"
|
||||
echo
|
||||
if [ -n "$full_changelog" ]; then
|
||||
echo "**Full Changelog**: ${full_changelog}"
|
||||
fi
|
||||
} > release-notes.md
|
||||
|
||||
if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then
|
||||
gh release edit "$RELEASE_TAG" --title "$RELEASE_TAG" --notes-file release-notes.md
|
||||
else
|
||||
gh release create "$RELEASE_TAG" --target "${GITHUB_SHA}" --title "$RELEASE_TAG" --notes-file release-notes.md
|
||||
fi
|
||||
Reference in New Issue
Block a user