diff --git a/.chglog/CHANGELOG.tpl.md b/.chglog/CHANGELOG.tpl.md deleted file mode 100755 index 4d6bff8..0000000 --- a/.chglog/CHANGELOG.tpl.md +++ /dev/null @@ -1,23 +0,0 @@ -# Changelog - -{{ range .Versions -}} -## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }}) - -{{ range .CommitGroups -}} -### {{ .Title }} - -{{ range .Commits -}} -- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ (regexReplaceAll "(Co-\\w*-by.*)" .Subject "") | trim }} -{{ end }} -{{- end -}} - -{{- if .NoteGroups -}} -{{ range .NoteGroups -}} -### {{ .Title }} - -{{ range .Notes }} -{{ .Body }} -{{ end }} -{{ end -}} -{{ end -}} -{{ end -}} diff --git a/.chglog/config.yml b/.chglog/config.yml deleted file mode 100755 index 8548d73..0000000 --- a/.chglog/config.yml +++ /dev/null @@ -1,25 +0,0 @@ -style: github -template: CHANGELOG.tpl.md -info: - title: CHANGELOG - repository_url: https://github.com/thegeeklab/drone-docker-buildx -options: - commit_groups: - title_maps: - feat: Features - fix: Bug Fixes - perf: Performance Improvements - refactor: Code Refactoring - chore: Others - test: Testing - ci: CI Pipeline - docs: Documentation - header: - pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$" - pattern_maps: - - Type - - Scope - - Subject - notes: - keywords: - - BREAKING CHANGE diff --git a/.drone.jsonnet b/.drone.jsonnet deleted file mode 100644 index 47098e9..0000000 --- a/.drone.jsonnet +++ /dev/null @@ -1,392 +0,0 @@ -local PipelineTest = { - kind: 'pipeline', - image_pull_secrets: ['docker_config'], - name: 'test', - platform: { - os: 'linux', - arch: 'amd64', - }, - steps: [ - { - name: 'staticcheck', - image: 'golang:1.16', - commands: [ - 'go run honnef.co/go/tools/cmd/staticcheck ./...', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'lint', - image: 'golang:1.16', - commands: [ - 'go run golang.org/x/lint/golint -set_exit_status ./...', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'vet', - image: 'golang:1.16', - commands: [ - 'go vet ./...', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'test', - image: 'golang:1.16', - commands: [ - 'go test -cover ./...', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - ], - volumes: [ - { - name: 'gopath', - temp: {}, - }, - ], - trigger: { - ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'], - }, -}; - - -local PipelineBuildBinaries = { - kind: 'pipeline', - image_pull_secrets: ['docker_config'], - name: 'build-binaries', - platform: { - os: 'linux', - arch: 'amd64', - }, - steps: [ - { - name: 'build', - image: 'techknowlogick/xgo:go-1.16.x', - commands: [ - '[ -z "${DRONE_TAG}" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}', - 'mkdir -p release/', - "cd cmd/drone-docker-buildx && xgo -ldflags \"-s -w -X main.version=$BUILD_VERSION\" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm-7,linux/arm64' -out drone-docker-buildx .", - 'mv /build/* /drone/src/release/', - 'ls -l /drone/src/release/', - ], - }, - { - name: 'executable', - image: 'alpine', - commands: [ - '$(find release/ -executable -type f | grep drone-docker-buildx-linux-amd64) --help', - ], - }, - { - name: 'compress', - image: 'alpine', - commands: [ - 'apk add upx', - 'find release/ -maxdepth 1 -executable -type f -exec upx {} \\;', - 'ls -lh release/', - ], - }, - { - name: 'checksum', - image: 'alpine', - commands: [ - 'cd release/ && sha256sum * > sha256sum.txt', - ], - }, - { - name: 'changelog-generate', - image: 'thegeeklab/git-chglog', - commands: [ - 'git fetch -tq', - 'git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased unreleased}', - ], - }, - { - name: 'changelog-format', - image: 'thegeeklab/alpine-tools', - commands: [ - 'prettier CHANGELOG.md', - 'prettier -w CHANGELOG.md', - ], - }, - { - name: 'publish', - image: 'plugins/github-release', - settings: { - overwrite: true, - api_key: { - from_secret: 'github_token', - }, - files: ['release/*'], - title: '${DRONE_TAG}', - note: 'CHANGELOG.md', - }, - when: { - ref: [ - 'refs/tags/**', - ], - }, - }, - ], - depends_on: [ - 'test', - ], - trigger: { - ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'], - }, -}; - -local PipelineBuildContainer(arch='amd64') = { - kind: 'pipeline', - image_pull_secrets: ['docker_config'], - name: 'build-container-' + arch, - platform: { - os: 'linux', - arch: arch, - }, - steps: [ - { - name: 'build', - image: 'golang:1.16', - commands: [ - '[ -z "${DRONE_TAG}" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}', - 'go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/' + arch + '/drone-docker-buildx ./cmd/drone-docker-buildx', - ], - }, - { - name: 'dryrun', - image: 'plugins/docker:19', - settings: { - config: { from_secret: 'docker_config' }, - dry_run: true, - dockerfile: 'docker/Dockerfile.' + arch, - repo: 'thegeeklab/${DRONE_REPO_NAME}', - username: { from_secret: 'docker_username' }, - password: { from_secret: 'docker_password' }, - }, - depends_on: ['build'], - when: { - ref: ['refs/pull/**'], - }, - }, - { - name: 'publish-dockerhub', - image: 'plugins/docker:19', - settings: { - config: { from_secret: 'docker_config' }, - auto_tag: true, - auto_tag_suffix: arch, - dockerfile: 'docker/Dockerfile.' + arch, - repo: 'thegeeklab/${DRONE_REPO_NAME}', - username: { from_secret: 'docker_username' }, - password: { from_secret: 'docker_password' }, - }, - when: { - ref: ['refs/heads/main', 'refs/tags/**'], - }, - depends_on: ['dryrun'], - }, - { - name: 'publish-quay', - image: 'plugins/docker:19', - settings: { - config: { from_secret: 'docker_config' }, - auto_tag: true, - auto_tag_suffix: arch, - dockerfile: 'docker/Dockerfile.' + arch, - registry: 'quay.io', - repo: 'quay.io/thegeeklab/${DRONE_REPO_NAME}', - username: { from_secret: 'quay_username' }, - password: { from_secret: 'quay_password' }, - }, - when: { - ref: ['refs/heads/main', 'refs/tags/**'], - }, - depends_on: ['dryrun'], - }, - ], - depends_on: [ - 'test', - ], - trigger: { - ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'], - }, -}; - -local PipelineDocs = { - kind: 'pipeline', - name: 'docs', - platform: { - os: 'linux', - arch: 'amd64', - }, - concurrency: { - limit: 1, - }, - steps: [ - { - name: 'markdownlint', - image: 'thegeeklab/markdownlint-cli', - commands: [ - "markdownlint 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md'", - ], - }, - { - name: 'spellcheck', - image: 'node:lts-alpine', - commands: [ - 'npm install -g spellchecker-cli', - "spellchecker --files '_docs/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls --no-suggestions", - ], - environment: { - FORCE_COLOR: true, - NPM_CONFIG_LOGLEVEL: 'error', - }, - }, - { - name: 'publish', - image: 'plugins/gh-pages', - settings: { - username: { from_secret: 'github_username' }, - password: { from_secret: 'github_token' }, - pages_directory: '_docs/', - target_branch: 'docs', - }, - when: { - ref: ['refs/heads/main'], - }, - }, - ], - depends_on: [ - 'build-binaries', - 'build-container-amd64', - 'build-container-arm64', - ], - trigger: { - ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'], - }, -}; - -local PipelineNotifications = { - kind: 'pipeline', - image_pull_secrets: ['docker_config'], - name: 'notifications', - platform: { - os: 'linux', - arch: 'amd64', - }, - steps: [ - { - image: 'plugins/manifest', - name: 'manifest-dockerhub', - settings: { - ignore_missing: true, - auto_tag: true, - username: { from_secret: 'docker_username' }, - password: { from_secret: 'docker_password' }, - spec: 'docker/manifest.tmpl', - }, - when: { - status: ['success'], - }, - }, - { - image: 'plugins/manifest', - name: 'manifest-quay', - settings: { - ignore_missing: true, - auto_tag: true, - username: { from_secret: 'quay_username' }, - password: { from_secret: 'quay_password' }, - spec: 'docker/manifest-quay.tmpl', - }, - when: { - status: ['success'], - }, - }, - { - name: 'pushrm-dockerhub', - image: 'chko/docker-pushrm:1', - environment: { - DOCKER_PASS: { - from_secret: 'docker_password', - }, - DOCKER_USER: { - from_secret: 'docker_username', - }, - PUSHRM_FILE: 'README.md', - PUSHRM_SHORT: 'Drone plugin to build multiarch Docker images with buildx', - PUSHRM_TARGET: 'thegeeklab/${DRONE_REPO_NAME}', - }, - when: { - status: ['success'], - }, - }, - { - name: 'pushrm-quay', - image: 'chko/docker-pushrm:1', - environment: { - APIKEY__QUAY_IO: { - from_secret: 'quay_token', - }, - PUSHRM_FILE: 'README.md', - PUSHRM_TARGET: 'quay.io/thegeeklab/${DRONE_REPO_NAME}', - }, - when: { - status: ['success'], - }, - }, - { - name: 'matrix', - image: 'thegeeklab/drone-matrix', - settings: { - homeserver: { from_secret: 'matrix_homeserver' }, - roomid: { from_secret: 'matrix_roomid' }, - template: 'Status: **{{ build.Status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.Link }}){{#if build.Branch}} ({{ build.Branch }}){{/if}} by {{ commit.Author }}
Message: {{ commit.Message.Title }}', - username: { from_secret: 'matrix_username' }, - password: { from_secret: 'matrix_password' }, - }, - when: { - status: ['success', 'failure'], - }, - }, - ], - depends_on: [ - 'docs', - ], - trigger: { - ref: ['refs/heads/main', 'refs/tags/**'], - status: ['success', 'failure'], - }, -}; - -[ - PipelineTest, - PipelineBuildBinaries, - PipelineBuildContainer(arch='amd64'), - PipelineBuildContainer(arch='arm64'), - PipelineDocs, - PipelineNotifications, -] diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index 0d1e73a..0000000 --- a/.drone.yml +++ /dev/null @@ -1,447 +0,0 @@ ---- -kind: pipeline -name: test - -platform: - os: linux - arch: amd64 - -steps: - - name: staticcheck - image: golang:1.16 - commands: - - go run honnef.co/go/tools/cmd/staticcheck ./... - volumes: - - name: gopath - path: /go - - - name: lint - image: golang:1.16 - commands: - - go run golang.org/x/lint/golint -set_exit_status ./... - volumes: - - name: gopath - path: /go - - - name: vet - image: golang:1.16 - commands: - - go vet ./... - volumes: - - name: gopath - path: /go - - - name: test - image: golang:1.16 - commands: - - go test -cover ./... - volumes: - - name: gopath - path: /go - -volumes: - - name: gopath - temp: {} - -image_pull_secrets: - - docker_config - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - ---- -kind: pipeline -name: build-binaries - -platform: - os: linux - arch: amd64 - -steps: - - name: build - image: techknowlogick/xgo:go-1.16.x - commands: - - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" - - mkdir -p release/ - - cd cmd/drone-docker-buildx && xgo -ldflags "-s -w -X main.version=$BUILD_VERSION" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm-7,linux/arm64' -out drone-docker-buildx . - - mv /build/* /drone/src/release/ - - ls -l /drone/src/release/ - - - name: executable - image: alpine - commands: - - $(find release/ -executable -type f | grep drone-docker-buildx-linux-amd64) --help - - - name: compress - image: alpine - commands: - - apk add upx - - find release/ -maxdepth 1 -executable -type f -exec upx {} \; - - ls -lh release/ - - - name: checksum - image: alpine - commands: - - cd release/ && sha256sum * > sha256sum.txt - - - name: changelog-generate - image: thegeeklab/git-chglog - commands: - - git fetch -tq - - git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased unreleased} - - - name: changelog-format - image: thegeeklab/alpine-tools - commands: - - prettier CHANGELOG.md - - prettier -w CHANGELOG.md - - - name: publish - image: plugins/github-release - settings: - api_key: - from_secret: github_token - files: - - release/* - note: CHANGELOG.md - overwrite: true - title: ${DRONE_TAG} - when: - ref: - - refs/tags/** - -image_pull_secrets: - - docker_config - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - -depends_on: - - test - ---- -kind: pipeline -name: build-container-amd64 - -platform: - os: linux - arch: amd64 - -steps: - - name: build - image: golang:1.16 - commands: - - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" - - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/amd64/drone-docker-buildx ./cmd/drone-docker-buildx - - - name: dryrun - image: plugins/docker:19 - settings: - config: - from_secret: docker_config - dockerfile: docker/Dockerfile.amd64 - dry_run: true - password: - from_secret: docker_password - repo: thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: docker_username - when: - ref: - - refs/pull/** - depends_on: - - build - - - name: publish-dockerhub - image: plugins/docker:19 - settings: - auto_tag: true - auto_tag_suffix: amd64 - config: - from_secret: docker_config - dockerfile: docker/Dockerfile.amd64 - password: - from_secret: docker_password - repo: thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: docker_username - when: - ref: - - refs/heads/main - - refs/tags/** - depends_on: - - dryrun - - - name: publish-quay - image: plugins/docker:19 - settings: - auto_tag: true - auto_tag_suffix: amd64 - config: - from_secret: docker_config - dockerfile: docker/Dockerfile.amd64 - password: - from_secret: quay_password - registry: quay.io - repo: quay.io/thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: quay_username - when: - ref: - - refs/heads/main - - refs/tags/** - depends_on: - - dryrun - -image_pull_secrets: - - docker_config - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - -depends_on: - - test - ---- -kind: pipeline -name: build-container-arm64 - -platform: - os: linux - arch: arm64 - -steps: - - name: build - image: golang:1.16 - commands: - - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" - - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/arm64/drone-docker-buildx ./cmd/drone-docker-buildx - - - name: dryrun - image: plugins/docker:19 - settings: - config: - from_secret: docker_config - dockerfile: docker/Dockerfile.arm64 - dry_run: true - password: - from_secret: docker_password - repo: thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: docker_username - when: - ref: - - refs/pull/** - depends_on: - - build - - - name: publish-dockerhub - image: plugins/docker:19 - settings: - auto_tag: true - auto_tag_suffix: arm64 - config: - from_secret: docker_config - dockerfile: docker/Dockerfile.arm64 - password: - from_secret: docker_password - repo: thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: docker_username - when: - ref: - - refs/heads/main - - refs/tags/** - depends_on: - - dryrun - - - name: publish-quay - image: plugins/docker:19 - settings: - auto_tag: true - auto_tag_suffix: arm64 - config: - from_secret: docker_config - dockerfile: docker/Dockerfile.arm64 - password: - from_secret: quay_password - registry: quay.io - repo: quay.io/thegeeklab/${DRONE_REPO_NAME} - username: - from_secret: quay_username - when: - ref: - - refs/heads/main - - refs/tags/** - depends_on: - - dryrun - -image_pull_secrets: - - docker_config - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - -depends_on: - - test - ---- -kind: pipeline -name: docs - -platform: - os: linux - arch: amd64 - -concurrency: - limit: 1 - -steps: - - name: markdownlint - image: thegeeklab/markdownlint-cli - commands: - - markdownlint 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' - - - name: spellcheck - image: node:lts-alpine - commands: - - npm install -g spellchecker-cli - - spellchecker --files '_docs/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls --no-suggestions - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - - - name: publish - image: plugins/gh-pages - settings: - pages_directory: _docs/ - password: - from_secret: github_token - target_branch: docs - username: - from_secret: github_username - when: - ref: - - refs/heads/main - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - -depends_on: - - build-binaries - - build-container-amd64 - - build-container-arm64 - ---- -kind: pipeline -name: notifications - -platform: - os: linux - arch: amd64 - -steps: - - name: manifest-dockerhub - image: plugins/manifest - settings: - auto_tag: true - ignore_missing: true - password: - from_secret: docker_password - spec: docker/manifest.tmpl - username: - from_secret: docker_username - when: - status: - - success - - - name: manifest-quay - image: plugins/manifest - settings: - auto_tag: true - ignore_missing: true - password: - from_secret: quay_password - spec: docker/manifest-quay.tmpl - username: - from_secret: quay_username - when: - status: - - success - - - name: pushrm-dockerhub - image: chko/docker-pushrm:1 - environment: - DOCKER_PASS: - from_secret: docker_password - DOCKER_USER: - from_secret: docker_username - PUSHRM_FILE: README.md - PUSHRM_SHORT: Drone plugin to build multiarch Docker images with buildx - PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME} - when: - status: - - success - - - name: pushrm-quay - image: chko/docker-pushrm:1 - environment: - APIKEY__QUAY_IO: - from_secret: quay_token - PUSHRM_FILE: README.md - PUSHRM_TARGET: quay.io/thegeeklab/${DRONE_REPO_NAME} - when: - status: - - success - - - name: matrix - image: thegeeklab/drone-matrix - settings: - homeserver: - from_secret: matrix_homeserver - password: - from_secret: matrix_password - roomid: - from_secret: matrix_roomid - template: "Status: **{{ build.Status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.Link }}){{#if build.Branch}} ({{ build.Branch }}){{/if}} by {{ commit.Author }}
Message: {{ commit.Message.Title }}" - username: - from_secret: matrix_username - when: - status: - - success - - failure - -image_pull_secrets: - - docker_config - -trigger: - ref: - - refs/heads/main - - refs/tags/** - status: - - success - - failure - -depends_on: - - docs - ---- -kind: signature -hmac: ca68910cbef8d7a04ff6c88e9370315b1ac0b26efd044d94868c9f1b613ba174 - -... diff --git a/.github/settings.yml b/.github/settings.yml deleted file mode 100644 index ab36ba6..0000000 --- a/.github/settings.yml +++ /dev/null @@ -1,65 +0,0 @@ -repository: - name: drone-docker-buildx - description: Drone plugin to build multiarch Docker images with buildx - homepage: https://drone-plugin-index.geekdocs.de/plugins/drone-docker-buildx - topics: drone, drone-plugin - - private: false - has_issues: true - has_wiki: false - has_downloads: true - - default_branch: main - - allow_squash_merge: true - allow_merge_commit: true - allow_rebase_merge: true - -labels: - - name: bug - color: d73a4a - description: Something isn't working - - name: documentation - color: 0075ca - description: Improvements or additions to documentation - - name: duplicate - color: cfd3d7 - description: This issue or pull request already exists - - name: enhancement - color: a2eeef - description: New feature or request - - name: good first issue - color: 7057ff - description: Good for newcomers - - name: help wanted - color: 008672 - description: Extra attention is needed - - name: invalid - color: e4e669 - description: This doesn't seem right - - name: question - color: d876e3 - description: Further information is requested - - name: wontfix - color: ffffff - description: This will not be worked on - -branches: - - name: main - protection: - required_pull_request_reviews: null - required_status_checks: - strict: false - contexts: - - continuous-integration/drone/pr - enforce_admins: null - restrictions: null - - name: docs - protection: - required_pull_request_reviews: null - required_status_checks: null - enforce_admins: true - restrictions: - users: [] - teams: - - bot diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml new file mode 100644 index 0000000..5e5fd09 --- /dev/null +++ b/.woodpecker/main.yml @@ -0,0 +1,10 @@ +pipeline: + build: + image: golang:1.17 + commands: + - go build + - go test + + publish: + image: plugins/docker + repo: foo/bar diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c471f59..1ca4ef9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,7 +3,7 @@ ## Security If you think you have found a **security issue**, please do not mention it in this repository. -Instead, send an email to security@thegeeklab.de with as many details as possible so it can be handled confidential. +Instead, send an email to security@spacebear.ee with as many details as possible so it can be handled confidential. ## Bug Reports and Feature Requests diff --git a/docker/Dockerfile.amd64 b/Dockerfile similarity index 100% rename from docker/Dockerfile.amd64 rename to Dockerfile diff --git a/README.md b/README.md index b7f5fb9..95546bd 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,14 @@ -# drone-docker-buildx +# plugin-docker-buildx -Drone plugin to build multiarch Docker images with buildx +Woodpecker CI plugin to build multiarch Docker images with buildx -[![Build Status](https://img.shields.io/drone/build/thegeeklab/drone-docker-buildx?logo=drone&server=https%3A%2F%2Fdrone.thegeeklab.de)](https://drone.thegeeklab.de/thegeeklab/drone-docker-buildx) -[![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/drone-docker-buildx) -[![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/drone-docker-buildx) -[![Go Report Card](https://goreportcard.com/badge/github.com/thegeeklab/drone-docker-buildx)](https://goreportcard.com/report/github.com/thegeeklab/drone-docker-buildx) -[![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/drone-docker-buildx)](https://github.com/thegeeklab/drone-docker-buildx/graphs/contributors) -[![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/drone-docker-buildx) -[![License: MIT](https://img.shields.io/github/license/thegeeklab/drone-docker-buildx)](https://github.com/thegeeklab/drone-docker-buildx/blob/main/LICENSE) - -Drone plugin to build multiarch Docker images with buildx. This plugin is a fork of [drone-plugins/drone-docker](https://github.com/drone-plugins/drone-docker). You can find the full documentation at You can find the full documentation at [https://drone-plugin-index.geekdocs.de](https://drone-plugin-index.geekdocs.de/plugins/drone-docker-buildx). - -## Versioning - -Tags are following the main Docker version e.g. `20.10`, the second part is reflecting the plugin "version". A full example would be `20.10.5`. - -## Community - - - - -- [BitProcessor/drone-docker-buildx-ecr](https://github.com/BitProcessor/drone-docker-buildx-ecr) by [@BitProcessor](https://github.com/BitProcessor) - - - +Woodpecker CI plugin to build multiarch Docker images with buildx. This plugin is a fork of [thegeeklab/drone-docker-buildx](https://github.com/thegeeklab/drone-docker-buildx/) which itself is a fork of [drone-plugins/drone-docker](https://github.com/drone-plugins/drone-docker). You can find the full documentation at You can find the full documentation at [woodpecker-plugins.codeberg.page](https://woodpecker-plugins.codeberg.page/plugins/drone-docker-buildx). ## Contributors -Special thanks goes to all [contributors](https://github.com/thegeeklab/drone-docker-buildx/graphs/contributors). If you would like to contribute, -please see the [instructions](https://github.com/thegeeklab/drone-docker-buildx/blob/main/CONTRIBUTING.md). +Special thanks goes to all [contributors](https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/activity). If you would like to contribute, +please see the [instructions](https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/src/branch/main/CONTRIBUTING.md). ## License -This project is licensed under the MIT License - see the [LICENSE](https://github.com/thegeeklab/drone-docker-buildx/blob/main/LICENSE) file for details. +This project is licensed under the MIT License - see the [LICENSE](https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/src/branch/main/LICENSE) file for details. diff --git a/_docs/_index.md b/_docs/_index.md deleted file mode 100644 index 6198386..0000000 --- a/_docs/_index.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: drone-docker-buildx ---- - -[![Build Status](https://img.shields.io/drone/build/thegeeklab/drone-docker-buildx?logo=drone&server=https%3A%2F%2Fdrone.thegeeklab.de)](https://drone.thegeeklab.de/thegeeklab/drone-docker-buildx) -[![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/drone-docker-buildx) -[![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/drone-docker-buildx) -[![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/drone-docker-buildx)](https://github.com/thegeeklab/drone-docker-buildx/graphs/contributors) -[![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/drone-docker-buildx) -[![License: MIT](https://img.shields.io/github/license/thegeeklab/drone-docker-buildx)](https://github.com/thegeeklab/drone-docker-buildx/blob/main/LICENSE) - -Drone plugin to build and publish multiarch Docker images with buildx. - - - -{{< toc >}} - - - -## Versioning - -Tags are following the main Docker version e.g. `20.10`, the second part is reflecting the plugin "version". A full example would be `20.10.5`. - -## Build - -Build the binary with the following command: - -```Shell -export GOOS=linux -export GOARCH=amd64 -export CGO_ENABLED=0 -export GO111MODULE=on - -go build -v -a -tags netgo -o release/drone-docker-buildx -``` - -Build the Docker image with the following command: - -```Shell -docker build --file docker/Dockerfile.amd64 --tag thegeeklab/drone-docker-buildx . -``` - -## Usage - -{{< hint warning >}} -**Note**\ -Be aware that the this plugin requires privileged capabilities, otherwise the -integrated Docker daemon is not able to start. -{{< /hint >}} - -```Shell -docker run --rm \ - -e PLUGIN_TAG=latest \ - -e PLUGIN_REPO=octocat/hello-world \ - -e DRONE_COMMIT_SHA=00000000 \ - -v $(pwd):$(pwd) \ - -w $(pwd) \ - --privileged \ - thegeeklab/drone-docker-buildx --dry-run -``` - -### Parameters - -dry_run -: disables docker push - -drone_remote_url -: sets the git remote url - -mirror -: sets a registry mirror to pull images - -storage_driver -: sets the docker daemon storage driver - -storage_path -: sets the docker daemon storage path (default `/var/lib/docker`) - -bip -: allows the docker daemon to bride ip address - -mtu -: sets docker daemon custom mtu setting - -custom_dns -: sets custom docker daemon dns server - -custom_dns_search -: sets custom docker daemon dns search domain - -insecure -: allows the docker daemon to use insecure registries - -ipv6 -: enables docker daemon ipv6 support - -experimental -: enables docker daemon experimental mode - -debug -: enables verbose debug mode for the docker daemon - -daemon_off -: disables the startup of the docker daemon - -buildkit_config -: sets content of the docker buildkit json config - -dockerfile -: sets dockerfile to use for the image build (default `./Dockerfile`) - -context -: sets the path of the build context to use (default `./`) - -tags -: sets repository tags to use for the image; tags can also be loaded from a `.tags` file (default `latest`) - -auto_tag -: generates tag names automatically based on git branch and git tag - -auto_tag_suffix -: generates tag names with the given suffix - -build_args -: sets custom build arguments for the build - -build_args_from_env -: forwards environment variables as custom arguments to the build - -quiet -: enables suppression of the build output - -target -: sets the build target to use - -cache_from -: sets images to consider as cache sources - -pull_image -: enforces to pull base image at build time (default `true`) - -compress -: enables compression og the build context using gzip - -repo -: sets repository name for the image - -registry -: sets docker registry to authenticate with (default `https://index.docker.io/v1/`) - -username -: sets username to authenticates with - -password -: sets password to authenticates with - -email -: sets email address to authenticates with - -config -: sets content of the docker daemon json config - -purge -: enables cleanup of the docker environment at the end of a build (default `true`) - -no_cache -: disables the usage of cached intermediate containers - -add_host -: sets additional host:ip mapping - -platforms -: sets target platform for build diff --git a/cmd/drone-docker-buildx/config.go b/cmd/drone-docker-buildx/config.go index 20c7943..11b6828 100644 --- a/cmd/drone-docker-buildx/config.go +++ b/cmd/drone-docker-buildx/config.go @@ -1,7 +1,7 @@ package main import ( - "github.com/thegeeklab/drone-docker-buildx/plugin" + "codeberg.org/woodpecker-plugins/plugin-docker-buildx/plugin" "github.com/urfave/cli/v2" ) @@ -16,7 +16,7 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { }, &cli.StringFlag{ Name: "remote.url", - EnvVars: []string{"DRONE_REMOTE_URL"}, + EnvVars: []string{"CI_REMOTE_URL", "DRONE_REMOTE_URL"}, Usage: "sets the git remote url", Destination: &settings.Build.Remote, }, diff --git a/cmd/drone-docker-buildx/main.go b/cmd/drone-docker-buildx/main.go index c7afafe..4e835f6 100644 --- a/cmd/drone-docker-buildx/main.go +++ b/cmd/drone-docker-buildx/main.go @@ -3,8 +3,8 @@ package main import ( "os" + "codeberg.org/woodpecker-plugins/plugin-docker-buildx/plugin" "github.com/joho/godotenv" - "github.com/thegeeklab/drone-docker-buildx/plugin" "github.com/urfave/cli/v2" "github.com/drone-plugins/drone-plugin-lib/errors" diff --git a/docker/Dockerfile.arm b/docker/Dockerfile.arm deleted file mode 100644 index c8297c8..0000000 --- a/docker/Dockerfile.arm +++ /dev/null @@ -1,27 +0,0 @@ -FROM arm32v7/docker:20.10-dind - -LABEL maintainer="Robert Kaussow " -LABEL org.opencontainers.image.authors="Robert Kaussow " -LABEL org.opencontainers.image.title="drone-docker-buildx" -LABEL org.opencontainers.image.url="https://github.com/thegeeklab/drone-docker-buildx" -LABEL org.opencontainers.image.source="https://github.com/thegeeklab/drone-docker-buildx" -LABEL org.opencontainers.image.documentation="https://github.com/thegeeklab/drone-docker-buildx" - -ARG BUILDX_VERSION - -# renovate: datasource=github-releases depName=docker/buildx -ENV BUILDX_VERSION="${BUILDX_VERSION:-v0.6.3}" - -ENV DOCKER_HOST=unix:///var/run/docker.sock - -RUN apk --update add --virtual .build-deps curl && \ - mkdir -p /usr/lib/docker/cli-plugins/ && \ - curl -SsL -o /usr/lib/docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION##v}/buildx-v${BUILDX_VERSION##v}.linux-arm-v7" && \ - chmod 755 /usr/lib/docker/cli-plugins/docker-buildx && \ - apk del .build-deps && \ - rm -rf /var/cache/apk/* && \ - rm -rf /tmp/* - -ADD release/arm/drone-docker-buildx /bin/ - -ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "drone-docker-buildx"] diff --git a/docker/Dockerfile.arm64 b/docker/Dockerfile.arm64 deleted file mode 100644 index 6d28784..0000000 --- a/docker/Dockerfile.arm64 +++ /dev/null @@ -1,27 +0,0 @@ -FROM arm64v8/docker:20.10-dind@sha256:25a2c533ed67819c4726fad3ccaa5a1fbcfd602149d1b63c663b620714ec13fa - -LABEL maintainer="Robert Kaussow " -LABEL org.opencontainers.image.authors="Robert Kaussow " -LABEL org.opencontainers.image.title="drone-docker-buildx" -LABEL org.opencontainers.image.url="https://github.com/thegeeklab/drone-docker-buildx" -LABEL org.opencontainers.image.source="https://github.com/thegeeklab/drone-docker-buildx" -LABEL org.opencontainers.image.documentation="https://github.com/thegeeklab/drone-docker-buildx" - -ARG BUILDX_VERSION - -# renovate: datasource=github-releases depName=docker/buildx -ENV BUILDX_VERSION="${BUILDX_VERSION:-v0.6.3}" - -ENV DOCKER_HOST=unix:///var/run/docker.sock - -RUN apk --update add --virtual .build-deps curl && \ - mkdir -p /usr/lib/docker/cli-plugins/ && \ - curl -SsL -o /usr/lib/docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION##v}/buildx-v${BUILDX_VERSION##v}.linux-arm64" && \ - chmod 755 /usr/lib/docker/cli-plugins/docker-buildx && \ - apk del .build-deps && \ - rm -rf /var/cache/apk/* && \ - rm -rf /tmp/* - -ADD release/arm64/drone-docker-buildx /bin/ - -ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "drone-docker-buildx"] diff --git a/docker/manifest-quay.tmpl b/docker/manifest-quay.tmpl deleted file mode 100644 index 81d1831..0000000 --- a/docker/manifest-quay.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -image: quay.io/thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} -{{#if build.tags}} -tags: -{{#each build.tags}} - - {{this}} -{{/each}} -{{/if}} -manifests: - - image: quay.io/thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 - platform: - architecture: amd64 - os: linux - - - image: quay.io/thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 - platform: - architecture: arm64 - os: linux - variant: v8 - - - image: quay.io/thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm - platform: - architecture: arm - os: linux - variant: v7 diff --git a/docker/manifest.tmpl b/docker/manifest.tmpl deleted file mode 100644 index 2a73950..0000000 --- a/docker/manifest.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -image: thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} -{{#if build.tags}} -tags: -{{#each build.tags}} - - {{this}} -{{/each}} -{{/if}} -manifests: - - image: thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64 - platform: - architecture: amd64 - os: linux - - - image: thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64 - platform: - architecture: arm64 - os: linux - variant: v8 - - - image: thegeeklab/drone-docker-buildx:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm - platform: - architecture: arm - os: linux - variant: v7 diff --git a/go.mod b/go.mod index 28aca72..d1fba02 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ -module github.com/thegeeklab/drone-docker-buildx +module codeberg.org/woodpecker-plugins/plugin-docker-buildx -go 1.16 +go 1.17 require ( github.com/coreos/go-semver v0.3.0