diff --git a/.drone.yml b/.drone.yml
index ea0908d74..90a170f6b 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -4,7 +4,7 @@ clone:
 
 pipeline:
   test:
-    image: golang:1.12.4
+    image: golang:1.13.3
     group: test
     commands:
       - go test -cover -timeout 30s $(go list ./...)
@@ -19,7 +19,7 @@ pipeline:
       - make test-frontend
 
   test-postgres:
-    image: golang:1.12.4
+    image: golang:1.13.3
     group: db-test
     environment:
       - DATABASE_DRIVER=postgres
@@ -28,7 +28,7 @@ pipeline:
       - go test -timeout 30s github.com/laszlocph/woodpecker/store/datastore
 
   test-mysql:
-    image: golang:1.12.4
+    image: golang:1.13.3
     group: db-test
     environment:
       - DATABASE_DRIVER=mysql
@@ -42,7 +42,7 @@ pipeline:
       - make build-frontend
 
   build:
-    image: golang:1.12.4
+    image: golang:1.13.3
     commands:
       - go get github.com/laszlocph/togo
       - (cd web/; go generate ./...)
diff --git a/Dockerfile.agent.alpine b/Dockerfile.agent.alpine
index eac573ebd..10c7252bd 100644
--- a/Dockerfile.agent.alpine
+++ b/Dockerfile.agent.alpine
@@ -1,4 +1,4 @@
-FROM alpine:3.7
+FROM alpine:3.9.4
 
 RUN apk add -U --no-cache ca-certificates
 
diff --git a/Dockerfile.agent.linux.arm b/Dockerfile.agent.linux.arm
deleted file mode 100644
index ca5ea0253..000000000
--- a/Dockerfile.agent.linux.arm
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM drone/ca-certs
-ENV GODEBUG=netdns=go
-ENV DRONE_PLATFORM=linux/arm
-ADD release/linux/arm/drone-agent /bin/
-
-EXPOSE 3000
-HEALTHCHECK CMD ["/bin/drone-agent", "ping"]
-
-ENTRYPOINT ["/bin/drone-agent"]
diff --git a/Dockerfile.agent.linux.arm64 b/Dockerfile.agent.linux.arm64
deleted file mode 100644
index 0c4371970..000000000
--- a/Dockerfile.agent.linux.arm64
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM drone/ca-certs
-ENV GODEBUG=netdns=go
-ENV DRONE_PLATFORM=linux/arm64
-ADD release/linux/arm64/drone-agent /bin/
-
-EXPOSE 3000
-HEALTHCHECK CMD ["/bin/drone-agent", "ping"]
-
-ENTRYPOINT ["/bin/drone-agent"]
diff --git a/Dockerfile.alpine b/Dockerfile.alpine
index 2d7047220..a87da8f16 100644
--- a/Dockerfile.alpine
+++ b/Dockerfile.alpine
@@ -1,4 +1,4 @@
-FROM alpine:3.7
+FROM alpine:3.9.4
 EXPOSE 8000 9000 80 443
 
 RUN apk add -U --no-cache ca-certificates
diff --git a/cncd/pipeline/pipeline/frontend/yaml/compiler/params.go b/cncd/pipeline/pipeline/frontend/yaml/compiler/params.go
index 5fe239015..163f0a48d 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/compiler/params.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/compiler/params.go
@@ -7,7 +7,7 @@ import (
 	"strings"
 
 	json "github.com/ghodss/yaml"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 // paramsToEnv uses reflection to convert a map[string]interface to a list
diff --git a/cncd/pipeline/pipeline/frontend/yaml/config.go b/cncd/pipeline/pipeline/frontend/yaml/config.go
index 9893dbf26..1f7aab43d 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/config.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/config.go
@@ -6,7 +6,7 @@ import (
 	"os"
 
 	libcompose "github.com/docker/libcompose/yaml"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 type (
diff --git a/cncd/pipeline/pipeline/frontend/yaml/config_test.go b/cncd/pipeline/pipeline/frontend/yaml/config_test.go
index 79c360d19..3f9168fc1 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/config_test.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/config_test.go
@@ -44,19 +44,20 @@ func TestParse(t *testing.T) {
 				g.Assert(out.RunsOn[1]).Equal("failure")
 				g.Assert(out.SkipClone).Equal(false)
 			})
+
 			// Check to make sure variable expansion works in yaml.MapSlice
-			// g.It("Should unmarshal variables", func() {
-			// 	out, err := ParseString(sampleVarYaml)
-			// 	if err != nil {
-			// 		g.Fail(err)
-			// 	}
-			// 	g.Assert(out.Pipeline[0].Name).Equal("notify_fail")
-			// 	g.Assert(out.Pipeline[0].Image).Equal("plugins/slack")
-			// 	g.Assert(len(out.Pipeline[0].Constraints.Event.Include)).Equal(0)
-			// 	g.Assert(out.Pipeline[1].Name).Equal("notify_success")
-			// 	g.Assert(out.Pipeline[1].Image).Equal("plugins/slack")
-			// 	g.Assert(out.Pipeline[1].Constraints.Event.Include).Equal([]string{"success"})
-			// })
+			g.It("Should unmarshal variables", func() {
+				out, err := ParseString(sampleVarYaml)
+				if err != nil {
+					g.Fail(err)
+				}
+				g.Assert(out.Pipeline.Containers[0].Name).Equal("notify_fail")
+				g.Assert(out.Pipeline.Containers[0].Image).Equal("plugins/slack")
+				g.Assert(len(out.Pipeline.Containers[0].Constraints.Event.Include)).Equal(0)
+				g.Assert(out.Pipeline.Containers[1].Name).Equal("notify_success")
+				g.Assert(out.Pipeline.Containers[1].Image).Equal("plugins/slack")
+				g.Assert(out.Pipeline.Containers[1].Constraints.Event.Include).Equal([]string{"success"})
+			})
 		})
 	})
 }
diff --git a/cncd/pipeline/pipeline/frontend/yaml/constraint_test.go b/cncd/pipeline/pipeline/frontend/yaml/constraint_test.go
index 46436d1d5..93bb5e9ba 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/constraint_test.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/constraint_test.go
@@ -5,7 +5,7 @@ import (
 
 	"github.com/laszlocph/woodpecker/cncd/pipeline/pipeline/frontend"
 
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 func TestConstraint(t *testing.T) {
diff --git a/cncd/pipeline/pipeline/frontend/yaml/container.go b/cncd/pipeline/pipeline/frontend/yaml/container.go
index e5975e8c0..88c9029f9 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/container.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/container.go
@@ -4,7 +4,7 @@ import (
 	"fmt"
 
 	libcompose "github.com/docker/libcompose/yaml"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 type (
diff --git a/cncd/pipeline/pipeline/frontend/yaml/container_test.go b/cncd/pipeline/pipeline/frontend/yaml/container_test.go
index e8c1ac137..3b4fd1f8d 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/container_test.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/container_test.go
@@ -6,7 +6,7 @@ import (
 
 	libcompose "github.com/docker/libcompose/yaml"
 	"github.com/kr/pretty"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 var containerYaml = []byte(`
diff --git a/cncd/pipeline/pipeline/frontend/yaml/matrix/matrix.go b/cncd/pipeline/pipeline/frontend/yaml/matrix/matrix.go
index 7177e1a2f..a2c8ae70e 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/matrix/matrix.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/matrix/matrix.go
@@ -3,7 +3,7 @@ package matrix
 import (
 	"strings"
 
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 const (
diff --git a/cncd/pipeline/pipeline/frontend/yaml/network.go b/cncd/pipeline/pipeline/frontend/yaml/network.go
index d6a2c2133..9375fcaec 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/network.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/network.go
@@ -3,7 +3,7 @@ package yaml
 import (
 	"fmt"
 
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 type (
diff --git a/cncd/pipeline/pipeline/frontend/yaml/network_test.go b/cncd/pipeline/pipeline/frontend/yaml/network_test.go
index 045ae07db..d1306756a 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/network_test.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/network_test.go
@@ -5,7 +5,7 @@ import (
 	"testing"
 
 	"github.com/kr/pretty"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 func TestUnmarshalNetwork(t *testing.T) {
diff --git a/cncd/pipeline/pipeline/frontend/yaml/secret_test.go b/cncd/pipeline/pipeline/frontend/yaml/secret_test.go
index d25dc8b99..be8a6bbcb 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/secret_test.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/secret_test.go
@@ -5,7 +5,7 @@ import (
 	"testing"
 
 	"github.com/kr/pretty"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 func TestUnmarshalSecrets(t *testing.T) {
diff --git a/cncd/pipeline/pipeline/frontend/yaml/types/bool_test.go b/cncd/pipeline/pipeline/frontend/yaml/types/bool_test.go
index b864349f8..74ea75418 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/types/bool_test.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/types/bool_test.go
@@ -4,7 +4,7 @@ import (
 	"testing"
 
 	"github.com/franela/goblin"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 func TestBoolTrue(t *testing.T) {
diff --git a/cncd/pipeline/pipeline/frontend/yaml/volume.go b/cncd/pipeline/pipeline/frontend/yaml/volume.go
index 346848505..01dac31b3 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/volume.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/volume.go
@@ -3,7 +3,7 @@ package yaml
 import (
 	"fmt"
 
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 type (
diff --git a/cncd/pipeline/pipeline/frontend/yaml/volume_test.go b/cncd/pipeline/pipeline/frontend/yaml/volume_test.go
index ba827f9cb..d21fce087 100644
--- a/cncd/pipeline/pipeline/frontend/yaml/volume_test.go
+++ b/cncd/pipeline/pipeline/frontend/yaml/volume_test.go
@@ -5,7 +5,7 @@ import (
 	"testing"
 
 	"github.com/kr/pretty"
-	"gopkg.in/yaml.v2"
+	"github.com/laszlocph/yaml"
 )
 
 func TestUnmarshalVolume(t *testing.T) {
diff --git a/go.mod b/go.mod
index b888b69e7..e8e88143c 100644
--- a/go.mod
+++ b/go.mod
@@ -19,7 +19,7 @@ require (
 	github.com/drone/expr v0.0.0-20170909010628-72f4df4a266b
 	github.com/drone/signal v0.0.0-20170915013802-ac5d07ef1315
 	github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 // indirect
-	github.com/franela/goblin v0.0.0-20160123211154-889391d73023
+	github.com/franela/goblin v0.0.0-20181003173013-ead4ad1d2727
 	github.com/ghodss/yaml v0.0.0-20161207003320-04f313413ffd
 	github.com/gin-gonic/contrib v0.0.0-20150815172543-14f66d54cdb9
 	github.com/gin-gonic/gin v0.0.0-20160130002857-3d002e382355
@@ -34,6 +34,7 @@ require (
 	github.com/joho/godotenv v0.0.0-20150907010228-4ed13390c0ac
 	github.com/kr/pretty v0.0.0-20160708215748-737b74a46c4b
 	github.com/kr/text v0.0.0-20160504234017-7cafcd837844 // indirect
+	github.com/laszlocph/yaml v0.0.0-20191114195230-2ec4ce7a1d34
 	github.com/lib/pq v0.0.0-20151015211310-83c4f410d0ae
 	github.com/manucorporat/sse v0.0.0-20160126180136-ee05b128a739 // indirect
 	github.com/mattn/go-sqlite3 v0.0.0-20170901084005-05548ff55570
@@ -58,5 +59,4 @@ require (
 	google.golang.org/grpc v0.0.0-20170626232044-9cb02b885b41
 	gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
 	gopkg.in/go-playground/validator.v8 v8.17.1 // indirect
-	gopkg.in/yaml.v2 v2.2.1
 )
diff --git a/go.sum b/go.sum
index 2b2445597..733c331ff 100644
--- a/go.sum
+++ b/go.sum
@@ -36,8 +36,8 @@ github.com/drone/signal v0.0.0-20170915013802-ac5d07ef1315 h1:pNSCIqkfTtVWwSHCOz
 github.com/drone/signal v0.0.0-20170915013802-ac5d07ef1315/go.mod h1:S8t92eFT0g4WUgEc/LxG+LCuiskpMNsG0ajAMGnyZpc=
 github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
 github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
-github.com/franela/goblin v0.0.0-20160123211154-889391d73023 h1:FwwGiDaXOnnZRvmccly64PWGmOvBmmzKkHquNOMRd4I=
-github.com/franela/goblin v0.0.0-20160123211154-889391d73023/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
+github.com/franela/goblin v0.0.0-20181003173013-ead4ad1d2727 h1:eouy4stZdUKn7n98c1+rdUTxWMg+jvhP+oHt0K8fiug=
+github.com/franela/goblin v0.0.0-20181003173013-ead4ad1d2727/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
 github.com/ghodss/yaml v0.0.0-20161207003320-04f313413ffd h1:U3yHrYB7NWH2o3UFzJ1J+TknZqM9QQtF8KVIE6Qzrfs=
 github.com/ghodss/yaml v0.0.0-20161207003320-04f313413ffd/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/gin-gonic/contrib v0.0.0-20150815172543-14f66d54cdb9 h1:gISPkiYdlRqAEbns25dOAoT/w5dxhI4ACWUYfTr3dFQ=
@@ -77,6 +77,8 @@ github.com/kr/pretty v0.0.0-20160708215748-737b74a46c4b h1:LJ9zj3Zit+pLjAQtA1gxl
 github.com/kr/pretty v0.0.0-20160708215748-737b74a46c4b/go.mod h1:Bvhd+E3laJ0AVkG0c9rmtZcnhV0HQ3+c3YxxqTvc/gA=
 github.com/kr/text v0.0.0-20160504234017-7cafcd837844 h1:kpzneEBeC0dMewP3gr/fADv1OlblH9r1goWVwpOt3TU=
 github.com/kr/text v0.0.0-20160504234017-7cafcd837844/go.mod h1:sjUstKUATFIcff4qlB53Kml0wQPtJVc/3fWrmuUmcfA=
+github.com/laszlocph/yaml v0.0.0-20191114195230-2ec4ce7a1d34 h1:+4tKButWtRq7Xw8EUpabOmZYAk2gtinHF585AmWu2Qk=
+github.com/laszlocph/yaml v0.0.0-20191114195230-2ec4ce7a1d34/go.mod h1:E1nYupUAMCOPyW4ZX78x63SP3/nKFQ5aj8tlwzMdYuo=
 github.com/lib/pq v0.0.0-20151015211310-83c4f410d0ae h1:rBqRT7VqVLePKGtyV6xDFLXeqD56CvZKEqI0XWzVTxM=
 github.com/lib/pq v0.0.0-20151015211310-83c4f410d0ae/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/manucorporat/sse v0.0.0-20160126180136-ee05b128a739 h1:ykXz+pRRTibcSjG1yRhpdSHInF8yZY/mfn+Rz2Nd1rE=