From 01296bd2e631683559308437ad2621417f10d30d Mon Sep 17 00:00:00 2001 From: = Date: Mon, 10 Jan 2022 13:02:45 +0100 Subject: [PATCH] Initial commit --- .woodpecker/pr.yml | 8 ++++++++ .woodpecker/push.yml | 28 ++++++++++++++++++++++++++++ Dockerfile | 10 ++++++++++ go.mod | 3 +++ internal/internal.go | 5 +++++ internal/internal_test.go | 30 ++++++++++++++++++++++++++++++ main.go | 11 +++++++++++ 7 files changed, 95 insertions(+) create mode 100644 .woodpecker/pr.yml create mode 100644 .woodpecker/push.yml create mode 100644 Dockerfile create mode 100644 go.mod create mode 100644 internal/internal.go create mode 100644 internal/internal_test.go create mode 100644 main.go diff --git a/.woodpecker/pr.yml b/.woodpecker/pr.yml new file mode 100644 index 0000000..d990b3f --- /dev/null +++ b/.woodpecker/pr.yml @@ -0,0 +1,8 @@ +pipeline: + test_short: + image: golang:latest + commands: + - go build main.go + - go test -v ./... + when: + event: [pull_request] \ No newline at end of file diff --git a/.woodpecker/push.yml b/.woodpecker/push.yml new file mode 100644 index 0000000..1d913e4 --- /dev/null +++ b/.woodpecker/push.yml @@ -0,0 +1,28 @@ +pipeline: + release-latest: + image: plugins/docker + settings: + repo: registry.t-juice.club/peckertest + registry: registry.t-juice.club + username: woodpecker + password: + from_secret: registry_password + tags: + - latest + - "${CI_COMMIT_SHA:0:8}" + when: + branch: master + event: push + + release-tagged: + image: plugins/docker + settings: + repo: registry.t-juice.club/peckertest + registry: registry.t-juice.club + username: woodpecker + password: + from_secret: registry_password + tags: + - "${CI_COMMIT_TAG}" + when: + event: [tag] diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b067606 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM golang:latest AS builder +WORKDIR /src +COPY go.mod . +RUN go mod download +COPY . . +RUN go build -o peckertest main.go + +FROM alpine:latest +COPY --from=builder /src/peckertest /bin/peckertest +CMD ["/bin/peckertest"] \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..775702a --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module git.t-juice.club/torjus/peckertest + +go 1.17 diff --git a/internal/internal.go b/internal/internal.go new file mode 100644 index 0000000..0b04b79 --- /dev/null +++ b/internal/internal.go @@ -0,0 +1,5 @@ +package internal + +func Add(a, b int) int { + return a + b +} diff --git a/internal/internal_test.go b/internal/internal_test.go new file mode 100644 index 0000000..8bdc2a8 --- /dev/null +++ b/internal/internal_test.go @@ -0,0 +1,30 @@ +package internal_test + +import ( + "fmt" + "testing" + + "git.t-juice.club/torjus/peckertest/internal" +) + +func TestAdd(t *testing.T) { + var tc = []struct { + A int + B int + Expected int + }{ + {A: 1, B: 0, Expected: 1}, + {A: 1, B: 1, Expected: 2}, + {A: 1, B: -1, Expected: 0}, + } + + for _, test := range tc { + name := fmt.Sprintf("%d+%d", test.A, test.B) + t.Run(name, func(t *testing.T) { + result := internal.Add(test.A, test.B) + if result != test.Expected { + t.Errorf("Got %d, expected %d", result, test.Expected) + } + }) + } +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..e5bc547 --- /dev/null +++ b/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "fmt" + + "git.t-juice.club/torjus/peckertest/internal" +) + +func main() { + fmt.Printf("5+5=%d\n", internal.Add(5, 5)) +}