diff --git a/.gitea/workflows/linux_arm64_docker.yaml b/.gitea/workflows/linux_arm64_docker.yaml index b096788..88c617c 100644 --- a/.gitea/workflows/linux_arm64_docker.yaml +++ b/.gitea/workflows/linux_arm64_docker.yaml @@ -4,7 +4,6 @@ on: push: branches: - main - - v0.1.0-beta jobs: build-docker-linux-arm64: @@ -27,43 +26,57 @@ jobs: echo "Repo: $REPO_LC" - name: Build version + shell: bash run: | - git fetch --force --tags - - LAST_TAG=$(git describe --tags --abbrev=0 --match "v*") - DISTANCE=$(git rev-list "${LAST_TAG}"..HEAD --count 2>/dev/null || echo "0") - + set -euo pipefail + + git fetch --force --tags origin + git fetch --force origin main + + LAST_TAG=$(git tag -l 'v*' --sort=-version:refname | head -n 1) + + if [[ -z "$LAST_TAG" ]]; then + LAST_TAG="v0.0.1-alpha" + DISTANCE=$(git rev-list --count origin/main) + else + DISTANCE=$(git rev-list "${LAST_TAG}..origin/main" --count) + fi + BASE_VERSION="${LAST_TAG#v}" - - # Pre-release-Suffix extrahieren (beta, alpha, etc.) + if [[ "$BASE_VERSION" == *-* ]]; then - PRE_RELEASE=$(echo "$BASE_VERSION" | sed 's/.*-/-/') - else - PRE_RELEASE="" - fi - - # Nightly-Version bauen - if [[ "$PRE_RELEASE" == "" ]]; then - # Stabiles Release: v0.1.0 → v0.1.0-nightly.10 - VERSION="${BASE_VERSION}-nightly.${DISTANCE}" - else - # Beta/Alpha: v0.1.0-beta → v0.1.0-beta.10 VERSION="${BASE_VERSION}.${DISTANCE}" + else + VERSION="${BASE_VERSION}-nightly.${DISTANCE}" fi - + + echo "LAST_TAG=$LAST_TAG" >> "$GITHUB_ENV" + echo "DISTANCE=$DISTANCE" >> "$GITHUB_ENV" echo "VERSION=$VERSION" >> "$GITHUB_ENV" - echo "ASSEMBLY_VERSION=${VERSION}.0" >> "$GITHUB_ENV" - echo "FILE_VERSION=${VERSION}.0" >> "$GITHUB_ENV" - + echo "Last tag: $LAST_TAG" - echo "Distance: $DISTANCE" - echo "Pre-release: $PRE_RELEASE" + echo "Distance to origin/main: $DISTANCE" echo "Final version: $VERSION" + - name: Set .NET version variables + shell: bash + run: | + set -euo pipefail + + SEMVER="${VERSION}" + BASE_NUMERIC=$(echo "$SEMVER" | sed -E 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/') + BUILD_NO=$(echo "$SEMVER" | grep -oE '[0-9]+$' || echo "0") + + echo "PACKAGE_VERSION=$SEMVER" >> "$GITHUB_ENV" + echo "ASSEMBLY_VERSION=${BASE_NUMERIC}.0" >> "$GITHUB_ENV" + echo "FILE_VERSION=${BASE_NUMERIC}.${BUILD_NO}" >> "$GITHUB_ENV" + echo "INFORMATIONAL_VERSION=$SEMVER" >> "$GITHUB_ENV" + - name: Build Linux ARM64 Docker Image run: | docker build \ -t gitea.penry.de/${{ env.REPO_LC }}:nightly \ + --build-arg VERSION=${{ env.PACKAGE_VERSION }} . - name: Login to own image registry