From 55aa9f546a39e538645008cb7937b3a29d341974 Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 13:51:33 +0200 Subject: [PATCH 1/9] pipeline upgrade --- .gitea/workflows/build.yaml | 127 ++++++++++++++++++++++++ .gitea/workflows/development-build.yaml | 66 ------------ .gitea/workflows/release.yaml | 62 ------------ 3 files changed, 127 insertions(+), 128 deletions(-) create mode 100644 .gitea/workflows/build.yaml delete mode 100644 .gitea/workflows/development-build.yaml delete mode 100644 .gitea/workflows/release.yaml diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..b748f4b --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,127 @@ +name: Gitea CI/CD + +on: + workflow_dispatch: + push: + branches: [ "development", "main", "feature/*", "bugfix/*", "enhancement/*" ] + tags: [ "v*.*.*" ] + pull_request: + branches: [ "development", "main" ] + +env: + DOTNET_VERSION: '8.0.x' + DOCKER_IMAGE_NAME: 'watcher-server' + REGISTRY_URL: 'git.triggermeelmo.com/watcher' + DOCKER_PLATFORMS: 'linux/amd64,linux/arm64' + TAG: ${{ github.ref == 'refs/heads/main' && 'latest' || github.ref == 'refs/heads/development' && 'development' || github.ref_type == 'tag' && github.ref_name || 'pr' }} + +jobs: + build-and-test: + runs-on: ubuntu-latest + env: + RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v3 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + + - name: Restore dependencies + run: dotnet restore + + - name: Build + run: dotnet build --configuration Release --no-restore + + - name: Test + run: dotnet test --no-build --verbosity normal + continue-on-error: true + + - name: Publish + run: dotnet publish -c Release -o out + + set-tag: + name: Set Tag Name + runs-on: ubuntu-latest + outputs: + tag_name: ${{ steps.set_tag.outputs.tag_name }} + steps: + - name: Determine next semantic version tag + id: set_tag + run: | + git fetch --tags + + # Find latest tag matching vX.Y.Z + latest_tag=$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1) + if [[ -z "$latest_tag" ]]; then + major=0 + minor=0 + patch=0 + else + version="${latest_tag#v}" + IFS='.' read -r major minor patch <<< "$version" + fi + + if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + major=$((major + 1)) + minor=0 + patch=0 + elif [[ "${GITHUB_REF}" == "refs/heads/development" ]]; then + minor=$((minor + 1)) + patch=0 + else + patch=$((patch + 1)) + fi + + new_tag="v${major}.${minor}.${patch}" + echo "tag_name=${new_tag}" >> $GITHUB_OUTPUT + + docker-build-and-push: + runs-on: ubuntu-latest + env: + RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache + needs: build-and-test + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY_URL}} + username: ${{ secrets.AUTOMATION_USERNAME }} + password: ${{ secrets.AUTOMATION_PASSWORD }} + + - name: Build and Push Multi-Arch Docker Image + run: | + docker buildx build \ + --platform ${{ env.DOCKER_PLATFORMS }} \ + -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:${{ needs.set-tag.outputs.tag_name }} \ + --push . + + tag: + name: Create Tag for Gitea + needs: [docker-build-and-push, set-tag] + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Git user + run: | + git config user.name "GitHub Actions" + git config user.email "actions@github.com" + + - name: Create and push tag + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git tag ${{ needs.set-tag.outputs.tag_name }} + git push origin ${{ needs.set-tag.outputs.tag_name }} \ No newline at end of file diff --git a/.gitea/workflows/development-build.yaml b/.gitea/workflows/development-build.yaml deleted file mode 100644 index b3e7bac..0000000 --- a/.gitea/workflows/development-build.yaml +++ /dev/null @@ -1,66 +0,0 @@ -name: Development Build - -on: - push: - branches: - - development - -env: - DOTNET_VERSION: '8.0.x' - DOCKER_IMAGE_NAME: 'watcher-server' - REGISTRY_URL: 'git.triggermeelmo.com/watcher' - DOCKER_PLATFORMS: 'linux/amd64,linux/arm64' - -jobs: - build-and-test: - runs-on: ubuntu-latest - env: - RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v3 - with: - dotnet-version: ${{ env.DOTNET_VERSION }} - - - name: Restore dependencies - run: dotnet restore - - - name: Build - run: dotnet build --configuration Release --no-restore - - - name: Test - run: dotnet test --no-build --verbosity normal - continue-on-error: true - - - name: Publish - run: dotnet publish -c Release -o out - - docker-build-and-push: - runs-on: ubuntu-latest - env: - RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache - needs: build-and-test - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to Gitea Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY_URL}} - username: ${{ secrets.AUTOMATION_USERNAME }} - password: ${{ secrets.AUTOMATION_PASSWORD }} - - - name: Build and Push Multi-Arch Docker Image - run: | - docker buildx build \ - --platform ${{ env.DOCKER_PLATFORMS }} \ - -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:development \ - -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:${{ github.sha }} \ - --push . diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml deleted file mode 100644 index bf599b5..0000000 --- a/.gitea/workflows/release.yaml +++ /dev/null @@ -1,62 +0,0 @@ -name: Release Build and Release - -on: - push: - branches: - - main - -env: - DOTNET_VERSION: '8.0.x' - DOCKER_IMAGE_NAME: 'watcher-server' - REGISTRY_URL: 'git.triggermeelmo.com/watcher' - DOCKER_PLATFORMS: 'linux/amd64,linux/arm64' - -jobs: - build-and-test: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v3 - with: - dotnet-version: ${{ env.DOTNET_VERSION }} - - - name: Restore dependencies - run: dotnet restore - - - name: Build - run: dotnet build --configuration Release --no-restore - - - name: Test - run: dotnet test --no-build --verbosity normal - continue-on-error: true - - - name: Publish - run: dotnet publish -c Release -o out - - docker-build-and-push: - runs-on: ubuntu-latest - needs: build-and-test - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to Gitea Container Registry - uses: docker/login-action@v2 - with: - registry: git.triggermeelmo.com - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and Push Multi-Arch Docker Image - run: | - docker buildx build \ - --platform ${{ env.DOCKER_PLATFORMS }} \ - -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:v0.1.0 \ - -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:${{ github.sha }} \ - --push . From 120374ebe14f675c4e0eb4daf21ac76ec54aaae4 Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 13:57:15 +0200 Subject: [PATCH 2/9] url change --- .gitea/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index b748f4b..375b965 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -11,7 +11,7 @@ on: env: DOTNET_VERSION: '8.0.x' DOCKER_IMAGE_NAME: 'watcher-server' - REGISTRY_URL: 'git.triggermeelmo.com/watcher' + REGISTRY_URL: 'git.triggermeelmo.com' DOCKER_PLATFORMS: 'linux/amd64,linux/arm64' TAG: ${{ github.ref == 'refs/heads/main' && 'latest' || github.ref == 'refs/heads/development' && 'development' || github.ref_type == 'tag' && github.ref_name || 'pr' }} @@ -101,7 +101,7 @@ jobs: run: | docker buildx build \ --platform ${{ env.DOCKER_PLATFORMS }} \ - -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:${{ needs.set-tag.outputs.tag_name }} \ + -t ${{ env.REGISTRY_URL }}/watcher/${{ env.DOCKER_IMAGE_NAME }}:${{ needs.set-tag.outputs.tag_name }} \ --push . tag: From 8ffb220634b4d77d897c7577aeee1624c4cd6c12 Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 14:00:22 +0200 Subject: [PATCH 3/9] url changes --- .gitea/workflows/build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 375b965..ef1136e 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -10,8 +10,8 @@ on: env: DOTNET_VERSION: '8.0.x' - DOCKER_IMAGE_NAME: 'watcher-server' - REGISTRY_URL: 'git.triggermeelmo.com' + DOCKER_IMAGE_NAME: watcher-server + REGISTRY_URL: git.triggermeelmo.com DOCKER_PLATFORMS: 'linux/amd64,linux/arm64' TAG: ${{ github.ref == 'refs/heads/main' && 'latest' || github.ref == 'refs/heads/development' && 'development' || github.ref_type == 'tag' && github.ref_name || 'pr' }} @@ -82,7 +82,7 @@ jobs: runs-on: ubuntu-latest env: RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache - needs: build-and-test + needs: [build-and-test, set-tag] steps: - name: Checkout code uses: actions/checkout@v3 @@ -106,7 +106,7 @@ jobs: tag: name: Create Tag for Gitea - needs: [docker-build-and-push, set-tag] + needs: [docker-build-and-push] if: github.ref == 'refs/heads/main' && github.event_name == 'push' runs-on: ubuntu-latest steps: From 284175287006db65cd11c600173c717ada55ba53 Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 14:02:33 +0200 Subject: [PATCH 4/9] chatgpt fix --- .gitea/workflows/build.yaml | 67 ++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index ef1136e..8e73e09 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -43,40 +43,45 @@ jobs: run: dotnet publish -c Release -o out set-tag: - name: Set Tag Name - runs-on: ubuntu-latest - outputs: - tag_name: ${{ steps.set_tag.outputs.tag_name }} - steps: - - name: Determine next semantic version tag - id: set_tag - run: | - git fetch --tags + name: Set Tag Name + runs-on: ubuntu-latest + outputs: + tag_name: ${{ steps.set_tag.outputs.tag_name }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # important: get full history and tags - # Find latest tag matching vX.Y.Z - latest_tag=$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1) - if [[ -z "$latest_tag" ]]; then - major=0 - minor=0 - patch=0 - else - version="${latest_tag#v}" - IFS='.' read -r major minor patch <<< "$version" - fi + - name: Determine next semantic version tag + id: set_tag + run: | + git fetch --tags - if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then - major=$((major + 1)) - minor=0 - patch=0 - elif [[ "${GITHUB_REF}" == "refs/heads/development" ]]; then - minor=$((minor + 1)) - patch=0 - else - patch=$((patch + 1)) - fi + # Find latest tag matching vX.Y.Z + latest_tag=$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1) + if [[ -z "$latest_tag" ]]; then + major=0 + minor=0 + patch=0 + else + version="${latest_tag#v}" + IFS='.' read -r major minor patch <<< "$version" + fi - new_tag="v${major}.${minor}.${patch}" - echo "tag_name=${new_tag}" >> $GITHUB_OUTPUT + if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + major=$((major + 1)) + minor=0 + patch=0 + elif [[ "${GITHUB_REF}" == "refs/heads/development" ]]; then + minor=$((minor + 1)) + patch=0 + else + patch=$((patch + 1)) + fi + + new_tag="v${major}.${minor}.${patch}" + echo "tag_name=${new_tag}" >> $GITHUB_OUTPUT docker-build-and-push: runs-on: ubuntu-latest From 015cdcb2025de842777c9118f1e09389262713ff Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 14:03:24 +0200 Subject: [PATCH 5/9] syntax error fix --- .gitea/workflows/build.yaml | 70 ++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 8e73e09..cb3992c 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -43,45 +43,45 @@ jobs: run: dotnet publish -c Release -o out set-tag: - name: Set Tag Name - runs-on: ubuntu-latest - outputs: - tag_name: ${{ steps.set_tag.outputs.tag_name }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 # important: get full history and tags + name: Set Tag Name + runs-on: ubuntu-latest + outputs: + tag_name: ${{ steps.set_tag.outputs.tag_name }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # important: get full history and tags - - name: Determine next semantic version tag - id: set_tag - run: | - git fetch --tags + - name: Determine next semantic version tag + id: set_tag + run: | + git fetch --tags - # Find latest tag matching vX.Y.Z - latest_tag=$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1) - if [[ -z "$latest_tag" ]]; then - major=0 - minor=0 - patch=0 - else - version="${latest_tag#v}" - IFS='.' read -r major minor patch <<< "$version" - fi + # Find latest tag matching vX.Y.Z + latest_tag=$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1) + if [[ -z "$latest_tag" ]]; then + major=0 + minor=0 + patch=0 + else + version="${latest_tag#v}" + IFS='.' read -r major minor patch <<< "$version" + fi - if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then - major=$((major + 1)) - minor=0 - patch=0 - elif [[ "${GITHUB_REF}" == "refs/heads/development" ]]; then - minor=$((minor + 1)) - patch=0 - else - patch=$((patch + 1)) - fi + if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + major=$((major + 1)) + minor=0 + patch=0 + elif [[ "${GITHUB_REF}" == "refs/heads/development" ]]; then + minor=$((minor + 1)) + patch=0 + else + patch=$((patch + 1)) + fi - new_tag="v${major}.${minor}.${patch}" - echo "tag_name=${new_tag}" >> $GITHUB_OUTPUT + new_tag="v${major}.${minor}.${patch}" + echo "tag_name=${new_tag}" >> $GITHUB_OUTPUT docker-build-and-push: runs-on: ubuntu-latest From 8e0dcc34e75c8723e66fa82a936714ad20edc4fe Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 14:15:08 +0200 Subject: [PATCH 6/9] tag on every branch --- .gitea/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index cb3992c..013aa71 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -112,7 +112,7 @@ jobs: tag: name: Create Tag for Gitea needs: [docker-build-and-push] - if: github.ref == 'refs/heads/main' && github.event_name == 'push' + #if: github.ref == 'refs/heads/main' && github.event_name == 'push' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From db4587290800e76905b9a82865483a9d35341825 Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 14:26:21 +0200 Subject: [PATCH 7/9] test --- .gitea/workflows/build.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 013aa71..7bad377 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -22,7 +22,7 @@ jobs: RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup .NET SDK uses: actions/setup-dotnet@v3 @@ -45,13 +45,12 @@ jobs: set-tag: name: Set Tag Name runs-on: ubuntu-latest + env: + RUNNER_TOOL_CACHE: /toolcache outputs: tag_name: ${{ steps.set_tag.outputs.tag_name }} steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 # important: get full history and tags + - uses: actions/checkout@v4 - name: Determine next semantic version tag id: set_tag @@ -90,7 +89,7 @@ jobs: needs: [build-and-test, set-tag] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v2 @@ -110,10 +109,11 @@ jobs: --push . tag: - name: Create Tag for Gitea - needs: [docker-build-and-push] - #if: github.ref == 'refs/heads/main' && github.event_name == 'push' + name: Create Tag + needs: [docker-build, build, set-tag] runs-on: ubuntu-latest + env: + RUNNER_TOOL_CACHE: /toolcache steps: - uses: actions/checkout@v4 with: From b3b97d4c09dc3a3ff91f9dd940fc387ac427ea4c Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 14:29:02 +0200 Subject: [PATCH 8/9] tag erst wenn push fertig --- .gitea/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 7bad377..08f9364 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -110,7 +110,7 @@ jobs: tag: name: Create Tag - needs: [docker-build, build, set-tag] + needs: [docker-build-and-push] runs-on: ubuntu-latest env: RUNNER_TOOL_CACHE: /toolcache From d68022d831c2c50f9be390856f9d191ca1d2fa25 Mon Sep 17 00:00:00 2001 From: daniel-hbn Date: Fri, 3 Oct 2025 14:48:50 +0200 Subject: [PATCH 9/9] =?UTF-8?q?staging=20branch=20eingef=C3=BChrt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 08f9364..1604ead 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -3,10 +3,10 @@ name: Gitea CI/CD on: workflow_dispatch: push: - branches: [ "development", "main", "feature/*", "bugfix/*", "enhancement/*" ] + branches: [ "development", "main", "staging"] tags: [ "v*.*.*" ] pull_request: - branches: [ "development", "main" ] + branches: [ "development", "main", "staging" ] env: DOTNET_VERSION: '8.0.x'