From 642a55405080b28018d835318de0635ca207488c Mon Sep 17 00:00:00 2001 From: Michael Thomson Date: Sat, 8 Jun 2024 23:10:22 -0400 Subject: [PATCH 1/2] docker and CI --- .woodpecker/build.yaml | 12 ++++++++++++ .woodpecker/dryrun.yaml | 15 +++++++++++++++ .woodpecker/publish-latest.yaml | 18 ++++++++++++++++++ .woodpecker/publish-tag.yaml | 19 +++++++++++++++++++ Dockerfile | 10 ++++++++++ go.mod | 2 +- 6 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 .woodpecker/build.yaml create mode 100644 .woodpecker/dryrun.yaml create mode 100644 .woodpecker/publish-latest.yaml create mode 100644 .woodpecker/publish-tag.yaml create mode 100644 Dockerfile diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml new file mode 100644 index 0000000..11cc90f --- /dev/null +++ b/.woodpecker/build.yaml @@ -0,0 +1,12 @@ +steps: + build: + when: + branch: main + event: [push, pull_request] + image: golang + environment: + - CGO_ENABLED=0 + - GOOS=linux + commands: + - go get + - go build diff --git a/.woodpecker/dryrun.yaml b/.woodpecker/dryrun.yaml new file mode 100644 index 0000000..00d48ca --- /dev/null +++ b/.woodpecker/dryrun.yaml @@ -0,0 +1,15 @@ +steps: + dryrun: + image: woodpeckerci/plugin-docker-buildx + settings: + platforms: linux/amd64 + dry_run: true + repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app + tags: latest + when: + branch: main + event: [push, pull_request] + +depends_on: + - build + diff --git a/.woodpecker/publish-latest.yaml b/.woodpecker/publish-latest.yaml new file mode 100644 index 0000000..00146f6 --- /dev/null +++ b/.woodpecker/publish-latest.yaml @@ -0,0 +1,18 @@ +steps: + publish-latest: + image: woodpeckerci/plugin-docker-buildx + settings: + platforms: linux/amd64 + repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app + registry: gitea.michaelthomson.dev + tags: latest + username: ${CI_REPO_OWNER} + password: + from_secret: gitea_token + when: + branch: main + event: [push] + +depends_on: + - build + - dryrun diff --git a/.woodpecker/publish-tag.yaml b/.woodpecker/publish-tag.yaml new file mode 100644 index 0000000..c7065c7 --- /dev/null +++ b/.woodpecker/publish-tag.yaml @@ -0,0 +1,19 @@ +steps: + publish-tag: + image: woodpeckerci/plugin-docker-buildx + settings: + platforms: linux/amd64 + repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app + registry: gitea.michaelthomson.dev + tags: ${CI_COMMIT_TAG} + username: ${CI_REPO_OWNER} + password: + from_secret: gitea_token + when: + event: tag + ref: refs/tags/v* + branch: main + +depends_on: + - build + - dryrun diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ca85a2d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +# syntax=docker/dockerfile:1 + +FROM golang:1.22-alpine +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY . ./ +RUN CGO_ENABLED=0 GOOS=linux go build -o /entrypoint +EXPOSE 3000 +ENTRYPOINT ["/entrypoint"] diff --git a/go.mod b/go.mod index 941ce49..00e9f8f 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module michaelthomson.dev/mthomson/go-todos-app go 1.22.1 -require github.com/a-h/templ v0.2.707 // indirect +require github.com/a-h/templ v0.2.707 -- 2.47.2 From 94d556cb1b57a8bde1fd9ad30221a69b46de444e Mon Sep 17 00:00:00 2001 From: Michael Thomson Date: Sat, 8 Jun 2024 23:20:41 -0400 Subject: [PATCH 2/2] switch to kaniko --- .woodpecker/dryrun.yaml | 3 +-- .woodpecker/publish-latest.yaml | 5 ++--- .woodpecker/publish-tag.yaml | 5 ++--- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.woodpecker/dryrun.yaml b/.woodpecker/dryrun.yaml index 00d48ca..6e1c82f 100644 --- a/.woodpecker/dryrun.yaml +++ b/.woodpecker/dryrun.yaml @@ -1,8 +1,7 @@ steps: dryrun: - image: woodpeckerci/plugin-docker-buildx + image: woodpeckerci/plugin-kaniko settings: - platforms: linux/amd64 dry_run: true repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app tags: latest diff --git a/.woodpecker/publish-latest.yaml b/.woodpecker/publish-latest.yaml index 00146f6..4944762 100644 --- a/.woodpecker/publish-latest.yaml +++ b/.woodpecker/publish-latest.yaml @@ -1,10 +1,9 @@ steps: publish-latest: - image: woodpeckerci/plugin-docker-buildx + image: woodpeckerci/plugin-kaniko settings: - platforms: linux/amd64 repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app - registry: gitea.michaelthomson.dev + registry: https://gitea.michaelthomson.dev tags: latest username: ${CI_REPO_OWNER} password: diff --git a/.woodpecker/publish-tag.yaml b/.woodpecker/publish-tag.yaml index c7065c7..7bea949 100644 --- a/.woodpecker/publish-tag.yaml +++ b/.woodpecker/publish-tag.yaml @@ -1,10 +1,9 @@ steps: publish-tag: - image: woodpeckerci/plugin-docker-buildx + image: woodpeckerci/plugin-kaniko settings: - platforms: linux/amd64 repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app - registry: gitea.michaelthomson.dev + registry: https://gitea.michaelthomson.dev tags: ${CI_COMMIT_TAG} username: ${CI_REPO_OWNER} password: -- 2.47.2