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..6e1c82f --- /dev/null +++ b/.woodpecker/dryrun.yaml @@ -0,0 +1,14 @@ +steps: + dryrun: + image: woodpeckerci/plugin-kaniko + settings: + 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..4944762 --- /dev/null +++ b/.woodpecker/publish-latest.yaml @@ -0,0 +1,17 @@ +steps: + publish-latest: + image: woodpeckerci/plugin-kaniko + settings: + repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app + registry: https://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..7bea949 --- /dev/null +++ b/.woodpecker/publish-tag.yaml @@ -0,0 +1,18 @@ +steps: + publish-tag: + image: woodpeckerci/plugin-kaniko + settings: + repo: gitea.michaelthomson.dev/${CI_REPO_OWNER}/go-todos-app + registry: https://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