From 84fab72f234363b2c039bb208425763e83d0a1dc Mon Sep 17 00:00:00 2001 From: Stefan Lohmaier Date: Tue, 12 May 2026 00:33:33 -0700 Subject: [PATCH] =?UTF-8?q?ci:=20add=20release.yml=20=E2=80=94=20Gitea=20R?= =?UTF-8?q?elease=20auf=20Tag-Push=20v*=20mit=20Artefakten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yml | 131 +++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 .gitea/workflows/release.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..7bcbd9d --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,131 @@ +name: Release + +on: + push: + tags: + - 'v*' + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install build dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + build-essential gcc make cppcheck lcov \ + python3 python3-pip ca-certificates \ + jq curl + + - name: Tag from ref + run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + + - name: Build + Tests + Coverage + run: | + make test + make coverage + + - name: Traceability + Diagramme + run: | + python3 tools/traceability.py publish docs/traceability + python3 tools/render_plantuml.py + + - name: Cppcheck-Report (XML) + run: | + cppcheck --enable=all --inconclusive --xml --xml-version=2 \ + -I src src 2> build/cppcheck-report.xml || true + + - name: Release-Bundle paketieren + run: | + BUNDLE_DIR="release/demo-epb-${TAG}" + mkdir -p "$BUNDLE_DIR/coverage" "$BUNDLE_DIR/traceability" "$BUNDLE_DIR/diagrams" "$BUNDLE_DIR/reports" + + cp -r build/coverage-html/* "$BUNDLE_DIR/coverage/" 2>/dev/null || true + cp -r docs/traceability/* "$BUNDLE_DIR/traceability/" + cp -r docs/diagrams/* "$BUNDLE_DIR/diagrams/" + cp build/cppcheck-report.xml "$BUNDLE_DIR/reports/" 2>/dev/null || true + + # Source-Archiv (was eingecheckt ist) + git archive --format=tar.gz \ + --prefix="demo-epb-${TAG}/" \ + HEAD -o "release/demo-epb-${TAG}-source.tar.gz" + + # Artefakt-Archiv + tar -czf "release/demo-epb-${TAG}-artifacts.tar.gz" -C release "demo-epb-${TAG}" + + ls -la release/ + + - name: Release-Notes generieren + run: | + cat > release/RELEASE_NOTES.md <