Support multiple arch: amd64, arm64.

Signed-off-by: yingjinhui <yingjinhui@didiglobal.com>
This commit is contained in:
yingjinhui 2022-04-24 16:48:10 +08:00
parent bb46766f63
commit c308447c08
3 changed files with 26 additions and 12 deletions

View File

@ -12,6 +12,9 @@ jobs:
if: ${{ github.repository == 'karmada-io/karmada' && github.ref == 'refs/heads/master' }}
strategy:
matrix:
arch:
- amd64
- arm64
target:
- karmada-controller-manager
- karmada-scheduler
@ -46,4 +49,8 @@ jobs:
- name: build and publish images
env:
VERSION: latest
run: make mp-image-${{ matrix.target }}
GOARCH: ${{ matrix.arch }}
# When we build binary for multiple platform, `go build` may be skipped as `$(SOURCES)` unchanged.
# So we clean the binary at first, and force to run `go build`.
# See https://github.com/karmada-io/karmada/pull/1649#issuecomment-1107959879 for more info.
run: make clean mp-image-${{ matrix.target }}

View File

@ -8,6 +8,9 @@ jobs:
name: publish to DockerHub
strategy:
matrix:
arch:
- amd64
- arm64
target:
- karmada-controller-manager
- karmada-scheduler
@ -42,4 +45,8 @@ jobs:
- name: build and publish images
env:
VERSION: ${{ github.ref_name }}
run: make mp-image-${{ matrix.target }}
GOARCH: ${{ matrix.arch }}
# When we build binary for multiple platform, `go build` may be skipped as `$(SOURCES)` unchanged.
# So we clean the binary at first, and force to run `go build`.
# See https://github.com/karmada-io/karmada/pull/1649#issuecomment-1107959879 for more info.
run: make clean mp-image-${{ matrix.target }}

View File

@ -39,61 +39,61 @@ endif
all: karmada-aggregated-apiserver karmada-controller-manager karmada-scheduler karmada-descheduler karmadactl kubectl-karmada karmada-webhook karmada-agent karmada-scheduler-estimator karmada-interpreter-webhook-example
karmada-aggregated-apiserver: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-aggregated-apiserver \
cmd/aggregated-apiserver/main.go
karmada-controller-manager: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-controller-manager \
cmd/controller-manager/controller-manager.go
karmada-scheduler: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-scheduler \
cmd/scheduler/main.go
karmada-descheduler: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-descheduler \
cmd/descheduler/main.go
karmadactl: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmadactl \
cmd/karmadactl/karmadactl.go
kubectl-karmada: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o kubectl-karmada \
cmd/kubectl-karmada/kubectl-karmada.go
karmada-webhook: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-webhook \
cmd/webhook/main.go
karmada-agent: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-agent \
cmd/agent/main.go
karmada-scheduler-estimator: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-scheduler-estimator \
cmd/scheduler-estimator/main.go
karmada-interpreter-webhook-example: $(SOURCES)
CGO_ENABLED=0 GOOS=$(GOOS) go build \
CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build \
-ldflags $(LDFLAGS) \
-o karmada-interpreter-webhook-example \
examples/customresourceinterpreter/webhook/main.go