Files
Materialschein/.gitea/workflows/build.yml
T
dominicandClaude Opus 5.5 f978533d9a docs: point deploy-standard references to PROX/prox-ops [skip ci]
PROX/deploy-standard moved into PROX/prox-ops/deploy-standard (same
content, history kept). Comments/docs only, no functional change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 11:30:30 +01:00

81 lines
2.7 KiB
YAML

name: Build and Deploy
# Standard-Workflow git.prox.ws → Portainer (siehe PROX/prox-ops/deploy-standard README).
# owner = bergvolt (Package-Namespace == Repo-Owner, lowercase für OCI), name = materialschein.
#
# Versionierung: VERSION = <gitops/version : major.minor>.<git rev-list --count HEAD>.
# Ein version-Job berechnet sie, build + deploy konsumieren sie über
# needs.version.outputs.version. Der deploy-Job pinnt gitops/stack.yml per
# Commit-back auf :<VERSION> — nie floating :latest.
on:
push:
branches:
- main
workflow_dispatch:
jobs:
version:
runs-on: linux
outputs:
version: ${{ steps.v.outputs.VERSION }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: v
run: |
BASE=$(cat gitops/version | tr -d '[:space:]')
PATCH=$(git rev-list --count HEAD)
echo "VERSION=${BASE}.${PATCH}" >> "$GITHUB_OUTPUT"
echo "version ${BASE}.${PATCH}"
build:
runs-on: linux
needs: version
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Login to Gitea Registry
run: |
echo "${{ secrets.GITEAPASSWORD }}" | docker login -u ${{ secrets.GITEAUSER }} --password-stdin https://git.prox.ws
- name: Build and Push
run: |
V=${{ needs.version.outputs.version }}
docker build \
-t git.prox.ws/bergvolt/materialschein:$V \
-t git.prox.ws/bergvolt/materialschein:latest \
.
docker push git.prox.ws/bergvolt/materialschein:$V
docker push git.prox.ws/bergvolt/materialschein:latest
deploy:
runs-on: linux
needs: [version, build]
steps:
- name: Checkout main (mit Push-Recht)
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
token: ${{ secrets.GITEA_TOKEN }}
- name: Pin stack to version + commit-back
run: |
V=${{ needs.version.outputs.version }}
sed -i -E "s#(image: git\.prox\.ws/[^:[:space:]]+):[^[:space:]]+#\1:$V#" gitops/stack.yml
if git diff --quiet gitops/stack.yml; then
echo "stack.yml schon auf $V, kein Commit-back"
else
git config user.name "gitea-actions"
git config user.email "actions@git.prox.ws"
git commit -am "deploy: v$V [skip ci]"
git push
fi
- name: Trigger Portainer Stack Redeploy
run: |
test -n "${{ secrets.PORTAINER_WEBHOOK_URL }}" || { echo "secret PORTAINER_WEBHOOK_URL is not set"; exit 1; }
curl -fsSk --retry 3 --retry-delay 5 -X POST "${{ secrets.PORTAINER_WEBHOOK_URL }}"