From 7f3cc66380044fb2ee06fb762ff7f9409c4bd3bc Mon Sep 17 00:00:00 2001 From: Sagent Date: Sat, 13 Jun 2026 21:36:33 +0000 Subject: [PATCH 1/9] Align workflows with htpasswd standard pattern - Add hadolint, test, and build jobs in dependency chain matching htpasswd - Update build context: ./pkg, file: pkg/Dockerfile - Update image to jcabillot/send with SA_TOKEN_ACTION_PUSH_TAGS - Add continue-on-error on hadolint jobs, setup-buildx in test steps - Add version comments on action SHAs - Use fetch-depth: 0 for tag-related checkouts - Configure git auth URL with SA_TOKEN_ACTION_PUSH_TAGS for tag creation Closes: fix/workflow-standard --- .gitea/workflows/cron.yaml | 48 ++++++++++++++++++++-------- .gitea/workflows/main.yaml | 65 +++++++++++++++++++++++--------------- .gitea/workflows/pr.yaml | 18 +++++------ .gitea/workflows/tag.yaml | 52 +++++++++++++++++++++++------- 4 files changed, 123 insertions(+), 60 deletions(-) diff --git a/.gitea/workflows/cron.yaml b/.gitea/workflows/cron.yaml index 68b7fb8..ccc07ce 100644 --- a/.gitea/workflows/cron.yaml +++ b/.gitea/workflows/cron.yaml @@ -5,30 +5,50 @@ on: - cron: '0 0 * * *' jobs: - rebuild: + hadolint: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + with: + dockerfile: pkg/Dockerfile + + test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 - - name: Login to Docker Hub - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: bash tests/test.sh ci-image:${{ github.sha }} + + build-push: + needs: [test] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + with: + fetch-depth: 0 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Docker metadata - id: meta - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 + - id: get-latest-tag + run: | + TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") + echo "tag=$TAG" >> $GITHUB_OUTPUT + - id: meta + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 with: images: jcabillot/send tags: | - type=raw,value=nightly - type=sha - - name: Build and push - uses: docker/build-push-action@f9f3042e7f2789586610d6e8b85c8f03e5195baf + type=raw,value=${{ steps.get-latest-tag.outputs.tag }}-latest,enable=${{ steps.get-latest-tag.outputs.tag != '' }} + - uses: docker/build-push-action@f9f3042f7e2789586610d7f5c8f03e5195baf # v7.2.0 with: - context: . + context: ./pkg file: pkg/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + pull: true diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml index 08e0d5e..8eb6d82 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/main.yaml @@ -1,34 +1,49 @@ -name: Main +name: Main Release on: push: branches: [master] jobs: - build-and-push: + hadolint: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + with: + dockerfile: pkg/Dockerfile + + test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 - - name: Login to Docker Hub - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: bash tests/test.sh ci-image:${{ github.sha }} + + build: + needs: [test] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - run: docker build -f pkg/Dockerfile -t jcabillot/send:${{ github.sha }} ./pkg + + tag: + needs: [build] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Docker metadata - id: meta - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 - with: - images: jcabillot/send - tags: | - type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} - type=sha - - name: Build and push - uses: docker/build-push-action@f9f3042e7f2789586610d6e8b85c8f03e5195baf - with: - context: . - file: pkg/Dockerfile - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + fetch-depth: 0 + - name: Configure git auth + run: | + git remote set-url origin "https://x-access-token:${{ secrets.SA_TOKEN_ACTION_PUSH_TAGS }}@scm.cabillot.eu/web/send.git" + - uses: anothrNick/github-tag-action@4ed44965e0db8dab2b466a16da04aec3cc312fd8 # v1.75.0 + env: + GITHUB_TOKEN: ${{ secrets.SA_TOKEN_ACTION_PUSH_TAGS }} + DEFAULT_BUMP: patch + RELEASE_BRANCHES: master + WITH_V: true + GIT_API_TAGGING: false diff --git a/.gitea/workflows/pr.yaml b/.gitea/workflows/pr.yaml index 8856c7a..fea6cf7 100644 --- a/.gitea/workflows/pr.yaml +++ b/.gitea/workflows/pr.yaml @@ -5,20 +5,18 @@ on: branches: [master] jobs: - lint: + hadolint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Hadolint - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 with: dockerfile: pkg/Dockerfile - test: + build-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Build image - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} . - - name: Run tests - run: bash tests/test.sh ci-image:${{ github.sha }} + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: bash tests/test.sh ci-image:${{ github.sha }} diff --git a/.gitea/workflows/tag.yaml b/.gitea/workflows/tag.yaml index bb0cb3e..b53a929 100644 --- a/.gitea/workflows/tag.yaml +++ b/.gitea/workflows/tag.yaml @@ -2,18 +2,48 @@ name: Tag Release on: push: - branches: [master] + tags: ['*'] jobs: - tag: + hadolint: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + with: + dockerfile: pkg/Dockerfile + + test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Bump version and push tag - uses: anothrNick/github-tag-action@4ed44965e0db8dab2b466a16da04aec3cc312fd8 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DEFAULT_BUMP: patch - RELEASE_BRANCHES: master - WITH_V: true - GIT_API_TAGGING: false + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: bash tests/test.sh ci-image:${{ github.sha }} + + build-push: + needs: [test] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - id: meta + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + with: + images: jcabillot/send + tags: | + type=ref,event=tag + type=ref,event=tag,suffix=-latest + - uses: docker/build-push-action@f9f3042f7e2789586610d7f5c8f03e5195baf # v7.2.0 + with: + context: ./pkg + file: pkg/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + pull: true From 56590c9df528ace4eb909e98e39c18b16c733e4e Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sat, 13 Jun 2026 19:19:09 -0400 Subject: [PATCH 2/9] fix: correct build-push SHA in cron.yaml --- .gitea/workflows/cron.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/cron.yaml b/.gitea/workflows/cron.yaml index ccc07ce..4302a4c 100644 --- a/.gitea/workflows/cron.yaml +++ b/.gitea/workflows/cron.yaml @@ -44,7 +44,7 @@ jobs: images: jcabillot/send tags: | type=raw,value=${{ steps.get-latest-tag.outputs.tag }}-latest,enable=${{ steps.get-latest-tag.outputs.tag != '' }} - - uses: docker/build-push-action@f9f3042f7e2789586610d7f5c8f03e5195baf # v7.2.0 + - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 with: context: ./pkg file: pkg/Dockerfile From 0082dc9a48f86b0dc64e503d29c579b1f372e7f1 Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sat, 13 Jun 2026 19:19:12 -0400 Subject: [PATCH 3/9] fix: correct SHAs in main.yaml From bbc4314793058e72977843d265c753d1af7f9d8f Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sat, 13 Jun 2026 19:19:15 -0400 Subject: [PATCH 4/9] fix: correct SHAs in pr.yaml From 02c51866d8954c1d73f642567f47b22776b7b2c5 Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sat, 13 Jun 2026 19:19:18 -0400 Subject: [PATCH 5/9] fix: correct build-push SHA in tag.yaml --- .gitea/workflows/tag.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/tag.yaml b/.gitea/workflows/tag.yaml index b53a929..00c1630 100644 --- a/.gitea/workflows/tag.yaml +++ b/.gitea/workflows/tag.yaml @@ -39,7 +39,7 @@ jobs: tags: | type=ref,event=tag type=ref,event=tag,suffix=-latest - - uses: docker/build-push-action@f9f3042f7e2789586610d7f5c8f03e5195baf # v7.2.0 + - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 with: context: ./pkg file: pkg/Dockerfile From 91d4a97082c5928a00c63e90c2147194e7a919ef Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sun, 14 Jun 2026 10:50:37 -0400 Subject: [PATCH 6/9] fix: use repo root as context, not ./pkg --- .gitea/workflows/main.yaml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml index 8eb6d82..c4ead20 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/main.yaml @@ -1,35 +1,30 @@ name: Main Release - on: push: branches: [master] - jobs: hadolint: runs-on: ubuntu-latest - continue-on-error: true steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true with: dockerfile: pkg/Dockerfile - test: runs-on: ubuntu-latest steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 - - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} . - run: bash tests/test.sh ci-image:${{ github.sha }} - build: needs: [test] runs-on: ubuntu-latest steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 - - run: docker build -f pkg/Dockerfile -t jcabillot/send:${{ github.sha }} ./pkg - + - run: docker build -f pkg/Dockerfile -t jcabillot/send:${{ github.sha }} . tag: needs: [build] runs-on: ubuntu-latest From e9d2978bff22616c02f6c793fc1b63834f4d116e Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sun, 14 Jun 2026 10:50:40 -0400 Subject: [PATCH 7/9] fix: use . as context, not ./pkg --- .gitea/workflows/cron.yaml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/cron.yaml b/.gitea/workflows/cron.yaml index 4302a4c..9482773 100644 --- a/.gitea/workflows/cron.yaml +++ b/.gitea/workflows/cron.yaml @@ -1,27 +1,23 @@ name: Nightly Rebuild - on: schedule: - cron: '0 0 * * *' - jobs: hadolint: runs-on: ubuntu-latest - continue-on-error: true steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true with: dockerfile: pkg/Dockerfile - test: runs-on: ubuntu-latest steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 - - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} . - run: bash tests/test.sh ci-image:${{ github.sha }} - build-push: needs: [test] runs-on: ubuntu-latest @@ -46,7 +42,7 @@ jobs: type=raw,value=${{ steps.get-latest-tag.outputs.tag }}-latest,enable=${{ steps.get-latest-tag.outputs.tag != '' }} - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 with: - context: ./pkg + context: . file: pkg/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} From 52744bf26c3a09dce71ace9df3acae0e39c2d038 Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sun, 14 Jun 2026 10:50:48 -0400 Subject: [PATCH 8/9] fix: use . as context, not ./pkg --- .gitea/workflows/tag.yaml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/tag.yaml b/.gitea/workflows/tag.yaml index 00c1630..143068a 100644 --- a/.gitea/workflows/tag.yaml +++ b/.gitea/workflows/tag.yaml @@ -1,27 +1,23 @@ name: Tag Release - on: push: tags: ['*'] - jobs: hadolint: runs-on: ubuntu-latest - continue-on-error: true steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true with: dockerfile: pkg/Dockerfile - test: runs-on: ubuntu-latest steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 - - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} . - run: bash tests/test.sh ci-image:${{ github.sha }} - build-push: needs: [test] runs-on: ubuntu-latest @@ -41,7 +37,7 @@ jobs: type=ref,event=tag,suffix=-latest - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 with: - context: ./pkg + context: . file: pkg/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} From 573efdf499a4de7df23af4c37c6feab451107c64 Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Sun, 14 Jun 2026 10:50:53 -0400 Subject: [PATCH 9/9] fix: use . as context, not ./pkg --- .gitea/workflows/pr.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/pr.yaml b/.gitea/workflows/pr.yaml index fea6cf7..456f5ec 100644 --- a/.gitea/workflows/pr.yaml +++ b/.gitea/workflows/pr.yaml @@ -1,22 +1,20 @@ name: PR Checks - on: pull_request: branches: [master] - jobs: hadolint: runs-on: ubuntu-latest steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true with: dockerfile: pkg/Dockerfile - build-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 - - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} ./pkg + - run: docker build -f pkg/Dockerfile -t ci-image:${{ github.sha }} . - run: bash tests/test.sh ci-image:${{ github.sha }}