From 962f34fa7a130f2bbf3eae0d03ff61baea47a7ba Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Thu, 21 Nov 2024 14:10:29 +0900 Subject: [PATCH] feat: use Docker Hub instead (#134) * use docker hub instead Signed-off-by: Yutaka Kondo * add linefeed Signed-off-by: Yutaka Kondo * add linefeed Signed-off-by: Yutaka Kondo * fix cache-from/to Signed-off-by: Yutaka Kondo * fix cache-from/to Signed-off-by: Yutaka Kondo * decrease vcpu Signed-off-by: Yutaka Kondo --------- Signed-off-by: Yutaka Kondo --- .../docker-build-and-push-cuda/action.yaml | 20 ++++++----- .../actions/docker-build-and-push/action.yaml | 34 ++++++++++--------- .github/actions/docker-build/action.yaml | 10 +++--- .../docker-build-and-push-arm64.yaml | 16 +++++---- .github/workflows/docker-build-and-push.yaml | 14 ++++---- .github/workflows/health-check-arm64.yaml | 3 +- .github/workflows/health-check-nightly.yaml | 1 + .github/workflows/health-check.yaml | 1 + 8 files changed, 56 insertions(+), 43 deletions(-) diff --git a/.github/actions/docker-build-and-push-cuda/action.yaml b/.github/actions/docker-build-and-push-cuda/action.yaml index fc28683d892..77334ddcbd5 100644 --- a/.github/actions/docker-build-and-push-cuda/action.yaml +++ b/.github/actions/docker-build-and-push-cuda/action.yaml @@ -11,6 +11,9 @@ inputs: build-args: description: Additional build args. required: false + dockerhub-token: + description: Docker Hub token. + required: true runs: using: composite @@ -68,7 +71,7 @@ runs: id: meta-base-cuda uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=base-cuda-${{ inputs.platform }} type=raw,value=base-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -80,7 +83,7 @@ runs: id: meta-universe-sensing-perception-devel-cuda uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-sensing-perception-devel-cuda-${{ inputs.platform }} type=raw,value=universe-sensing-perception-devel-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -92,7 +95,7 @@ runs: id: meta-universe-sensing-perception-cuda uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-sensing-perception-cuda-${{ inputs.platform }} type=raw,value=universe-sensing-perception-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -104,7 +107,7 @@ runs: id: meta-universe-devel-cuda uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-devel-cuda-${{ inputs.platform }} type=raw,value=universe-devel-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -116,7 +119,7 @@ runs: id: meta-universe-cuda uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-cuda-${{ inputs.platform }} type=raw,value=universe-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -124,14 +127,13 @@ runs: flavor: | latest=auto - - name: Login to GitHub Container Registry + - name: Login to Docker Hub uses: docker/login-action@v3 with: - registry: ghcr.io username: ${{ github.repository_owner }} - password: ${{ github.token }} + password: ${{ inputs.dockerhub-token }} - - name: Build and Push to GitHub Container Registry + - name: Build and Push to Docker Hub uses: docker/bake-action@v5 with: push: true diff --git a/.github/actions/docker-build-and-push/action.yaml b/.github/actions/docker-build-and-push/action.yaml index 3e3bc857fea..c33d23a98fa 100644 --- a/.github/actions/docker-build-and-push/action.yaml +++ b/.github/actions/docker-build-and-push/action.yaml @@ -11,6 +11,9 @@ inputs: build-args: description: Additional build args. required: false + dockerhub-token: + description: Docker Hub token. + required: true runs: using: composite @@ -68,7 +71,7 @@ runs: id: meta-base uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=base-${{ inputs.platform }} type=raw,value=base-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -80,7 +83,7 @@ runs: id: meta-core-devel uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=core-devel-${{ inputs.platform }} type=raw,value=core-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -92,7 +95,7 @@ runs: id: meta-universe-sensing-perception-devel uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-sensing-perception-devel-${{ inputs.platform }} type=raw,value=universe-sensing-perception-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -104,7 +107,7 @@ runs: id: meta-universe-sensing-perception uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-sensing-perception-${{ inputs.platform }} type=raw,value=universe-sensing-perception-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -116,7 +119,7 @@ runs: id: meta-universe-localization-mapping-devel uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-localization-mapping-devel-${{ inputs.platform }} type=raw,value=universe-localization-mapping-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -128,7 +131,7 @@ runs: id: meta-universe-localization-mapping uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-localization-mapping-${{ inputs.platform }} type=raw,value=universe-localization-mapping-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -140,7 +143,7 @@ runs: id: meta-universe-planning-control-devel uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-planning-control-devel-${{ inputs.platform }} type=raw,value=universe-planning-control-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -152,7 +155,7 @@ runs: id: meta-universe-planning-control uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-planning-control-${{ inputs.platform }} type=raw,value=universe-planning-control-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -164,7 +167,7 @@ runs: id: meta-universe-vehicle-system-devel uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-vehicle-system-devel-${{ inputs.platform }} type=raw,value=universe-vehicle-system-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -176,7 +179,7 @@ runs: id: meta-universe-vehicle-system uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-vehicle-system-${{ inputs.platform }} type=raw,value=universe-vehicle-system-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -188,7 +191,7 @@ runs: id: meta-universe-devel uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-devel-${{ inputs.platform }} type=raw,value=universe-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -200,7 +203,7 @@ runs: id: meta-universe uses: docker/metadata-action@v5 with: - images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }} + images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | type=raw,value=universe-${{ inputs.platform }} type=raw,value=universe-${{ steps.date.outputs.date }}-${{ inputs.platform }} @@ -208,14 +211,13 @@ runs: flavor: | latest=auto - - name: Login to GitHub Container Registry + - name: Login to Docker Hub uses: docker/login-action@v3 with: - registry: ghcr.io username: ${{ github.repository_owner }} - password: ${{ github.token }} + password: ${{ inputs.dockerhub-token }} - - name: Build and Push to GitHub Container Registry + - name: Build and Push to Docker Hub uses: docker/bake-action@v5 with: push: true diff --git a/.github/actions/docker-build/action.yaml b/.github/actions/docker-build/action.yaml index df338a836d0..8036db9626c 100644 --- a/.github/actions/docker-build/action.yaml +++ b/.github/actions/docker-build/action.yaml @@ -15,6 +15,9 @@ inputs: build-args: description: Additional build args. required: false + dockerhub-token: + description: Docker Hub token. + required: true runs: using: composite @@ -93,12 +96,11 @@ runs: } skip-extraction: ${{ steps.cache-ccache.outputs.cache-hit && steps.cache-apt-get.outputs.cache-hit }} - - name: Login to GitHub Container Registry + - name: Login to Docker Hub uses: docker/login-action@v3 with: - registry: ghcr.io username: ${{ github.repository_owner }} - password: ${{ github.token }} + password: ${{ inputs.dockerhub-token }} - name: Run docker build uses: docker/build-push-action@v6 @@ -107,4 +109,4 @@ runs: context: . push: false build-args: ${{ inputs.build-args }} - cache-from: type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ inputs.platform }}-${{ inputs.cache-tag-suffix }} + cache-from: type=registry,ref=${{ github.repository }}-buildcache:${{ inputs.platform }}-${{ inputs.cache-tag-suffix }} diff --git a/.github/workflows/docker-build-and-push-arm64.yaml b/.github/workflows/docker-build-and-push-arm64.yaml index e6da14db8b6..7ec7c92e5a7 100644 --- a/.github/workflows/docker-build-and-push-arm64.yaml +++ b/.github/workflows/docker-build-and-push-arm64.yaml @@ -13,7 +13,7 @@ jobs: docker-build-and-push: needs: load-env - runs-on: buildjet-16vcpu-ubuntu-2204-arm + runs-on: buildjet-8vcpu-ubuntu-2204-arm steps: - name: Check if PR author is the specific user id: author-check @@ -63,9 +63,10 @@ jobs: *.args.ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }} *.args.BASE_IMAGE=${{ needs.load-env.outputs.base_image }} *.args.LIB_DIR=aarch64 - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:arm64-${{ github.ref_name }} - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:arm64-main - *.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:arm64-${{ github.ref_name }},mode=max + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:arm64-${{ github.ref_name }} + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:arm64-main + *.cache-to=type=registry,ref=${{ github.repository }}-buildcache:arm64-${{ github.ref_name }},mode=max + dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} - name: Show disk space if: always() @@ -110,9 +111,10 @@ jobs: *.args.ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }} *.args.BASE_IMAGE=${{ needs.load-env.outputs.base_image }} *.args.LIB_DIR=aarch64 - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:arm64-${{ github.ref_name }} - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:arm64-main - *.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:arm64-${{ github.ref_name }},mode=max + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:arm64-${{ github.ref_name }} + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:arm64-main + *.cache-to=type=registry,ref=${{ github.repository }}-buildcache:arm64-${{ github.ref_name }},mode=max + dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} - name: Show disk space if: always() diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml index b4fcf4787e0..6278f954cdc 100644 --- a/.github/workflows/docker-build-and-push.yaml +++ b/.github/workflows/docker-build-and-push.yaml @@ -63,9 +63,10 @@ jobs: *.args.ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }} *.args.BASE_IMAGE=${{ needs.load-env.outputs.base_image }} *.args.LIB_DIR=x86_64 - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:amd64-${{ github.ref_name }} - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:amd64-main - *.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:amd64-${{ github.ref_name }},mode=max + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:amd64-${{ github.ref_name }} + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:amd64-main + *.cache-to=type=registry,ref=${{ github.repository }}-buildcache:amd64-${{ github.ref_name }},mode=max + dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} - name: Show disk space if: always() @@ -110,9 +111,10 @@ jobs: *.args.ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }} *.args.BASE_IMAGE=${{ needs.load-env.outputs.base_image }} *.args.LIB_DIR=x86_64 - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:amd64-${{ github.ref_name }} - *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:amd64-main - *.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:amd64-${{ github.ref_name }},mode=max + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:amd64-${{ github.ref_name }} + *.cache-from=type=registry,ref=${{ github.repository }}-buildcache:amd64-main + *.cache-to=type=registry,ref=${{ github.repository }}-buildcache:amd64-${{ github.ref_name }},mode=max + dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} - name: Show disk space if: always() diff --git a/.github/workflows/health-check-arm64.yaml b/.github/workflows/health-check-arm64.yaml index ec142373121..cabcd249d01 100644 --- a/.github/workflows/health-check-arm64.yaml +++ b/.github/workflows/health-check-arm64.yaml @@ -11,7 +11,7 @@ jobs: docker-build: needs: load-env - runs-on: buildjet-16vcpu-ubuntu-2204-arm + runs-on: buildjet-8vcpu-ubuntu-2204-arm steps: # https://github.com/actions/checkout/issues/211 - name: Change permission of workspace @@ -35,6 +35,7 @@ jobs: ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }} BASE_IMAGE=${{ needs.load-env.outputs.base_image }} LIB_DIR=aarch64 + dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} - name: Show disk space if: always() diff --git a/.github/workflows/health-check-nightly.yaml b/.github/workflows/health-check-nightly.yaml index ae79cabdeb4..04832788ce1 100644 --- a/.github/workflows/health-check-nightly.yaml +++ b/.github/workflows/health-check-nightly.yaml @@ -51,6 +51,7 @@ jobs: ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }} BASE_IMAGE=${{ needs.load-env.outputs.base_image }} LIB_DIR=x86_64 + dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} - name: Show disk space if: always() diff --git a/.github/workflows/health-check.yaml b/.github/workflows/health-check.yaml index d65a3239cff..df9f0cce651 100644 --- a/.github/workflows/health-check.yaml +++ b/.github/workflows/health-check.yaml @@ -45,6 +45,7 @@ jobs: ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }} BASE_IMAGE=${{ needs.load-env.outputs.base_image }} LIB_DIR=x86_64 + dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} - name: Show disk space if: always()