From e10ff5d9fc15c7ca457e4cb3a1e5d4d2c15a5882 Mon Sep 17 00:00:00 2001 From: kjuulh Date: Fri, 20 Mar 2026 15:27:48 +0100 Subject: [PATCH] feat: add release Docker image and Gitea Actions workflow Add Dockerfile.release using mise to install toolchain, Gitea Actions workflow with snapshot dry-run on main pushes and full release on tags, and mise release-docker task for local testing. --- .gitea/workflows/release.yaml | 36 +++++++++++++++++++++++++++++++++++ Dockerfile.release | 20 +++++++++++++++++++ mise.toml | 7 +++++++ 3 files changed, 63 insertions(+) create mode 100644 .gitea/workflows/release.yaml create mode 100644 Dockerfile.release diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml new file mode 100644 index 0000000..87020a7 --- /dev/null +++ b/.gitea/workflows/release.yaml @@ -0,0 +1,36 @@ +name: Release + +on: + push: + branches: + - main + tags: + - "v*" + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Build release image + run: docker build -f Dockerfile.release -t gitnow-release . + + - name: Snapshot (dry run) + if: startsWith(github.ref, 'refs/tags/') == false + run: | + docker run --rm \ + -v "${{ github.workspace }}:/build" \ + -w /build \ + gitnow-release release-snapshot + + - name: Release + if: startsWith(github.ref, 'refs/tags/') + run: | + docker run --rm \ + -v "${{ github.workspace }}:/build" \ + -w /build \ + -e GITEA_TOKEN=${{ secrets.GITEA_TOKEN }} \ + gitnow-release release diff --git a/Dockerfile.release b/Dockerfile.release new file mode 100644 index 0000000..eb22c28 --- /dev/null +++ b/Dockerfile.release @@ -0,0 +1,20 @@ +FROM debian:trixie-slim + +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + git \ + build-essential \ + && rm -rf /var/lib/apt/lists/* + +# Install mise +RUN curl https://mise.run | sh +ENV PATH="/root/.local/bin:${PATH}" + +WORKDIR /build +COPY mise.toml . +RUN mise trust && mise install + +COPY . . + +ENTRYPOINT ["mise", "run"] +CMD ["release"] diff --git a/mise.toml b/mise.toml index 3356ee4..66fdede 100644 --- a/mise.toml +++ b/mise.toml @@ -19,3 +19,10 @@ description = "Create a release using GoReleaser (requires GITEA_TOKEN and a git [tasks.release-snapshot] run = "goreleaser release --snapshot --clean" description = "Build a local snapshot release without publishing" + +[tasks.release-docker] +run = """ +docker build -f Dockerfile.release -t gitnow-release . +docker run --rm -v "$PWD:/build" -w /build -e GITEA_TOKEN gitnow-release release --snapshot --clean +""" +description = "Test the release Docker image locally (snapshot mode)"