From e9ae2eccb588ccf85ea50ff5a69268756146456a Mon Sep 17 00:00:00 2001 From: jbergner Date: Wed, 26 Aug 2026 19:18:56 +0200 Subject: [PATCH] Neuer Workflow --- .gitea/workflows/release-tag-gitea.yml | 116 +++++++++++++++ .gitea/workflows/release-tag.yml | 197 ------------------------- 2 files changed, 116 insertions(+), 197 deletions(-) create mode 100644 .gitea/workflows/release-tag-gitea.yml delete mode 100644 .gitea/workflows/release-tag.yml diff --git a/.gitea/workflows/release-tag-gitea.yml b/.gitea/workflows/release-tag-gitea.yml new file mode 100644 index 0000000..668bef1 --- /dev/null +++ b/.gitea/workflows/release-tag-gitea.yml @@ -0,0 +1,116 @@ +name: release-tag +on: + push: + branches: + - 'main' + +jobs: + release-image: + runs-on: ubuntu-latest + env: + DOCKER_ORG: sendnrw + DOCKER_LATEST: latest + RUNNER_TOOL_CACHE: /toolcache + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v2 + with: + config-inline: | + [registry."git.send.nrw"] + http = true + insecure = true + + - name: Login to Registry + uses: docker/login-action@v2 + with: + registry: git.send.nrw + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get Meta + id: meta + run: | + echo REPO_VERSION=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT + + - name: Build and push NeuroForge + uses: docker/build-push-action@v4 + with: + context: ./platform/neuroforge + file: ./platform/neuroforge/Dockerfile + target: server + platforms: | + linux/amd64 + push: true + tags: | + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-neuroforge:${{ steps.meta.outputs.REPO_VERSION }} + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-neuroforge:${{ env.DOCKER_LATEST }} + + - name: Build and push NeuroForge Worker + uses: docker/build-push-action@v4 + with: + context: ./platform/neuroforge + file: ./platform/neuroforge/Dockerfile + target: worker + platforms: | + linux/amd64 + push: true + tags: | + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-neuroforge-worker:${{ steps.meta.outputs.REPO_VERSION }} + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-neuroforge-worker:${{ env.DOCKER_LATEST }} + + - name: Build and push Agent + uses: docker/build-push-action@v4 + with: + context: ./services/agent + file: ./services/agent/Dockerfile + platforms: | + linux/amd64 + push: true + tags: | + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-agent:${{ steps.meta.outputs.REPO_VERSION }} + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-agent:${{ env.DOCKER_LATEST }} + + - name: Build and push Agent Data Init + uses: docker/build-push-action@v4 + with: + context: ./services/agent + file: ./services/agent/Dockerfile + target: data-init + platforms: | + linux/amd64 + push: true + tags: | + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-agent-data-init:${{ steps.meta.outputs.REPO_VERSION }} + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-agent-data-init:${{ env.DOCKER_LATEST }} + + - name: Build and push Knowledgebase + uses: docker/build-push-action@v4 + with: + context: ./services/knowledge + file: ./services/knowledge/Dockerfile + platforms: | + linux/amd64 + push: true + tags: | + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-knowledge:${{ steps.meta.outputs.REPO_VERSION }} + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-knowledge:${{ env.DOCKER_LATEST }} + + - name: Build and push Control Center + uses: docker/build-push-action@v4 + with: + context: ./services/control + file: ./services/control/Dockerfile + platforms: | + linux/amd64 + push: true + tags: | + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-control:${{ steps.meta.outputs.REPO_VERSION }} + git.send.nrw/${{ env.DOCKER_ORG }}/glpi-neuroforge-mega-control:${{ env.DOCKER_LATEST }} diff --git a/.gitea/workflows/release-tag.yml b/.gitea/workflows/release-tag.yml deleted file mode 100644 index 9f8e07c..0000000 --- a/.gitea/workflows/release-tag.yml +++ /dev/null @@ -1,197 +0,0 @@ -name: release-tag - -on: - push: - branches: - - main - tags: - - 'v*' - workflow_dispatch: - -permissions: - contents: read - -concurrency: - group: release-images-${{ github.ref }} - cancel-in-progress: true - -env: - REGISTRY: git.send.nrw - DOCKER_ORG: sendnrw - DOCKER_LATEST: latest - -jobs: - meta: - name: Resolve release metadata - runs-on: ubuntu-latest - outputs: - repo_name: ${{ steps.meta.outputs.repo_name }} - version: ${{ steps.meta.outputs.version }} - short_sha: ${{ steps.meta.outputs.short_sha }} - steps: - - name: Checkout - uses: actions/checkout@v7 - with: - fetch-depth: 0 - - - name: Resolve repository version - id: meta - shell: bash - run: | - set -euo pipefail - - repo_name="${GITHUB_REPOSITORY#*/}" - short_sha="${GITHUB_SHA::12}" - - if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - version="${GITHUB_REF_NAME#v}" - else - version="$(git describe --tags --always --match 'v*' 2>/dev/null | sed 's/^v//')" - fi - - # Docker tags may only contain a conservative character set. - version="$(printf '%s' "$version" | sed -E 's/[^A-Za-z0-9_.-]+/-/g')" - - echo "repo_name=$repo_name" >> "$GITHUB_OUTPUT" - echo "version=$version" >> "$GITHUB_OUTPUT" - echo "short_sha=$short_sha" >> "$GITHUB_OUTPUT" - - { - echo '### Release metadata' - echo "- Repository: \`$repo_name\`" - echo "- Version: \`$version\`" - echo "- Commit: \`$short_sha\`" - } >> "$GITHUB_STEP_SUMMARY" - - release-image: - name: Build ${{ matrix.image }} - needs: meta - runs-on: ubuntu-latest - timeout-minutes: 45 - strategy: - fail-fast: false - max-parallel: 3 - matrix: - include: - - image: neuroforge - context: ./platform/neuroforge - file: ./platform/neuroforge/Dockerfile - target: server - - image: neuroforge-worker - context: ./platform/neuroforge - file: ./platform/neuroforge/Dockerfile - target: worker - - image: agent - context: ./services/agent - file: ./services/agent/Dockerfile - target: '' - - image: agent-data-init - context: ./services/agent - file: ./services/agent/Dockerfile - target: data-init - - image: knowledge - context: ./services/knowledge - file: ./services/knowledge/Dockerfile - target: '' - - image: control - context: ./services/control - file: ./services/control/Dockerfile - target: '' - - steps: - - name: Checkout - uses: actions/checkout@v7 - with: - fetch-depth: 0 - - #- name: Configure insecure registry for Docker daemon - # shell: bash - # run: | - # set -euo pipefail - # sudo mkdir -p /etc/docker - # printf '{"insecure-registries":["%s"]}\n' "${REGISTRY}" | sudo tee /etc/docker/daemon.json >/dev/null - # sudo systemctl restart docker - # docker info - - - name: Set up QEMU - uses: docker/setup-qemu-action@v4 - with: - platforms: amd64 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 - with: - config-inline: | - [registry."git.send.nrw"] - http = true - insecure = true - - - name: Login to registry - uses: docker/login-action@v4 - with: - registry: ${{ env.REGISTRY }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Prepare image tags - id: image-meta - shell: bash - env: - REPO_NAME: ${{ needs.meta.outputs.repo_name }} - VERSION: ${{ needs.meta.outputs.version }} - SHORT_SHA: ${{ needs.meta.outputs.short_sha }} - IMAGE_COMPONENT: ${{ matrix.image }} - run: | - set -euo pipefail - - image="${REGISTRY}/${DOCKER_ORG}/${REPO_NAME}-${IMAGE_COMPONENT}" - - { - echo 'tags<> "$GITHUB_OUTPUT" - - echo "image=$image" >> "$GITHUB_OUTPUT" - - - name: Build and push - id: build - uses: docker/build-push-action@v7 - with: - context: ${{ matrix.context }} - file: ${{ matrix.file }} - target: ${{ matrix.target }} - platforms: linux/amd64 - push: true - pull: true - tags: ${{ steps.image-meta.outputs.tags }} - labels: | - org.opencontainers.image.title=${{ needs.meta.outputs.repo_name }}-${{ matrix.image }} - org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} - org.opencontainers.image.revision=${{ github.sha }} - org.opencontainers.image.version=${{ needs.meta.outputs.version }} - cache-from: type=gha,scope=${{ matrix.image }} - cache-to: type=gha,mode=max,scope=${{ matrix.image }} - provenance: mode=max - sbom: true - - - name: Publish build summary - if: always() - shell: bash - env: - IMAGE: ${{ steps.image-meta.outputs.image }} - VERSION: ${{ needs.meta.outputs.version }} - DIGEST: ${{ steps.build.outputs.digest }} - run: | - { - echo "### ${{ matrix.image }}" - echo "- Image: \`$IMAGE\`" - echo "- Version: \`$VERSION\`" - if [[ -n "$DIGEST" ]]; then - echo "- Digest: \`$DIGEST\`" - fi - } >> "$GITHUB_STEP_SUMMARY"