From f35f21e5c90824dd78f01709c46c714b9fa912cd Mon Sep 17 00:00:00 2001 From: Sergey Petrov Date: Tue, 28 Sep 2021 04:09:35 +0300 Subject: [PATCH 1/4] initial version of dhall config --- .drone.dhall | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .drone.dhall diff --git a/.drone.dhall b/.drone.dhall new file mode 100644 index 0000000..b70ade1 --- /dev/null +++ b/.drone.dhall @@ -0,0 +1,39 @@ +let JSON = https://prelude.dhall-lang.org/JSON/package.dhall + +let List/map = https://prelude.dhall-lang.org/List/map + +let List/take = https://prelude.dhall-lang.org/List/take + +let Drone = https://dhall.pr0ger.dev/package.dhall + +let Enums = https://dhall.pr0ger.dev/enums.dhall + +let Misc = https://dhall.pr0ger.dev/misc.dhall + +let LintPipeline = + Drone.Resource.Pipeline.Docker + Drone.Pipeline.Docker::{ + , name = "lint" + , steps = + [ Drone.Step.Docker::{ + , name = "mod tidy" + , image = "pr0ger/baseimage:build.go-latest" + , pull = Some Enums.Pull.Always + , commands = + Drone.StepType.commands + [ "go mod tidy -v", "git diff --exit-code" ] + } + , Drone.Step.Docker::{ + , name = "lint" + , image = "golangci/golangci-lint:v1.39-alpine" + , commands = + Drone.StepType.commands + [ "go get github.com/golang/mock/mockgen@latest" + , "go generate -x" + , "golangci-lint run -v" + ] + } + ] + } + +in Drone.render [ LintPipeline ] From d2e6477b8a3714c670ec773e8f0e3fbbbe4b2c8d Mon Sep 17 00:00:00 2001 From: Sergey Petrov Date: Wed, 29 Sep 2021 02:56:32 +0300 Subject: [PATCH 2/4] add tests pipeline --- .drone.dhall | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/.drone.dhall b/.drone.dhall index b70ade1..7edc0c3 100644 --- a/.drone.dhall +++ b/.drone.dhall @@ -28,12 +28,31 @@ let LintPipeline = , image = "golangci/golangci-lint:v1.39-alpine" , commands = Drone.StepType.commands - [ "go get github.com/golang/mock/mockgen@latest" - , "go generate -x" - , "golangci-lint run -v" - ] + [ "go generate -x", "golangci-lint run -v" ] } ] } -in Drone.render [ LintPipeline ] +let TestsPipeline = + λ(minorVersion : Natural) → + let minor = Natural/show minorVersion + + in Drone.Resource.Pipeline.Docker + Drone.Pipeline.Docker::{ + , name = "tests 1.${minor}" + , steps = + [ Drone.Step.Docker::{ + , name = "build" + , image = "pr0ger/baseimage:build.go-1.${minor}" + , commands = + Drone.StepType.commands [ "go generate -x", "go build" ] + } + , Drone.Step.Docker::{ + , name = "test" + , image = "pr0ger/baseimage:build.go-1.${minor}" + , commands = Drone.StepType.commands [ "go test -v ./..." ] + } + ] + } + +in Drone.render [ LintPipeline, TestsPipeline 13 ] From 0e18c9e34a6d4f8ddb2527c0f7fbf470efb6dd0f Mon Sep 17 00:00:00 2001 From: Sergey Petrov Date: Wed, 29 Sep 2021 03:08:13 +0300 Subject: [PATCH 3/4] add mockgen --- .drone.dhall | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.drone.dhall b/.drone.dhall index 7edc0c3..dd5476a 100644 --- a/.drone.dhall +++ b/.drone.dhall @@ -28,7 +28,10 @@ let LintPipeline = , image = "golangci/golangci-lint:v1.39-alpine" , commands = Drone.StepType.commands - [ "go generate -x", "golangci-lint run -v" ] + [ "go get github.com/golang/mock/mockgen@latest" + , "go generate -x" + , "golangci-lint run -v" + ] } ] } @@ -45,7 +48,11 @@ let TestsPipeline = , name = "build" , image = "pr0ger/baseimage:build.go-1.${minor}" , commands = - Drone.StepType.commands [ "go generate -x", "go build" ] + Drone.StepType.commands + [ "go get github.com/golang/mock/mockgen@latest" + , "go generate -x" + , "go build" + ] } , Drone.Step.Docker::{ , name = "test" From ff0c3d1012385a48ee339672a500f588e592d260 Mon Sep 17 00:00:00 2001 From: Sergey Petrov Date: Wed, 29 Sep 2021 03:47:23 +0300 Subject: [PATCH 4/4] add update docs pipeline --- .drone.dhall | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/.drone.dhall b/.drone.dhall index dd5476a..e5fbb14 100644 --- a/.drone.dhall +++ b/.drone.dhall @@ -1,9 +1,5 @@ let JSON = https://prelude.dhall-lang.org/JSON/package.dhall -let List/map = https://prelude.dhall-lang.org/List/map - -let List/take = https://prelude.dhall-lang.org/List/take - let Drone = https://dhall.pr0ger.dev/package.dhall let Enums = https://dhall.pr0ger.dev/enums.dhall @@ -51,7 +47,7 @@ let TestsPipeline = Drone.StepType.commands [ "go get github.com/golang/mock/mockgen@latest" , "go generate -x" - , "go build" + , "go build -v" ] } , Drone.Step.Docker::{ @@ -62,4 +58,25 @@ let TestsPipeline = ] } -in Drone.render [ LintPipeline, TestsPipeline 13 ] +let UpdateDocs = + Drone.Resource.Pipeline.Docker + Drone.Pipeline.Docker::{ + , name = "update docs" + , clone = Some { depth = None Natural, disable = Some True } + , trigger = Some Misc.Conditions::{ + , event = Some (Misc.ConstraintOrEvent.events [ Enums.Event.Tag ]) + } + , steps = + [ Drone.Step.Docker::{ + , name = "pkg.go.dev" + , image = "alpine:latest" + , commands = + Drone.StepType.commands + [ "apk add curl jq" + , "curl -s https://proxy.golang.org/go.pr0ger.dev/logger/@v/\${DRONE_TAG}.info | jq" + ] + } + ] + } + +in Drone.render [ LintPipeline, TestsPipeline 13, UpdateDocs ]