Skip to content

Commit ab8bbf5

Browse files
authored
feat(ci): enable Docker build cache to 5 times faster container build (#4730)
* introduce src-imported stage Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * empty Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * generate install package lists * append || true Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * cat packages Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * chore(docker): separate `rosdep install` and `colcon build` RUN commands (#4719) * wip Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * wip Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * Update Dockerfile * Update Dockerfile * install pacmod * rename * Revert "install pacmod" This reverts commit ebff10f. * install pacmod3 * register pamod3 repos * ignore hadolint * revert * run set-dev-env.sh * pip install * copy * rosdep update * vcs import outside dockerfile Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * enable docker build cache Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * empty Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * add no-cuda/cuda suffix Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * remove --download-artifacts Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * remove --download-artifacts Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * add --data-path option Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * wip Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * run download_artifacts Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * remove todo Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * revert run Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
1 parent e8a258f commit ab8bbf5

4 files changed

+8
-0
lines changed

.github/workflows/build-main-self-hosted.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ jobs:
5757
*.args.BASE_IMAGE=${{ needs.load-env.outputs[format('{0}', matrix.base_image_env)] }}
5858
*.args.SETUP_ARGS=${{ matrix.setup-args }}
5959
*.args.LIB_DIR=${{ matrix.lib_dir }}
60+
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }}
61+
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }},mode=max
6062
tag-suffix: ${{ matrix.additional-tag-suffix }}-arm64
6163
tag-prefix: ${{ needs.load-env.outputs.rosdistro }}
6264
allow-push: false

.github/workflows/build-main.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ jobs:
5252
*.args.BASE_IMAGE=${{ needs.load-env.outputs[format('{0}', matrix.base_image_env)] }}
5353
*.args.SETUP_ARGS=${{ matrix.setup-args }}
5454
*.args.LIB_DIR=${{ matrix.lib_dir }}
55+
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }}
56+
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }},mode=max
5557
tag-suffix: ${{ matrix.additional-tag-suffix }}-amd64
5658
tag-prefix: ${{ needs.load-env.outputs.rosdistro }}
5759
allow-push: false

.github/workflows/docker-build-and-push-main-self-hosted.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ jobs:
8585
*.args.BASE_IMAGE=${{ needs.load-env.outputs[format('{0}', matrix.base_image_env)] }}
8686
*.args.SETUP_ARGS=${{ matrix.setup-args }}
8787
*.args.LIB_DIR=${{ matrix.lib_dir }}
88+
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }}
89+
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }},mode=max
8890
tag-suffix: ${{ matrix.additional-tag-suffix }}-arm64
8991
tag-prefix: ${{ needs.load-env.outputs.rosdistro }}
9092
allow-push: true

.github/workflows/docker-build-and-push-main.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ jobs:
8080
*.args.BASE_IMAGE=${{ needs.load-env.outputs[format('{0}', matrix.base_image_env)] }}
8181
*.args.SETUP_ARGS=${{ matrix.setup-args }}
8282
*.args.LIB_DIR=${{ matrix.lib_dir }}
83+
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }}
84+
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-${{ matrix.name }},mode=max
8385
tag-suffix: ${{ matrix.additional-tag-suffix }}-amd64
8486
tag-prefix: ${{ needs.load-env.outputs.rosdistro }}
8587
allow-push: true

0 commit comments

Comments
 (0)