mirror of
https://github.com/cnrancher/kube-explorer.git
synced 2025-08-11 11:21:38 +00:00
feat(ci): Improve drone pipeline configuration
- Separate push and tag pipeline - Use buildx to build and push multi-arch image
This commit is contained in:
parent
989d087b99
commit
29d91d06b7
388
.drone.yml
388
.drone.yml
@ -1,33 +1,121 @@
|
|||||||
---
|
type: docker
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: default-amd64
|
name: push
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
os: linux
|
os: linux
|
||||||
arch: amd64
|
arch: amd64
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- promote
|
||||||
|
include:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
node:
|
||||||
|
instance: agent-amd64
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build
|
- name: build
|
||||||
pull: default
|
image: rancher/dapper:v0.6.0
|
||||||
image: rancher/dapper:v0.5.8
|
|
||||||
commands:
|
commands:
|
||||||
- dapper ci
|
- dapper ci
|
||||||
privileged: true
|
privileged: true
|
||||||
volumes:
|
volumes:
|
||||||
- name: docker
|
- name: docker
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
- name: image-scan-head
|
||||||
|
image: aquasec/trivy
|
||||||
|
commands:
|
||||||
|
- trivy image --no-progress --ignore-unfixed --severity HIGH,CRITICAL --scanners vuln --exit-code 1 cnrancher/kube-explorer:${DRONE_COMMIT:0:7}
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
path: /var/run/docker.sock
|
||||||
when:
|
when:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
ref:
|
ref:
|
||||||
include:
|
include:
|
||||||
- "refs/heads/main"
|
- "refs/heads/main"
|
||||||
- "refs/heads/v*"
|
- "refs/heads/v*"
|
||||||
|
|
||||||
|
- name: install-buildx-support
|
||||||
|
image: tonistiigi/binfmt
|
||||||
|
privileged: true
|
||||||
|
entrypoint:
|
||||||
|
- /usr/bin/binfmt
|
||||||
|
command:
|
||||||
|
- --install
|
||||||
|
- all
|
||||||
|
when:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- pull_request
|
ref:
|
||||||
|
include:
|
||||||
|
- "refs/heads/main"
|
||||||
|
- "refs/heads/v*"
|
||||||
|
|
||||||
- name: release
|
- name: docker-publish
|
||||||
pull: default
|
image: thegeeklab/drone-docker-buildx
|
||||||
image: rancher/dapper:v0.5.8
|
privileged: true
|
||||||
|
settings:
|
||||||
|
platforms: linux/amd64,linux/arm64/v8
|
||||||
|
dockerfile: package/Dockerfile
|
||||||
|
repo: cnrancher/kube-explorer
|
||||||
|
tag: latest
|
||||||
|
username:
|
||||||
|
from_secret: docker_username
|
||||||
|
password:
|
||||||
|
from_secret: docker_password
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
ref:
|
||||||
|
include:
|
||||||
|
- "refs/heads/main"
|
||||||
|
- "refs/heads/v*"
|
||||||
|
|
||||||
|
---
|
||||||
|
type: docker
|
||||||
|
kind: pipeline
|
||||||
|
name: tag
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- promote
|
||||||
|
include:
|
||||||
|
- tag
|
||||||
|
ref:
|
||||||
|
include:
|
||||||
|
- "refs/tags/*"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
node:
|
||||||
|
instance: agent-amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: release
|
||||||
|
image: rancher/dapper:v0.6.0
|
||||||
commands:
|
commands:
|
||||||
- dapper ci
|
- dapper ci
|
||||||
privileged: true
|
privileged: true
|
||||||
@ -36,32 +124,33 @@ steps:
|
|||||||
volumes:
|
volumes:
|
||||||
- name: docker
|
- name: docker
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
- name: stage-binaries-head
|
- name: install-buildx-support
|
||||||
image: rancher/dapper:v0.5.8
|
image: tonistiigi/binfmt
|
||||||
commands:
|
privileged: true
|
||||||
- "cp -r ./bin/kube-explorer ./package/"
|
entrypoint:
|
||||||
when:
|
- /usr/bin/binfmt
|
||||||
ref:
|
command:
|
||||||
include:
|
- --install
|
||||||
- "refs/heads/main"
|
- all
|
||||||
- "refs/heads/v*"
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
- name: stage-binaries
|
- name: docker-publish
|
||||||
image: rancher/dapper:v0.5.8
|
image: thegeeklab/drone-docker-buildx
|
||||||
commands:
|
privileged: true
|
||||||
- "cp -r ./bin/kube-explorer-linux-amd64 ./package/kube-explorer"
|
settings:
|
||||||
when:
|
platforms: linux/amd64,linux/arm64/v8
|
||||||
event:
|
dockerfile: package/Dockerfile
|
||||||
- tag
|
repo: cnrancher/kube-explorer
|
||||||
|
tag: ${DRONE_TAG}
|
||||||
|
username:
|
||||||
|
from_secret: docker_username
|
||||||
|
password:
|
||||||
|
from_secret: docker_password
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
- name: github_binary_release
|
- name: github_binary_release
|
||||||
pull: default
|
|
||||||
image: plugins/github-release
|
image: plugins/github-release
|
||||||
settings:
|
settings:
|
||||||
api_key:
|
api_key:
|
||||||
@ -72,238 +161,3 @@ steps:
|
|||||||
- "bin/*"
|
- "bin/*"
|
||||||
title: "${DRONE_TAG}"
|
title: "${DRONE_TAG}"
|
||||||
overwrite: true
|
overwrite: true
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
- name: docker-publish-head
|
|
||||||
pull: default
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
dockerfile: package/Dockerfile
|
|
||||||
context: package/
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
repo: cnrancher/kube-explorer
|
|
||||||
tag: head-linux-amd64
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
when:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
- name: image-scan-head
|
|
||||||
image: aquasec/trivy
|
|
||||||
commands:
|
|
||||||
- trivy image --no-progress --ignore-unfixed --severity HIGH,CRITICAL --scanners vuln --exit-code 1 cnrancher/kube-explorer:head-linux-amd64
|
|
||||||
volumes:
|
|
||||||
- name: docker
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
when:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
- name: docker-publish
|
|
||||||
pull: default
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
dockerfile: package/Dockerfile
|
|
||||||
context: package/
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
repo: cnrancher/kube-explorer
|
|
||||||
tag: ${DRONE_TAG}-linux-amd64
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: docker
|
|
||||||
host:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
|
|
||||||
node:
|
|
||||||
instance: agent-amd64
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
- "refs/tags/*"
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- promote
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: default-arm64
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: arm64
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build
|
|
||||||
pull: default
|
|
||||||
image: rancher/dapper:v0.5.8
|
|
||||||
commands:
|
|
||||||
- dapper ci
|
|
||||||
privileged: true
|
|
||||||
volumes:
|
|
||||||
- name: docker
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
when:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
- "refs/tags/*"
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
- tag
|
|
||||||
|
|
||||||
- name: stage-binaries
|
|
||||||
image: rancher/dapper:v0.5.8
|
|
||||||
commands:
|
|
||||||
- "cp -r ./bin/* ./package/"
|
|
||||||
when:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
- "refs/tags/*"
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
- tag
|
|
||||||
|
|
||||||
- name: docker-publish-head
|
|
||||||
pull: default
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
build_args:
|
|
||||||
- ARCH=arm64
|
|
||||||
dockerfile: package/Dockerfile
|
|
||||||
context: package/
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
repo: cnrancher/kube-explorer
|
|
||||||
tag: head-linux-arm64
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
when:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
- name: docker-publish
|
|
||||||
pull: default
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
build_args:
|
|
||||||
- ARCH=arm64
|
|
||||||
dockerfile: package/Dockerfile
|
|
||||||
context: package/
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
repo: cnrancher/kube-explorer
|
|
||||||
tag: ${DRONE_TAG}-linux-arm64
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: docker
|
|
||||||
host:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
- "refs/tags/*"
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- promote
|
|
||||||
|
|
||||||
node:
|
|
||||||
instance: agent-arm64
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: manifest
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: push-manifest-head
|
|
||||||
image: plugins/manifest
|
|
||||||
settings:
|
|
||||||
ignore_missing: true
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
spec: manifest-head.tmpl
|
|
||||||
when:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
- name: push-manifest
|
|
||||||
image: plugins/manifest
|
|
||||||
settings:
|
|
||||||
ignore_missing: true
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
spec: manifest.tmpl
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: docker
|
|
||||||
host:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
|
|
||||||
node:
|
|
||||||
instance: agent-amd64
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
ref:
|
|
||||||
include:
|
|
||||||
- "refs/heads/main"
|
|
||||||
- "refs/heads/v*"
|
|
||||||
- "refs/tags/*"
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- promote
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- default-amd64
|
|
||||||
- default-arm64
|
|
||||||
|
|
||||||
...
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
image: cnrancher/kube-explorer:latest
|
|
||||||
manifests:
|
|
||||||
-
|
|
||||||
image: cnrancher/kube-explorer:head-linux-amd64
|
|
||||||
platform:
|
|
||||||
architecture: amd64
|
|
||||||
os: linux
|
|
||||||
-
|
|
||||||
image: cnrancher/kube-explorer:head-linux-arm64
|
|
||||||
platform:
|
|
||||||
architecture: arm64
|
|
||||||
os: linux
|
|
@ -1,12 +0,0 @@
|
|||||||
image: cnrancher/kube-explorer:{{build.tag}}
|
|
||||||
manifests:
|
|
||||||
-
|
|
||||||
image: cnrancher/kube-explorer:{{build.tag}}-linux-amd64
|
|
||||||
platform:
|
|
||||||
architecture: amd64
|
|
||||||
os: linux
|
|
||||||
-
|
|
||||||
image: cnrancher/kube-explorer:{{build.tag}}-linux-arm64
|
|
||||||
platform:
|
|
||||||
architecture: arm64
|
|
||||||
os: linux
|
|
@ -1,4 +1,7 @@
|
|||||||
FROM registry.suse.com/bci/bci-minimal:15.5
|
FROM registry.suse.com/bci/bci-minimal:15.5
|
||||||
|
ARG TARGETARCH
|
||||||
COPY kube-explorer entrypoint.sh /usr/bin/
|
ARG TARGETOS
|
||||||
|
ENV ARCH=${TARGETARCH:-"amd64"} OS=${TARGETOS:-"linux"}
|
||||||
|
COPY package/entrypoint.sh /usr/bin/
|
||||||
|
COPY bin/kube-explorer-${OS}-${ARCH} /usr/bin/kube-explorer
|
||||||
ENTRYPOINT ["entrypoint.sh"]
|
ENTRYPOINT ["entrypoint.sh"]
|
||||||
|
@ -46,7 +46,7 @@ else
|
|||||||
CGO_ENABLED=0 go build -tags embed \
|
CGO_ENABLED=0 go build -tags embed \
|
||||||
-ldflags \
|
-ldflags \
|
||||||
"$LD_INJECT_VALUES $LINKFLAGS" \
|
"$LD_INJECT_VALUES $LINKFLAGS" \
|
||||||
-o bin/kube-explorer
|
-o "bin/kube-explorer-$(uname | tr '[:upper:]' '[:lower:]')-${ARCH}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $DAPPER_SOURCE/bin
|
mkdir -p $DAPPER_SOURCE/bin
|
||||||
|
@ -5,14 +5,6 @@ source $(dirname $0)/version
|
|||||||
|
|
||||||
pushd $DAPPER_SOURCE
|
pushd $DAPPER_SOURCE
|
||||||
|
|
||||||
if [ -f bin/kube-explorer-linux-${ARCH} ]; then
|
docker build -f package/Dockerfile -t cnrancher/kube-explorer:$VERSION .
|
||||||
# For cross mode
|
|
||||||
cp bin/kube-explorer-linux-${ARCH} package/kube-explorer
|
|
||||||
else
|
|
||||||
# For common mode
|
|
||||||
cp bin/kube-explorer package/
|
|
||||||
fi
|
|
||||||
cd package
|
|
||||||
docker build -f Dockerfile -t cnrancher/kube-explorer:$VERSION .
|
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
@ -1 +0,0 @@
|
|||||||
Subproject commit 26e14afc0b652b0363fc38e05ef28aa99d26694c
|
|
Loading…
Reference in New Issue
Block a user