From 1c2dfa48abb42f7e8879435b5cdd7c56c6bc194e Mon Sep 17 00:00:00 2001 From: Vincent Cui Date: Wed, 16 Mar 2022 17:06:15 +0800 Subject: [PATCH 1/2] build and push image to docker hub in a single action Signed-off-by: Vincent Cui --- .github/workflows/build-to-dockerhub.yml | 41 ++++++++++++++++++++++++ cluster/images/general/Dockerfile | 10 ++++++ 2 files changed, 51 insertions(+) create mode 100644 .github/workflows/build-to-dockerhub.yml create mode 100644 cluster/images/general/Dockerfile diff --git a/.github/workflows/build-to-dockerhub.yml b/.github/workflows/build-to-dockerhub.yml new file mode 100644 index 000000000..0f4534ea7 --- /dev/null +++ b/.github/workflows/build-to-dockerhub.yml @@ -0,0 +1,41 @@ +name: Build Images and push them to Dockerhub +on: + release: + types: + - published +jobs: + release-image: + name: Release images + strategy: + matrix: + target: + - karmada-aggregated-apiserver + - karmada-controller-manager + - karmada-scheduler + - karmada-webhook + - karmada-agent + - karmada-scheduler-estimator + - karmada-interpreter-webhook-example + runs-on: ubuntu-18.04 + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: install Go + uses: actions/setup-go@v2 + with: + go-version: 1.17.x + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Buildx + uses: docker/setup-buildx-action@v1 + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USER_NAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + env: + VERSION: ${{ github.ref_name }} + run: make mp-image-${{ matrix.target }} \ No newline at end of file diff --git a/cluster/images/general/Dockerfile b/cluster/images/general/Dockerfile new file mode 100644 index 000000000..619a6e4c2 --- /dev/null +++ b/cluster/images/general/Dockerfile @@ -0,0 +1,10 @@ +FROM golang:1.17 as builder +COPY karmada /code/karmada +WORKDIR /code/karmada +RUN make _TARGET_ + +FROM alpine:3.7 +RUN apk add -u --no-cache ca-certificates +COPY --from=builder "/code/karmada/_TARGET_" /bin/ +CMD ["/bin/_TARGET_"] + From d1f2a6549498b99fdf174c9ddfd1b5fa2d8079b2 Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Mon, 21 Mar 2022 15:37:43 +0800 Subject: [PATCH 2/2] Update workflows to release images to dockerhub Signed-off-by: RainbowMango --- ...erhub.yml => dockerhub-released-image.yml} | 30 +++++++++++-------- cluster/images/general/Dockerfile | 10 ------- 2 files changed, 17 insertions(+), 23 deletions(-) rename .github/workflows/{build-to-dockerhub.yml => dockerhub-released-image.yml} (56%) delete mode 100644 cluster/images/general/Dockerfile diff --git a/.github/workflows/build-to-dockerhub.yml b/.github/workflows/dockerhub-released-image.yml similarity index 56% rename from .github/workflows/build-to-dockerhub.yml rename to .github/workflows/dockerhub-released-image.yml index 0f4534ea7..b243c5188 100644 --- a/.github/workflows/build-to-dockerhub.yml +++ b/.github/workflows/dockerhub-released-image.yml @@ -1,41 +1,45 @@ -name: Build Images and push them to Dockerhub +name: released image to dockerhub on: release: types: - published jobs: - release-image: - name: Release images + publish-image-to-dockerhub:: + name: publish to DockerHub strategy: matrix: target: - - karmada-aggregated-apiserver - - karmada-controller-manager + - karmada-controller-manager - karmada-scheduler + - karmada-descheduler - karmada-webhook - karmada-agent - karmada-scheduler-estimator - karmada-interpreter-webhook-example + - karmada-aggregated-apiserver runs-on: ubuntu-18.04 steps: - - name: Checkout code + - name: checkout code uses: actions/checkout@v2 with: + # fetch-depth: + # 0 indicates all history for all branches and tags. + # for `git describe --tags` in Makefile. fetch-depth: 0 - name: install Go uses: actions/setup-go@v2 with: - go-version: 1.17.x - - name: Set up QEMU + go-version: 1.17.x + - name: install QEMU uses: docker/setup-qemu-action@v1 - - name: Set up Buildx + - name: install Buildx uses: docker/setup-buildx-action@v1 - - name: Login to DockerHub - uses: docker/login-action@v1 + - name: login to DockerHub + uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USER_NAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push + - name: build and publish images env: VERSION: ${{ github.ref_name }} - run: make mp-image-${{ matrix.target }} \ No newline at end of file + run: make mp-image-${{ matrix.target }} diff --git a/cluster/images/general/Dockerfile b/cluster/images/general/Dockerfile deleted file mode 100644 index 619a6e4c2..000000000 --- a/cluster/images/general/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM golang:1.17 as builder -COPY karmada /code/karmada -WORKDIR /code/karmada -RUN make _TARGET_ - -FROM alpine:3.7 -RUN apk add -u --no-cache ca-certificates -COPY --from=builder "/code/karmada/_TARGET_" /bin/ -CMD ["/bin/_TARGET_"] -