feat: support mutiple platform

This commit is contained in:
Bo-Yi Wu
2018-03-28 10:36:08 +08:00
parent 85611cb52b
commit 8f3540ccb2
8 changed files with 150 additions and 14 deletions
+79 -6
View File
@@ -20,7 +20,7 @@ pipeline:
- make misspell-check
test:
image: appleboy/golang-testing
image: appleboy/golang-testing:1.10.0
pull: true
group: golang
secrets: [ webhook_id, webhook_token ]
@@ -28,12 +28,33 @@ pipeline:
- make test
- make coverage
build:
image: appleboy/golang-testing
build_linux_amd64:
image: appleboy/golang-testing:1.10.0
pull: true
group: golang
group: build
commands:
- make docker_build
- make build_linux_amd64
build_linux_i386:
image: appleboy/golang-testing:1.10.0
pull: true
group: build
commands:
- make build_linux_i386
build_linux_arm64:
image: appleboy/golang-testing:1.10.0
pull: true
group: build
commands:
- make build_linux_arm64
build_linux_arm:
image: appleboy/golang-testing:1.10.0
pull: true
group: build
commands:
- make build_linux_arm
codecov:
image: robertstettner/drone-codecov
@@ -51,7 +72,7 @@ pipeline:
event: [ tag ]
branch: [ refs/tags/* ]
publish_server:
publish_linux_amd64:
image: plugins/docker
group: release
pull: true
@@ -62,6 +83,58 @@ pipeline:
event: [ push, tag ]
local: false
publish_alpine:
image: plugins/docker
group: release
pull: true
dockerfile: Dockerfile.alpine
secrets: [ docker_username, docker_password ]
default_tags: true
default_suffix: alpine
repo: ${DRONE_REPO}
when:
event: [ push, tag ]
local: false
publish_linux_i386:
image: plugins/docker:17.05
pull: true
secrets: [ docker_username, docker_password ]
group: release
repo: ${DRONE_REPO}
auto_tag: true
auto_tag_suffix: i386
dockerfile: Dockerfile.i386
when:
event: [ push, tag ]
local: false
publish_linux_arm64:
image: plugins/docker:17.05
pull: true
secrets: [ docker_username, docker_password ]
group: release
repo: ${DRONE_REPO}
auto_tag: true
auto_tag_suffix: arm64
dockerfile: Dockerfile.arm64
when:
event: [ push, tag ]
local: false
publish_linux_arm:
image: plugins/docker:17.05
pull: true
secrets: [ docker_username, docker_password ]
group: release
repo: ${DRONE_REPO}
auto_tag: true
auto_tag_suffix: arm
dockerfile: Dockerfile.arm
when:
event: [ push, tag ]
local: false
github:
image: plugins/github-release
secrets: [ github_release_api_key ]
+7 -4
View File
@@ -1,7 +1,10 @@
FROM centurylink/ca-certs
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>"
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone Discord" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD drone-discord /
ADD release/linux/amd64/drone-discord /bin/
ENTRYPOINT ["/drone-discord"]
ENTRYPOINT ["/bin/drone-discord"]
+13
View File
@@ -0,0 +1,13 @@
FROM alpine:3.7
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone Discord" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
RUN apk add -U --no-cache ca-certificates && \
rm -rf /var/cache/apk/*
ADD release/linux/amd64/drone-discord /bin/
ENTRYPOINT ["/bin/drone-discord"]
+10
View File
@@ -0,0 +1,10 @@
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone Discord" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD release/linux/amd64/drone-discord /bin/
ENTRYPOINT ["/bin/drone-discord"]
+10
View File
@@ -0,0 +1,10 @@
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone Discord" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD release/linux/arm64/drone-discord /bin/
ENTRYPOINT ["/bin/drone-discord"]
+10
View File
@@ -0,0 +1,10 @@
FROM plugins/base:multiarch
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone Discord" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD release/linux/i386/drone-discord /bin/
ENTRYPOINT ["/bin/drone-discord"]
+9
View File
@@ -0,0 +1,9 @@
FROM microsoft/nanoserver:10.0.14393.1884
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>" \
org.label-schema.name="Drone Discord" \
org.label-schema.vendor="Bo-Yi Wu" \
org.label-schema.schema-version="1.0"
ADD release/drone-discord.exe /drone-discord.exe
ENTRYPOINT [ "\\drone-discord.exe" ]
+12 -4
View File
@@ -120,14 +120,22 @@ release-copy:
release-check:
cd $(DIST)/release; $(foreach file,$(wildcard $(DIST)/release/$(EXECUTABLE)-*),sha256sum $(notdir $(file)) > $(notdir $(file)).sha256;)
# for docker.
docker_build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o $(DEPLOY_IMAGE)
build_linux_amd64:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/amd64/$(DEPLOY_IMAGE)
build_linux_i386:
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/i386/$(DEPLOY_IMAGE)
build_linux_arm64:
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/arm64/$(DEPLOY_IMAGE)
build_linux_arm:
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -a -tags '$(TAGS)' -ldflags '$(EXTLDFLAGS)-s -w $(LDFLAGS)' -o release/linux/arm/$(DEPLOY_IMAGE)
docker_image:
docker build -t $(DEPLOY_ACCOUNT)/$(DEPLOY_IMAGE) .
docker: static_build docker_image
docker: docker_image
docker_deploy:
ifeq ($(tag),)