diff --git a/.drone.yml b/.drone.yml index 5415c42..b907ac8 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,10 +3,19 @@ pipeline: image: ${IMAGE} commands: - go build + + test: + image: ${IMAGE} + commands: - go test + publish: + image: plugins/docker + repo: josebarn/hello-world + tags: [ 1.0.0, 1.0, latest ] + dockerfile: ./docker/Dockerfile + secrets: [ DOCKER_USERNAME, DOCKER_PASSWORD ] + debug: true matrix: IMAGE: - - golang:1.7 - - golang:1.8 - golang:latest diff --git a/.drone.yml.sig b/.drone.yml.sig new file mode 100644 index 0000000..67ae578 --- /dev/null +++ b/.drone.yml.sig @@ -0,0 +1 @@ +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgYnVpbGQ6CiAgICBpbWFnZTogJHtJTUFHRX0KICAgIGNvbW1hbmRzOgogICAgICAtIGdvIGJ1aWxkCgogIHRlc3Q6CiAgICBpbWFnZTogJHtJTUFHRX0KICAgIGNvbW1hbmRzOgogICAgICAtIGdvIHRlc3QKCiAgcHVibGlzaDoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogam9zZWJhcm4vaGVsbG8td29ybGQKICAgIHRhZ3M6IFsgMS4wLjAsIDEuMCwgbGF0ZXN0IF0KICAgIGRvY2tlcmZpbGU6IC4vZG9ja2VyL0RvY2tlcmZpbGUKICAgIHNlY3JldHM6IFsgRE9DS0VSX1VTRVJOQU1FLCBET0NLRVJfUEFTU1dPUkQgXQogICAgZGVidWc6IHRydWUKbWF0cml4OgogIElNQUdFOgogICAgLSBnb2xhbmc6bGF0ZXN0Cg.KhxWXgdGcJHCk-aDcSx9GEphLCIMEFe2vg0EpYWUlBI \ No newline at end of file diff --git a/README.md b/README.md index 0df7a67..7b876c0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -# drone-with-go [![Build Status](http://beta.drone.io/api/badges/drone-demos/drone-with-go/status.svg)](http://beta.drone.io/drone-demos/drone-with-go) [![Build Status](https://aircover.co/badges/drone-demos/drone-with-go/coverage.svg)](https://aircover.co/drone-demos/drone-with-go) +# drone-with-go [![Build Status](https://ci.cloudlockng.com/api/badges/josebarn/drone-with-go/status.svg)](https://ci.cloudlockng.com/josebarn/drone-with-go) An example of how to test Go code with Drone. Inspect the .drone.yml file for details on the build steps for this simple go project. + +Notice the .drone.sig is used to ensure secrets are not exposed; and the pipeline is split into multiple phases. diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..7a5354a --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,23 @@ +# Multi-stage build form +FROM golang:latest + +# Copy in code... +RUN mkdir /app +ADD main.go /app/ + +# Build app +WORKDIR /app +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o hello . + +# Could use something even smaller... +FROM alpine:latest +RUN apk --no-cache add ca-certificates + +RUN mkdir /app +WORKDIR /app/ +COPY --from=0 /app/hello . + +# Expose ports for future REST Interface +EXPOSE 8080 + +CMD ["/app/hello"]