From 5fe8af66423619c0217f027cfee8901d3be6b2f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilen=20Barbiri=C4=8D?= Date: Sun, 15 Feb 2026 11:40:23 +0100 Subject: [PATCH 1/6] feat(ci): gitea woodpecker release support --- .github/workflows/docker-publish.yml | 57 ---------------------------- .releaserc.yaml | 6 +++ .woodpecker/docker-release.yaml | 36 ++++++++++++++++++ .woodpecker/renovate.yaml | 21 ++++++++++ renovate.json | 13 +++++++ 5 files changed, 76 insertions(+), 57 deletions(-) delete mode 100644 .github/workflows/docker-publish.yml create mode 100644 .releaserc.yaml create mode 100644 .woodpecker/docker-release.yaml create mode 100644 .woodpecker/renovate.yaml create mode 100644 renovate.json diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml deleted file mode 100644 index baf8171..0000000 --- a/.github/workflows/docker-publish.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Build and Publish Docker image - -on: - push: - branches: [ "main" ] - tags: [ "v*" ] - paths-ignore: - - "README.md" - -jobs: - build: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Determine Docker tags - id: vars - run: | - # Always tag with commit SHA - TAGS="ghcr.io/${{ github.repository_owner }}/opencloud-oidc-webfinger-proxy:${{ github.sha }}" - - # If push to main → add :latest - if [[ "${GITHUB_REF_TYPE}" == "branch" && "${GITHUB_REF_NAME}" == "main" ]]; then - TAGS="$TAGS,ghcr.io/${{ github.repository_owner }}/opencloud-oidc-webfinger-proxy:latest" - fi - - # If push of a version tag → add version tag (e.g. v1.0.0) - if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - VERSION_TAG=${GITHUB_REF_NAME} - TAGS="$TAGS,ghcr.io/${{ github.repository_owner }}/opencloud-oidc-webfinger-proxy:${VERSION_TAG}" - fi - - echo "TAGS=$TAGS" >> $GITHUB_ENV - echo "Docker tags to push:" - echo "$TAGS" | tr ',' '\n' - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - push: true - tags: ${{ env.TAGS }} - platforms: linux/amd64,linux/arm64 \ No newline at end of file diff --git a/.releaserc.yaml b/.releaserc.yaml new file mode 100644 index 0000000..cf2e18d --- /dev/null +++ b/.releaserc.yaml @@ -0,0 +1,6 @@ +plugins: + - "@semantic-release/commit-analyzer" + - "@semantic-release/release-notes-generator" + - "@semantic-release/changelog" + - ["@semantic-release/git", { assets: ["CHANGELOG.md"], message: "chore(release): ${nextRelease.version} [skip ci]" }] + - "@forge-for-gitea/semantic-release-gitea" \ No newline at end of file diff --git a/.woodpecker/docker-release.yaml b/.woodpecker/docker-release.yaml new file mode 100644 index 0000000..0ea2b9e --- /dev/null +++ b/.woodpecker/docker-release.yaml @@ -0,0 +1,36 @@ +when: + - event: push + branch: main + - event: tag + tag: v* + +steps: + - name: release + image: node:20-alpine + environment: + GITEA_TOKEN: + from_secret: gitea_token + GITEA_URL: ${CI_FORGE_URL} + commands: + - npm install -g semantic-release @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/changelog @semantic-release/git @forge-for-gitea/semantic-release-gitea + - npx semantic-release + when: + event: push + branch: main + + - name: docker + image: plugins/docker + settings: + registry: ${CI_FORGE_URL} + repo: ${CI_FORGE_URL}/${CI_REPO} + tags: + - latest + - "${CI_COMMIT_TAG##v}" + - "${CI_COMMIT_TAG}" + username: + from_secret: gitea_username + password: + from_secret: gitea_token + when: + event: tag + tag: v* \ No newline at end of file diff --git a/.woodpecker/renovate.yaml b/.woodpecker/renovate.yaml new file mode 100644 index 0000000..5e633c8 --- /dev/null +++ b/.woodpecker/renovate.yaml @@ -0,0 +1,21 @@ +when: + - event: cron + cron: "renovate" + - event: manual + +steps: + - name: renovate + image: renovate/renovate:43.10 + environment: + RENOVATE_PLATFORM: gitea + RENOVATE_ENDPOINT: ${CI_FORGE_URL} + RENOVATE_REPOSITORIES: ${CI_REPO} + RENOVATE_TOKEN: + from_secret: RENOVATE_CI_KEY + RENOVATE_ONBOARDING: false + RENOVATE_GITHUB_COM_TOKEN: + from_secret: RENOVATE_GH_KEY + LOG_LEVEL: info + + commands: + - renovate ${CI_REPO} diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..9f385a1 --- /dev/null +++ b/renovate.json @@ -0,0 +1,13 @@ +{ + "extends": [ + "config:recommended" + ], + "dependencyDashboard": true, + "assignees": [ + "barbirict" + ], + "gitAuthor": "Renovate Bot ", + "major": { + "dependencyDashboardApproval": true + } +} From 390425961ef269b61a9179f6d1ec98f5b389f9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilen=20Barbiri=C4=8D?= Date: Sun, 15 Feb 2026 11:48:47 +0100 Subject: [PATCH 2/6] fix(ci): migrate to kaniko --- .woodpecker/docker-release.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.woodpecker/docker-release.yaml b/.woodpecker/docker-release.yaml index 0ea2b9e..d24e196 100644 --- a/.woodpecker/docker-release.yaml +++ b/.woodpecker/docker-release.yaml @@ -2,7 +2,7 @@ when: - event: push branch: main - event: tag - tag: v* + ref: "refs/tags/v*" steps: - name: release @@ -19,7 +19,7 @@ steps: branch: main - name: docker - image: plugins/docker + image: plugins/kaniko settings: registry: ${CI_FORGE_URL} repo: ${CI_FORGE_URL}/${CI_REPO} @@ -33,4 +33,4 @@ steps: from_secret: gitea_token when: event: tag - tag: v* \ No newline at end of file + ref: "refs/tags/v*" \ No newline at end of file From 8e93c3b51b1810083ec45e2580121b38243242db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilen=20Barbiri=C4=8D?= Date: Sun, 15 Feb 2026 11:53:07 +0100 Subject: [PATCH 3/6] fix(ci): install git in alpine container --- .woodpecker/docker-release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.woodpecker/docker-release.yaml b/.woodpecker/docker-release.yaml index d24e196..908f150 100644 --- a/.woodpecker/docker-release.yaml +++ b/.woodpecker/docker-release.yaml @@ -12,6 +12,7 @@ steps: from_secret: gitea_token GITEA_URL: ${CI_FORGE_URL} commands: + - apk add --no-cache git - npm install -g semantic-release @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/changelog @semantic-release/git @forge-for-gitea/semantic-release-gitea - npx semantic-release when: From b5828455743633db72a79159fdaf01760cda5443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilen=20Barbiri=C4=8D?= Date: Sun, 15 Feb 2026 12:01:00 +0100 Subject: [PATCH 4/6] fix(ci): gitea git config for semantic-release --- .woodpecker/docker-release.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.woodpecker/docker-release.yaml b/.woodpecker/docker-release.yaml index 908f150..8f97c8e 100644 --- a/.woodpecker/docker-release.yaml +++ b/.woodpecker/docker-release.yaml @@ -10,9 +10,13 @@ steps: environment: GITEA_TOKEN: from_secret: gitea_token + GITEA_USERNAME: + from_secret: gitea_username GITEA_URL: ${CI_FORGE_URL} commands: - apk add --no-cache git + - git config --global credential.helper store + - echo "https://${GITEA_USERNAME}:${GITEA_TOKEN}@$git.barbiric.io" > ~/.git-credentials - npm install -g semantic-release @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/changelog @semantic-release/git @forge-for-gitea/semantic-release-gitea - npx semantic-release when: From 35bdc52487a22081723a3125d12590a40800e4bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilen=20Barbiri=C4=8D?= Date: Sun, 15 Feb 2026 12:04:05 +0100 Subject: [PATCH 5/6] fix(ci): escape credential envs --- .woodpecker/docker-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/docker-release.yaml b/.woodpecker/docker-release.yaml index 8f97c8e..0f8d831 100644 --- a/.woodpecker/docker-release.yaml +++ b/.woodpecker/docker-release.yaml @@ -16,7 +16,7 @@ steps: commands: - apk add --no-cache git - git config --global credential.helper store - - echo "https://${GITEA_USERNAME}:${GITEA_TOKEN}@$git.barbiric.io" > ~/.git-credentials + - echo "https://$${GITEA_USERNAME}:$${GITEA_TOKEN}@git.barbiric.io" > ~/.git-credentials - npm install -g semantic-release @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/changelog @semantic-release/git @forge-for-gitea/semantic-release-gitea - npx semantic-release when: From 5f012559aded7e5b8720046796f22f43a6cf667d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilen=20Barbiri=C4=8D?= Date: Sun, 15 Feb 2026 12:09:52 +0100 Subject: [PATCH 6/6] fix(ci): type registry and repo without var --- .woodpecker/docker-release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.woodpecker/docker-release.yaml b/.woodpecker/docker-release.yaml index 0f8d831..cc6d882 100644 --- a/.woodpecker/docker-release.yaml +++ b/.woodpecker/docker-release.yaml @@ -26,8 +26,8 @@ steps: - name: docker image: plugins/kaniko settings: - registry: ${CI_FORGE_URL} - repo: ${CI_FORGE_URL}/${CI_REPO} + registry: git.barbiric.io + repo: git.barbiric.io/${CI_REPO} tags: - latest - "${CI_COMMIT_TAG##v}"