44 Commits
1.1 ... v1.1.0

Author SHA1 Message Date
4caea581f0 release: 1.1.0
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 13s
2026-02-10 11:27:35 +01:00
5e716e2635 fix indentation
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 20s
2026-02-10 11:25:08 +01:00
24db920e7d remove signing in workflow 2026-02-10 11:23:33 +01:00
c61da8358f release: 1.1.0
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 24s
2026-02-10 02:37:52 +01:00
87c53f01a7 neuer fix
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 24s
2026-02-10 02:35:26 +01:00
0c710599c6 fix signature-tags
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 21s
2026-02-10 02:31:55 +01:00
6c05d551de release: 1.2.0
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 27s
2026-02-10 00:33:50 +01:00
9cf3393cd2 fix signature-tags
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 27s
2026-02-10 00:32:38 +01:00
4f15a436ba release: 1.1.0
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 27s
2026-02-10 00:26:41 +01:00
1bd63af802 fix
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 27s
2026-02-10 00:25:15 +01:00
4b5b07a93b fix
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-10 00:23:17 +01:00
86af7cffd2 fix cosign
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-10 00:21:12 +01:00
79fdb93305 new cosign fix
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 25s
2026-02-10 00:19:03 +01:00
9ad38d941b fix cosign
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-10 00:16:17 +01:00
907063577e cosign experimental=1
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 24s
2026-02-10 00:02:56 +01:00
18d29e6836 fix cosign sha256-tags
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 27s
2026-02-10 00:00:05 +01:00
7bce234b28 release: 1.1.0
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 28s
2026-02-09 23:50:39 +01:00
51349ef93e fix sign error
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-09 23:46:52 +01:00
62130d6e57 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 22s
2026-02-09 23:40:01 +01:00
dbaf5580a3 fix cosign failure
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 24s
2026-02-09 23:39:02 +01:00
1058b03863 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-09 21:44:31 +01:00
8b6b167113 fix sign key
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 23s
2026-02-09 21:43:56 +01:00
13d5fc7785 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-09 21:40:54 +01:00
8e07fd6b49 fix cosign key
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Has been cancelled
2026-02-09 21:40:29 +01:00
76ff81d716 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Has been cancelled
2026-02-09 21:21:06 +01:00
3dd74cdda9 fix sign step
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 23s
2026-02-09 21:19:52 +01:00
86e7bb52e3 fix again
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-09 21:15:09 +01:00
7017f32002 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 25s
2026-02-09 21:09:11 +01:00
156199f751 fix signing step
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 23s
2026-02-09 21:08:32 +01:00
292e79392c release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 24s
2026-02-09 21:04:05 +01:00
1dd1efe33d fix signing
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 23s
2026-02-09 21:03:00 +01:00
c60cb41bd8 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-09 20:58:01 +01:00
9c56e08f28 fix signing
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 23s
2026-02-09 20:57:19 +01:00
6c44d0cc13 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-09 20:55:16 +01:00
8f8d6b1623 fix sign-step
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 24s
2026-02-09 20:54:15 +01:00
1b1e1f86cf release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 24s
2026-02-09 20:49:30 +01:00
27ddfa3896 fix sign-step for version-tags
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 25s
2026-02-09 20:47:23 +01:00
6511522dcf release: 1.3.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 23s
2026-02-09 20:36:43 +01:00
dbe934a3bc fix SBOM
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 23s
2026-02-09 20:35:06 +01:00
65fc306b70 siplify workflow
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 21s
2026-02-09 20:31:42 +01:00
e8db2ec834 release: 1.1.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 28s
Promote Edge To Release / promote (push) Failing after 1s
2026-02-09 20:07:38 +01:00
7bc6c7ed6c fix release.sh
All checks were successful
Docker Build Smart Logic / Build amd64 & arm64 (push) Successful in 25s
2026-02-09 19:53:35 +01:00
34c167a4cd release: 1.2.0
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Failing after 26s
Promote Edge To Release / promote (push) Failing after 1s
2026-02-09 19:49:45 +01:00
a2032e1f46 rebuild release.sh
Some checks failed
Docker Build Smart Logic / Build amd64 & arm64 (push) Has been cancelled
2026-02-09 19:49:34 +01:00
5 changed files with 415 additions and 170 deletions

View File

@@ -64,21 +64,30 @@ jobs:
fi
- name: Detect version
id: detect_version
run: |
echo "== Detect version =="
# Prüfen, ob wir auf einem Tag oder main-Branch sind
if [ "$GITHUB_REF_TYPE" = "tag" ]; then
VERSION="$GITHUB_REF_NAME"
CLEAN_VERSION="${VERSION#v}"
CLEAN_VERSION="${VERSION#v}" # entfernt führendes 'v'
IS_TAG=true
else
VERSION="edge"
CLEAN_VERSION="edge"
VERSION="main"
CLEAN_VERSION="main"
IS_TAG=false
fi
echo "VERSION=$VERSION"
echo "CLEAN_VERSION=$CLEAN_VERSION"
echo "IS_TAG=$IS_TAG"
# Env für alle weiteren Steps exportieren
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "CLEAN_VERSION=$CLEAN_VERSION" >> $GITHUB_ENV
echo "IS_TAG=$IS_TAG" >> $GITHUB_ENV
- name: Set dynamic variables and check Dockerfiles
id: check_files
run: |
@@ -120,20 +129,13 @@ jobs:
- name: Compute Docker tags
run: |
TAGS="${IMAGE_NAME}:${VERSION}"
if [[ "$IS_TAG" == "true" ]]; then
MAJOR=$(echo $CLEAN_VERSION | cut -d. -f1)
MINOR=$(echo $CLEAN_VERSION | cut -d. -f1,2)
TAGS="$TAGS,${IMAGE_NAME}:${MINOR}"
TAGS="$TAGS,${IMAGE_NAME}:${MAJOR}"
TAGS="$TAGS,${IMAGE_NAME}:latest"
DOCKER_TAGS="${IMAGE_NAME}:${VERSION},${IMAGE_NAME}:latest"
else
TAGS="$TAGS,${IMAGE_NAME}:main"
DOCKER_TAGS="${IMAGE_NAME}:main"
fi
echo "DOCKER_TAGS=$TAGS" >> $GITEA_ENV
echo "DOCKER_TAGS=$DOCKER_TAGS" >> $GITEA_ENV
- name: Load versions.env safely
shell: bash
@@ -153,7 +155,6 @@ jobs:
parse_env
# Fixen von Workflow-Variablen
VERSION="$GITHUB_REF_NAME"
CLEAN_VERSION="${VERSION#v}"
BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
@@ -186,7 +187,10 @@ jobs:
exit 1
fi
# amd64 build
# Cache-Definitionen für bessere Übersicht
CACHE_REF="${REGISTRY_HOST}/${IMAGE_BASE}-cache"
# amd64 build mit Registry-Cache (mode=min für weniger Fragmente)
docker buildx build \
--platform linux/amd64 \
-f ${AMD64_DOCKERFILE} \
@@ -194,10 +198,12 @@ jobs:
--build-arg APP_VERSION="$APP_VERSION" \
--label org.opencontainers.image.version="$APP_VERSION" \
--label org.opencontainers.image.created="$BUILD_DATE" \
--cache-from type=registry,ref=${CACHE_REF}:amd64 \
--cache-to type=registry,ref=${CACHE_REF}:amd64,mode=min \
-t ${CACHE_IMAGE_NAME}:${VERSION}-amd64 \
--push .
# arm64 build
# arm64 build mit Registry-Cache (mode=min für weniger Fragmente)
docker buildx build \
--platform linux/arm64 \
-f ${ARM64_DOCKERFILE} \
@@ -205,13 +211,18 @@ jobs:
--build-arg APP_VERSION="$APP_VERSION" \
--label org.opencontainers.image.version="$APP_VERSION" \
--label org.opencontainers.image.created="$BUILD_DATE" \
--cache-from type=registry,ref=${CACHE_REF}:arm64 \
--cache-to type=registry,ref=${CACHE_REF}:arm64,mode=min \
-t ${CACHE_IMAGE_NAME}:${VERSION}-arm64 \
--push .
docker buildx imagetools create \
-t ${IMAGE_NAME}:${VERSION} \
${CACHE_IMAGE_NAME}:${VERSION}-amd64 \
${CACHE_IMAGE_NAME}:${VERSION}-arm64
# Manifest-Erstellung (verbindet die Architekturen zu den finalen Tags)
for TAG in $(echo $DOCKER_TAGS | tr ',' ' '); do
echo "Creating manifest for tag: $TAG"
docker buildx imagetools create -t $TAG \
${CACHE_IMAGE_NAME}:${VERSION}-amd64 \
${CACHE_IMAGE_NAME}:${VERSION}-arm64
done
echo "== Multiarch Build Complete =="
@@ -224,23 +235,18 @@ jobs:
- name: Generate SBOM
run: |
syft ${IMAGE_NAME}:${VERSION} -o spdx-json > sbom.spdx.json
# Benutze die Build-Variable DOCKER_TAGS oder IMAGE_NAME + VERSION
if [[ "$IS_TAG" == "true" ]]; then
TARGET_IMAGE="${IMAGE_NAME}:${VERSION}"
else
TARGET_IMAGE="${IMAGE_NAME}:main"
fi
echo "Generating SBOM for $TARGET_IMAGE"
syft $TARGET_IMAGE -o spdx-json > sbom.spdx.json || true
- name: Upload SBOM
uses: actions/upload-artifact@v3
with:
name: sbom
path: sbom.spdx.json
- name: Install cosign
run: |
curl -sSfL https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64 \
-o /usr/local/bin/cosign
chmod +x /usr/local/bin/cosign
- name: Sign image
if: env.IS_TAG == 'true'
run: |
cosign sign --key ${{ secrets.COSIGN_KEY }} ${IMAGE_NAME}:${VERSION}
path: sbom.spdx.json

View File

@@ -1,35 +0,0 @@
name: Promote Edge To Release
on:
push:
tags:
- 'v*'
env:
REGISTRY_HOST: git.pi-farm.de
IMAGE_BASE: ${{ gitea.repository }}
jobs:
promote:
runs-on: buildx-multiarch
steps:
- name: Extract version
run: |
VERSION="${GITHUB_REF_NAME#v}"
echo "VERSION=$VERSION" >> $GITEA_ENV
echo "IMAGE=${REGISTRY_HOST}/${IMAGE_BASE}" >> $GITEA_ENV
- name: Login registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login \
${{ env.REGISTRY_HOST }} -u ${{ secrets.REGISTRY_USER }} --password-stdin
- name: Promote edge image
run: |
docker buildx imagetools create \
-t ${IMAGE}:v${VERSION} \
-t ${IMAGE}:${VERSION%.*} \
-t ${IMAGE}:${VERSION%%.*} \
-t ${IMAGE}:latest \
${IMAGE}:edge

View File

@@ -0,0 +1,333 @@
## 1.1.0 - 2026-02-10
- fix indentation
- remove signing in workflow
- release: 1.1.0
- neuer fix
- fix signature-tags
- release: 1.2.0
- fix signature-tags
- release: 1.1.0
- fix
- fix
- fix cosign
- new cosign fix
- fix cosign
- cosign experimental=1
- fix cosign sha256-tags
- release: 1.1.0
- fix sign error
- release: 1.1.0
- fix cosign failure
- release: 1.1.0
- fix sign key
- release: 1.1.0
- fix cosign key
- release: 1.1.0
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
- make release.sh executable
- remove Dockerfile.aarch64
- fix signing
- fix SBOM
- reorder Dockerfile
- add multi-watch.sh
- another fix
- rebuild workflow
- new fix
- fix workflow
- fix workflow
- fix workflow
- set shell to bash in workflow
- changed workflow for use build-args from versions.env in buildx builder
- changed relevant files for project test2
- docs: fix template placeholders [skip ci]
- versions.env aktualisiert
- Initial commit
## 1.1.0 - 2026-02-10
- neuer fix
- fix signature-tags
- release: 1.2.0
- fix signature-tags
- release: 1.1.0
- fix
- fix
- fix cosign
- new cosign fix
- fix cosign
- cosign experimental=1
- fix cosign sha256-tags
- release: 1.1.0
- fix sign error
- release: 1.1.0
- fix cosign failure
- release: 1.1.0
- fix sign key
- release: 1.1.0
- fix cosign key
- release: 1.1.0
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.2.0 - 2026-02-10
- fix signature-tags
## 1.1.0 - 2026-02-10
- fix
- fix
- fix cosign
- new cosign fix
- fix cosign
- cosign experimental=1
- fix cosign sha256-tags
- release: 1.1.0
- fix sign error
- release: 1.1.0
- fix cosign failure
- release: 1.1.0
- fix sign key
- release: 1.1.0
- fix cosign key
- release: 1.1.0
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix sign error
- release: 1.1.0
- fix cosign failure
- release: 1.1.0
- fix sign key
- release: 1.1.0
- fix cosign key
- release: 1.1.0
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix cosign failure
- release: 1.1.0
- fix sign key
- release: 1.1.0
- fix cosign key
- release: 1.1.0
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix sign key
- release: 1.1.0
- fix cosign key
- release: 1.1.0
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix cosign key
- release: 1.1.0
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix sign step
- fix again
- release: 1.1.0
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix signing step
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix signing
- release: 1.1.0
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix signing
- release: 1.1.0
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix sign-step
- release: 1.1.0
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.1.0 - 2026-02-09
- fix sign-step for version-tags
- release: 1.3.0
- fix SBOM
- siplify workflow
- release: 1.1.0
- fix release.sh
- release: 1.2.0
- rebuild release.sh
## 1.3.0 - 2026-02-09
- fix SBOM
- siplify workflow
## 1.1.0 - 2026-02-09
- fix release.sh
## 1.2.0 - 2026-02-09
- rebuild release.sh

View File

@@ -4,143 +4,84 @@ set -e
VERSION="$1"
if [ -z "$VERSION" ]; then
echo "Usage: ./release.sh <semver>"
echo "Example: ./release.sh 1.4.0"
exit 1
echo "Usage: ./release.sh <semver>"
exit 1
fi
# -----------------------------
# SemVer validation
# -----------------------------
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Version must be SemVer: X.Y.Z"
exit 1
if ! [[ "$VERSION" =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]; then
echo "Version must be SemVer: X.Y.Z"
exit 1
fi
TAG="v$VERSION"
echo "=== Release $TAG ==="
# -----------------------------
# Branch check
# -----------------------------
sedi() {
if sed --version >/dev/null 2>&1; then
sed -i "$@"
else
sed -i '' "$@"
fi
}
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$BRANCH" != "main" ]; then
echo "Not on main branch"
exit 1
fi
[ "$BRANCH" = "main" ] || { echo "Not on main"; exit 1; }
# -----------------------------
# Working tree clean?
# -----------------------------
if ! git diff --quiet; then
echo "Working tree not clean — commit first"
exit 1
fi
git diff --quiet || { echo "Working tree not clean"; exit 1; }
# -----------------------------
# Sync with remote
# -----------------------------
git fetch origin
LOCAL=$(git rev-parse main)
REMOTE=$(git rev-parse origin/main)
if [ "$LOCAL" != "$REMOTE" ]; then
echo "Local main not in sync with origin/main"
exit 1
fi
[ "$LOCAL" = "$REMOTE" ] || { echo "main not in sync"; exit 1; }
# -----------------------------
# Tag already exists?
# -----------------------------
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "Tag already exists locally"
exit 1
fi
git rev-parse "$TAG" >/dev/null 2>&1 && { echo "Tag exists locally"; exit 1; }
git ls-remote --tags origin | grep -q "refs/tags/$TAG" && { echo "Tag exists remote"; exit 1; }
if git ls-remote --tags origin | grep -q "$TAG"; then
echo "Tag already exists on remote"
exit 1
fi
[ -f versions.env ] || { echo "versions.env missing"; exit 1; }
# -----------------------------
# Update versions.env
# -----------------------------
echo "Updating versions.env"
if grep -q "^APP_VERSION=" versions.env; then
sed -i "s/^APP_VERSION=.*/APP_VERSION=${VERSION}/" versions.env
sedi "s/^APP_VERSION=.*/APP_VERSION=$VERSION/" versions.env
else
echo "APP_VERSION=${VERSION}" >> versions.env
echo "APP_VERSION=$VERSION" >> versions.env
fi
# -----------------------------
# Optional changelog entry
# -----------------------------
if [ -f CHANGELOG.md ]; then
echo "Updating CHANGELOG.md"
DATE=$(date +%Y-%m-%d)
sed -i "1i ## $VERSION - $DATE\n- release\n" CHANGELOG.md
git add CHANGELOG.md
fi
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
echo "Updating CHANGELOG.md"
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || true)
if [ -n "$LAST_TAG" ]; then
echo "Generating release notes from $LAST_TAG → HEAD"
git log $LAST_TAG..HEAD --pretty=format:"- %s" > RELEASE_NOTES.tmp
git log $LAST_TAG..HEAD --pretty=format:"- %s" > NOTES.tmp
else
git log --pretty=format:"- %s" > RELEASE_NOTES.tmp
git log --pretty=format:"- %s" > NOTES.tmp
fi
echo -e "\n## $VERSION\n" | cat - RELEASE_NOTES.tmp >> CHANGELOG.md
rm RELEASE_NOTES.tmp
DATE=$(date +%Y-%m-%d)
{
echo "## $VERSION - $DATE"
cat NOTES.tmp
echo
cat CHANGELOG.md
} > CHANGELOG.new
mv CHANGELOG.new CHANGELOG.md
rm NOTES.tmp
git add CHANGELOG.md
fi
# -----------------------------
# Commit version bump
# -----------------------------
git add versions.env
git commit -m "release: $VERSION"
# -----------------------------
# Push main → triggers edge build
# -----------------------------
git push origin main
echo "Main pushed → edge build"
echo "Main pushed — edge build will run"
# -----------------------------
# Create annotated tag
# -----------------------------
git tag -a "$TAG" -m "Release $TAG"
# -----------------------------
# Push tag → triggers release build
# -----------------------------
git push origin "$TAG"
echo "Tag pushed release build triggered"
# -----------------------------
# Optional: wait for CI success
# -----------------------------
if [ -n "$GITEA_TOKEN" ]; then
echo "Checking CI status..."
REPO=$(git config --get remote.origin.url | sed 's#.*/##; s/.git$//')
OWNER=$(git config --get remote.origin.url | awk -F'[:/]' '{print $(NF-1)}')
for i in {1..30}; do
STATUS=$(curl -s \
-H "Authorization: token $GITEA_TOKEN" \
"https://git.pi-farm.de/api/v1/repos/$OWNER/$REPO/actions/runs?event=push" \
| jq -r '.workflow_runs[0].status')
echo "CI status: $STATUS"
[ "$STATUS" = "success" ] && break
sleep 5
done
fi
echo "Tag pushed release build"
echo "=== Release complete ==="

View File

@@ -1,5 +1,5 @@
APP_NAME=test2
APP_VERSION=3.22
APP_VERSION=1.1.0
APP_DESCRIPTION=Watchdog for notify on updates on dockerhub, github and other git-sources
BASE_IMAGE=alpine:3.22