Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ci,docker): change vcs import to COPY src #4738

Merged
merged 29 commits into from
May 23, 2024

Conversation

youtalk
Copy link
Member

@youtalk youtalk commented May 20, 2024

Description

This PR modifies the process by running vcs import on outside the Dockerfile and then copying the src to the Dockerfile. This change resolves the issues #4730 (comment) and ensures that docker build is correctly rerun when the source code is modified.

I checked the Autoware Documentation and found that no documentation changes were necessary due to this modification.
https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/docker-installation/

Tests performed

Not applicable.

Effects on system behavior

Not applicable.

Interface changes

Pre-review checklist for the PR author

The PR author must check the checkboxes below when creating the PR.

In-review checklist for the PR reviewers

The PR reviewers must check the checkboxes below before approval.

Post-review checklist for the PR author

The PR author must check the checkboxes below before merging.

  • There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

youtalk added 23 commits May 13, 2024 13:25
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
This reverts commit ebff10f.
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
@youtalk youtalk changed the title feat(ci,docker): COPY src instead of RUN vcs import feat(ci,docker): COPY src instead of RUN vcs import May 20, 2024
@youtalk youtalk self-assigned this May 20, 2024
@youtalk youtalk marked this pull request as ready for review May 20, 2024 06:40
@youtalk youtalk requested a review from oguzkaganozt May 20, 2024 06:40
@oguzkaganozt
Copy link
Contributor

Also after merging this PR, we would need to test docker-build-and-push with this PR's branch then we can actually test out the build mechanism with this new caching. Otherwise both are looking great thanks @youtalk !

@youtalk
Copy link
Member Author

youtalk commented May 21, 2024

@oguzkaganozt Thank you for your review! I'm checking docker-build-and-push https://github.com/autowarefoundation/autoware/actions/runs/9174270335.

@youtalk
Copy link
Member Author

youtalk commented May 22, 2024

no-cuda was success but cuda was failed.

https://github.com/autowarefoundation/autoware/actions/runs/9174270335/job/25224777460#step:7:16258

ERROR: failed to solve: failed to copy to tar: rpc error: code = Unknown desc = write /tmp/devel.tar: no space left on device

I think it was probably exceeding the disk size when saving the container image as a tar file. I'll consider countermeasures.

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
@youtalk
Copy link
Member Author

youtalk commented May 22, 2024

I hope the problem would be fixed. 6a9398d I'm checking docker-build-and-push again.
https://github.com/autowarefoundation/autoware/actions/runs/9183845791

@oguzkaganozt By the way, why is the Upload Artifact step necessary to verify the docker build? It seems sufficient if Build and Save Artifacts is successful. Since more than 10 GB needs to be uploaded, it also seems to be taking time to transfer.

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
@doganulus
Copy link

LGTM, but we need to change the documentation of building containers from scratch section because the user would need to dovcs import before building the containers after merging this PR.

This is exactly why you should not merge this PR. The whole idea of containers is to reduce dependencies to streamline build and deployment. The user must be able to build using standard container tooling only.

Please do not introduce more technical debt for nothing.

@mitsudome-r
Copy link
Member

@oguzkaganozt

Please do not introduce more technical debt for nothing.

The key motivation behind this PR is that @youtalk is currently seeking for a method to fasten Docker build process so that we can utilize docker images for developing latest features of Autoware. He's trying to use docker build cache, but since it won't detect the change in the code retrieved from vcs import, he proposed to introduce this workaround.

Therefore, there is a trade-off between docker build time and complexity of docker build procedure at the moment. If we just think vcs import as steps for downloading Autoware source code, I don't think it's that unnatural to ask users to download the necessary codes before running docker build.

Alternatively, we could use Git submodule to simplify the command itself, but that would make a too big of a impact at this stage compared to the benefits we get.

@doganulus If you can think of any good approach, could you share us your idea?

@doganulus
Copy link

Hi @mitsudome-r, I have shared a snippet of the solution here. It might be missed in a merged PR: #4712 (comment)

Regarding this comment:

Therefore, there is a trade-off between docker build time and complexity of docker build procedure at the moment. If we just think vcs import as steps for downloading Autoware source code, I don't think it's that unnatural to ask users to download the necessary codes before running docker build.

I think otherwise. Autoware should not ask users to install some packages too easily. As a user and developer, I don't want Autoware to mess with my local environment. Hence, the development environment must stay solely inside containers. This PR goes the opposite. That's the whole point.

I oppose setup-dev-env.sh or similar opaque scripts for the same reason. Please evaluate twice when asking users to install things. The same goes for package dependencies. I hope you see what bothers me but it requires an organization-wide understanding rather than individual efforts. I would appreciate it if Autoware became more strict about these matters.

@oguzkaganozt
Copy link
Contributor

oguzkaganozt commented May 22, 2024

I hope the problem would be fixed. 6a9398d I'm checking docker-build-and-push again. https://github.com/autowarefoundation/autoware/actions/runs/9183845791

@oguzkaganozt By the way, why is the Upload Artifact step necessary to verify the docker build? It seems sufficient if Build and Save Artifacts is successful. Since more than 10 GB needs to be uploaded, it also seems to be taking time to transfer.

Uploading of images is necessary because you can test out the produced images without pushing them into the registry. Also it will be the part of whole CI-CD loop in the future by uploading the images into scenario cloud then from there we would test those images with pre-defined scenario simulations.

@oguzkaganozt
Copy link
Contributor

@youtalk can rebase your branch with the latest main branch ?

@oguzkaganozt
Copy link
Contributor

Hi @mitsudome-r, I have shared a snippet of the solution here. It might be missed in a merged PR: #4712 (comment)

Regarding this comment:

Therefore, there is a trade-off between docker build time and complexity of docker build procedure at the moment. If we just think vcs import as steps for downloading Autoware source code, I don't think it's that unnatural to ask users to download the necessary codes before running docker build.

I think otherwise. Autoware should not ask users to install some packages too easily. As a user and developer, I don't want Autoware to mess with my local environment. Hence, the development environment must stay solely inside containers. This PR goes the opposite. That's the whole point.

I oppose setup-dev-env.sh or similar opaque scripts for the same reason. Please evaluate twice when asking users to install things. The same goes for package dependencies. I hope you see what bothers me but it requires an organization-wide understanding rather than individual efforts. I would appreciate it if Autoware became more strict about these matters.

@doganulus the thing is, as we are importing all of the source files with an opaque vcs import then doing rosdep install on top of the imported src, that means that there is no direct way of achieving actual docker-caching mechanism if we keep vcs import inside the dockerfile.

So with the new src-imported layer we now have seperate layer just for vcs-import, but the source changes can't be detected again, so now @youtalk completely excluded the vcs-import and copy source files as directory which effectively enables docker-caching.

I don't really know if this solution of yours would still detect source changes, so if you can create another branch with your solution then we can test out and see if excluding vcs import really needed ?

@doganulus
Copy link

if you can create another branch with your solution then we can test out and see if excluding vcs import really needed ?

Please describe how you see a user or a developer to use these containers. How frequently? Then we can understand the thing you try to improve makes sense or not.

  • Will the user ever download source code?
  • Will the developer use bind mounts instead of downloading?

What would you need to produce after these efforts? I think these points are not clear.

@xmfcx
Copy link
Contributor

xmfcx commented May 22, 2024

docker image expectations

@doganulus in the first paragraph here you can see the use cases:

  1. The devel image enables you to develop Autoware without setting up the local development environment.
  2. The runtime image contains only runtime executables and enables you to try out Autoware quickly.

I would assume, the devel image workflow should include cloning the autoware repositories and users should be expected to mount the autoware directory. This is to have the changes persistent.

vcstool on the host machine

To me, vcs tool is an alternative to git submodules. Also relatively easy to install: pip install --no-cache-dir vcstool so I see no issues having this much on the host side. git, docker, vcstool

I'm not good at docker caching mechanisms so I cannot comment on if this is the best approach.

At least, it was the 2nd thing that was recommended by chatgpt, I didn't like its first proposal.

What about just changing that run step?

Instead of moving vcs out, would this approach work @youtalk -san?

RUN --mount=type=ssh \
  rm -rf src \
  && mkdir src \
  && vcs import src < autoware.repos \
  && apt-get update \
  && rosdep update \
  && DEBIAN_FRONTEND=noninteractive rosdep install -y --ignore-src --from-paths src --rosdistro "$ROS_DISTRO" \
  && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache

Unrelated topic

image

@oguzkaganozt I was looking into https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/docker-installation/#prerequisites and noticed the setup-dev-env.sh doesn't have any "docker" references, so is this documentation wrong or outdated?

@youtalk
Copy link
Member Author

youtalk commented May 23, 2024

Instead of moving vcs out, would this approach work @youtalk -san?

@xmfcx It has the same cache problem. The RUN command will not be re-executed unless autoware.repos is modified. Note that it will also be re-executed if BASE_IMAGE is changed or if the contents of the COPY files before the RUN command are modified.

@youtalk
Copy link
Member Author

youtalk commented May 23, 2024

When executing ./setup-dev-env.sh, by removing the --download-artifacts option, there was enough image size to pass the CI. Instead, we will download and mount the artifacts when executing /docker/run.sh. I'm testing on youtalk#18

@youtalk
Copy link
Member Author

youtalk commented May 23, 2024

@oguzkaganozt
#4738 (comment)
I understood. Thank you for your explanation.

#4738 (comment)
I've merge the latest main branch da2960b and restart the docker-build-and-push-main. https://github.com/autowarefoundation/autoware/actions/runs/9200680271

@youtalk
Copy link
Member Author

youtalk commented May 23, 2024

Both of no-cuda and cuda were finally succeeded to run docker-build-and-push-main.
https://github.com/autowarefoundation/autoware/actions/runs/9200680271/job/25307638386
https://github.com/autowarefoundation/autoware/actions/runs/9200680271/job/25307638224
So, let's merge!

@youtalk youtalk merged commit 14bc931 into main May 23, 2024
15 of 16 checks passed
@youtalk youtalk deleted the upstream-vcs-import-outside-dockerfile branch May 23, 2024 04:27
youtalk added a commit to youtalk/autoware that referenced this pull request May 31, 2024
* chore(docker): separate `rosdep install` and `colcon build` RUN commands (autowarefoundation#4719)

* refactor(ci): reuse `load-env.yaml` to load env (autowarefoundation#4734)

* reuse load-env.yaml to load env

* update base_image

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* fix base_image

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* refactor(docker): introduce `src-imported` stage (autowarefoundation#4712)

* 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 (autowarefoundation#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

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(docker): install minimum packages in `base` stage (autowarefoundation#4751)

* install ssh only and copy only once

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* install gosu

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* fix dir

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* revert ansible

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* chore: add discussion templates for general category (autowarefoundation#4764)

Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>

* feat(ci,docker): change `vcs import` to `COPY src` (autowarefoundation#4738)

* 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 (autowarefoundation#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>

* refine order and remove /autoware/src at last

* fix hadolint

* remove tar files

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* shell: bash

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(docker,ansible): download artifacts at runtime (autowarefoundation#4771)

* feat(ci): enable Docker build cache to 5 times faster container build (autowarefoundation#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 (autowarefoundation#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>

* feat(docker): cache `ccache` to the Docker build cache (autowarefoundation#4772)

* fix: add download url of yolox with semantic segmentation header (autowarefoundation#4012)

Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp>

* chore: add error handling for held packages during rmw installation (autowarefoundation#4781)

* chore: add error handling for held packages during apt installation

Signed-off-by: Naophis <nao1288stusj@gmail.com>

* feat: Add check for held ROS packages during installation

Signed-off-by: Naophis <nao1288stusj@gmail.com>

---------

Signed-off-by: Naophis <nao1288stusj@gmail.com>

* refactor(docker,ci): rename `autoware-openadk` to `autoware` and `adkit` to `openadkit` (autowarefoundation#4785)

* rename adkit to openadkit

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* rename autoware-openadkit to autoware

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* fix hcl path

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(ci): disable `Upload Artifacts` on `docker-build-and-push` action (autowarefoundation#4789)

* remove upload artifact

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* remove build and push

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(docker): cache apt archives to the Docker build cache (autowarefoundation#4778)

* mount apt cache

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* reorder

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* remove upload artifact

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* remove build and push

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* chore: update code owners (autowarefoundation#4797)

Signed-off-by: M. Fatih Cırıt <mfc@leodrive.ai>

* ci(pre-commit-ansible): autoupdate (autowarefoundation#4676)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>

* ci: pre-commit autoupdate (autowarefoundation#4670)

[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/igorshubovych/markdownlint-cli: v0.39.0 → v0.41.0](igorshubovych/markdownlint-cli@v0.39.0...v0.41.0)
- [github.com/AleksaC/hadolint-py: v2.12.1-beta → v2.12.1b3](AleksaC/hadolint-py@v2.12.1-beta...v2.12.1b3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* ci(pre-commit): autoupdate (autowarefoundation#4662)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>

* ci(pre-commit-optional): autoupdate (autowarefoundation#4766)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>

* fix(ci): run `vsc import` on `build-main` workflows (autowarefoundation#4799)

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp>
Signed-off-by: Naophis <nao1288stusj@gmail.com>
Signed-off-by: M. Fatih Cırıt <mfc@leodrive.ai>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com>
Co-authored-by: badai nguyen <94814556+badai-nguyen@users.noreply.github.com>
Co-authored-by: Naophis <nao1288stusj@gmail.com>
Co-authored-by: M. Fatih Cırıt <xmfcx@users.noreply.github.com>
Co-authored-by: awf-autoware-bot[bot] <94889083+awf-autoware-bot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
youtalk added a commit to youtalk/autoware that referenced this pull request Jun 11, 2024
* chore(docker): separate `rosdep install` and `colcon build` RUN commands (autowarefoundation#4719)

* refactor(ci): reuse `load-env.yaml` to load env (autowarefoundation#4734)

* reuse load-env.yaml to load env

* update base_image

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* fix base_image

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* refactor(docker): introduce `src-imported` stage (autowarefoundation#4712)

* 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 (autowarefoundation#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

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(docker): install minimum packages in `base` stage (autowarefoundation#4751)

* install ssh only and copy only once

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* install gosu

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* fix dir

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* revert ansible

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* chore: add discussion templates for general category (autowarefoundation#4764)

Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>

* feat(ci,docker): change `vcs import` to `COPY src` (autowarefoundation#4738)

* 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 (autowarefoundation#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>

* refine order and remove /autoware/src at last

* fix hadolint

* remove tar files

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* shell: bash

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(docker,ansible): download artifacts at runtime (autowarefoundation#4771)

* feat(ci): enable Docker build cache to 5 times faster container build (autowarefoundation#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 (autowarefoundation#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>

* feat(docker): cache `ccache` to the Docker build cache (autowarefoundation#4772)

* fix: add download url of yolox with semantic segmentation header (autowarefoundation#4012)

Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp>

* chore: add error handling for held packages during rmw installation (autowarefoundation#4781)

* chore: add error handling for held packages during apt installation

Signed-off-by: Naophis <nao1288stusj@gmail.com>

* feat: Add check for held ROS packages during installation

Signed-off-by: Naophis <nao1288stusj@gmail.com>

---------

Signed-off-by: Naophis <nao1288stusj@gmail.com>

* refactor(docker,ci): rename `autoware-openadk` to `autoware` and `adkit` to `openadkit` (autowarefoundation#4785)

* rename adkit to openadkit

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* rename autoware-openadkit to autoware

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* fix hcl path

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(ci): disable `Upload Artifacts` on `docker-build-and-push` action (autowarefoundation#4789)

* remove upload artifact

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* remove build and push

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(docker): cache apt archives to the Docker build cache (autowarefoundation#4778)

* mount apt cache

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* reorder

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* remove upload artifact

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* remove build and push

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* chore: update code owners (autowarefoundation#4797)

Signed-off-by: M. Fatih Cırıt <mfc@leodrive.ai>

* ci(pre-commit-ansible): autoupdate (autowarefoundation#4676)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>

* ci: pre-commit autoupdate (autowarefoundation#4670)

[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/igorshubovych/markdownlint-cli: v0.39.0 → v0.41.0](igorshubovych/markdownlint-cli@v0.39.0...v0.41.0)
- [github.com/AleksaC/hadolint-py: v2.12.1-beta → v2.12.1b3](AleksaC/hadolint-py@v2.12.1-beta...v2.12.1b3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* ci(pre-commit): autoupdate (autowarefoundation#4662)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>

* ci(pre-commit-optional): autoupdate (autowarefoundation#4766)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>

* fix(ci): run `vsc import` on `build-main` workflows (autowarefoundation#4799)

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(docker): cache `ccache` to the Docker build cache (autowarefoundation#4800)

cache ccache again

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* chore: hold check of plotjuggler-ros package and display warning if held (autowarefoundation#4805)

* chore: Hold check of plotjuggler-ros package and display warning if held

Signed-off-by: Naophis <nao1288stusj@gmail.com>

* chore: fix condition for checking held ROS package in dev_tools role

Signed-off-by: Naophis <nao1288stusj@gmail.com>

* style(pre-commit): autofix

* chore: Update dev_tools role to fix condition for checking held ROS package

Signed-off-by: Naophis <nao1288stusj@gmail.com>

---------

Signed-off-by: Naophis <nao1288stusj@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat(docker): revert "cache apt archives to the Docker build cache" (autowarefoundation#4793)

Revert "feat(docker): cache apt archives to the Docker build cache (autowarefoundation#4778)"
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* chore(ci): add a workflow for DCO check to avoid DCO bot system failure (autowarefoundation#4825)

Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>

* feat(ci): add CPU architecture suffixes to the Docker build cache (autowarefoundation#4826)

* add arch prefix

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* rename

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* use lib_dir

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* change suffix

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(simulator.repos): use autoware_msgs_support branch for scenario_simulator (autowarefoundation#4823)

Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
Co-authored-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* feat(ansible): add lidar_transfusion artifacts (autowarefoundation#4835)

* refactor(docker): fix colcon `--cmake-args` (autowarefoundation#4828)

fix colcon cmake-args

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* refactor(ci): use platform arg to replace raw string (autowarefoundation#4844)

use platform arg to replace raw string

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* refactor(ci): install `vcstool` and run `vcs import` on `docker-build-and-push.yaml` (autowarefoundation#4845)

* refactor docker-build-and-push

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

* fix shell

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Co-authored-by: oguzkaganozt <oguzkaganozt@gmail.com>

* fix platform

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>

---------

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp>
Signed-off-by: Naophis <nao1288stusj@gmail.com>
Signed-off-by: M. Fatih Cırıt <mfc@leodrive.ai>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com>
Co-authored-by: badai nguyen <94814556+badai-nguyen@users.noreply.github.com>
Co-authored-by: Naophis <nao1288stusj@gmail.com>
Co-authored-by: M. Fatih Cırıt <xmfcx@users.noreply.github.com>
Co-authored-by: awf-autoware-bot[bot] <94889083+awf-autoware-bot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Amadeusz Szymko <amadeuszszymko@gmail.com>
Co-authored-by: oguzkaganozt <oguzkaganozt@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:ci Continuous Integration (CI) processes and testing. type:containers Docker containers, containerization of components, or container orchestration.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants