diff --git a/.drone.yml b/.drone.yml index 0a5625a0..fa7798ad 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,18 +15,37 @@ steps: - name: docker path: /var/run/docker.sock - - name: github_binary_release - image: plugins/github-release + - name: docker-publish-master + image: plugins/docker + settings: + build_args: + - ARCH=amd64 + - VERSION=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:8}-head + dockerfile: package/Dockerfile + password: + from_secret: docker_password + repo: "rancher/harvester-cloud-provider" + tag: ${DRONE_BRANCH}-head-linux-amd64 + username: + from_secret: docker_username + when: + ref: + include: + - "refs/heads/master" + - "refs/heads/release/v*" + event: + - push + + - name: docker-publish + image: plugins/docker settings: - api_key: - from_secret: github_token - prerelease: true - checksum: - - sha256 - checksum_file: CHECKSUMsum-amd64.txt - checksum_flatten: true - files: - - "dist/artifacts/*" + dockerfile: package/Dockerfile + password: + from_secret: docker_password + repo: "rancher/harvester-cloud-provider" + tag: "${DRONE_TAG}-linux-amd64" + username: + from_secret: docker_username when: instance: - drone-publish.rancher.io @@ -36,17 +55,39 @@ steps: event: - tag +volumes: + - name: docker + host: + path: /var/run/docker.sock + +--- +kind: pipeline +name: arm64 + +platform: + os: linux + arch: arm64 + +steps: + - name: build + image: rancher/dapper:v0.6.0 + commands: + - dapper ci + volumes: + - name: docker + path: /var/run/docker.sock + - name: docker-publish-master image: plugins/docker settings: build_args: - - ARCH=amd64 + - ARCH=arm64 - VERSION=${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:8}-head dockerfile: package/Dockerfile password: from_secret: docker_password repo: "rancher/harvester-cloud-provider" - tag: ${DRONE_BRANCH}-head + tag: ${DRONE_BRANCH}-head-linux-arm64 username: from_secret: docker_username when: @@ -64,7 +105,7 @@ steps: password: from_secret: docker_password repo: "rancher/harvester-cloud-provider" - tag: "${DRONE_TAG}" + tag: "${DRONE_TAG}-linux-arm64" username: from_secret: docker_username when: @@ -80,3 +121,54 @@ volumes: - name: docker host: path: /var/run/docker.sock + +--- +kind: pipeline +name: manifest + +steps: + - name: push-manifest-head + image: plugins/manifest + settings: + username: + from_secret: docker_username + password: + from_secret: docker_password + target: "rancher/harvester-cloud-provider:${DRONE_BRANCH}-head" + template: "rancher/harvester-cloud-provider:${DRONE_BRANCH}-head-OS-ARCH" + ignore_missing: true + platforms: + - linux/amd64 + - linux/arm64 + when: + ref: + include: + - refs/heads/master + - refs/heads/release/v* + event: + - push + + - name: push-manifest-tag + image: plugins/manifest + settings: + username: + from_secret: docker_username + password: + from_secret: docker_password + target: "rancher/harvester-cloud-provider:${DRONE_TAG}" + template: "rancher/harvester-cloud-provider:${DRONE_TAG}-OS-ARCH" + ignore_missing: true + platforms: + - linux/amd64 + - linux/arm64 + when: + ref: + include: + - refs/head/master + - refs/tags/* + event: + - tag + +depends_on: + - amd64 + - arm64 diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 197a8233..e74e15dd 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -8,9 +8,7 @@ RUN zypper -n rm container-suseconnect && \ ## install golangci-lint -RUN if [ "${ARCH}" == "amd64" ]; then \ - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.52.2; \ - fi +RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.52.2 ENV DAPPER_ENV REPO TAG DRONE_TAG ENV DAPPER_SOURCE /go/src/github.com/harvester/harvester-cloud-provider/