diff --git a/.gitignore b/.gitignore index b6cec9b..67cd426 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /release/ -/drone-docker-buildx* + +docker-buildx coverage.out CHANGELOG.md diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml index 7fa1d21..3ae4908 100644 --- a/.woodpecker/main.yml +++ b/.woodpecker/main.yml @@ -1,20 +1,26 @@ +branches: main + +variables: + - &platforms 'linux/amd64,linux/arm64' + pipeline: dryrun: - image: plugins/kaniko + image: woodpeckerci/plugin-docker-buildx:v20.10.18 settings: + platforms: *platforms repo: woodpeckerci/plugin-docker-buildx - tags: latest - dockerfile: Dockerfile - no_push: true + dockerfile: Dockerfile.multiarch + dry_run: true when: event: pull_request publish: - image: plugins/kaniko + image: woodpeckerci/plugin-docker-buildx:v20.10.18 settings: + platforms: *platforms repo: woodpeckerci/plugin-docker-buildx tags: latest, ${CI_COMMIT_TAG} - dockerfile: Dockerfile + dockerfile: Dockerfile.multiarch username: from_secret: docker_username password: diff --git a/Dockerfile b/Dockerfile.multiarch similarity index 80% rename from Dockerfile rename to Dockerfile.multiarch index a4c51aa..6509743 100644 --- a/Dockerfile +++ b/Dockerfile.multiarch @@ -1,9 +1,12 @@ -FROM golang:1.18-alpine as build +FROM --platform=$BUILDPLATFORM golang:1.18 as build COPY . /src WORKDIR /src -RUN CGO_ENABLED=0 go build -v -a -tags netgo -o docker-buildx ./cmd/docker-buildx +ARG TARGETOS TARGETARCH +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/go/pkg \ + make build FROM docker:20.10-dind diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2dd7bd3 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +TARGETOS ?= linux +TARGETARCH ?= amd64 +LDFLAGS := -s -w -extldflags "-static" + +build: + CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '${LDFLAGS}' -v -a -tags netgo -o docker-buildx ./cmd/docker-buildx