From c96f5adf248ae285350dc790b7a7ddd78656dfd5 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 21 May 2024 17:26:15 +0900 Subject: [PATCH] feat(docker): run `vcs import` outside Dockerfile (#11) * introduce src-imported stage Signed-off-by: Yutaka Kondo * empty Signed-off-by: Yutaka Kondo * chore(docker): separate `rosdep install` and `colcon build` RUN commands (#4719) * reuse load-env.yaml to load env * update base_image Signed-off-by: Yutaka Kondo * fix base_image Signed-off-by: Yutaka Kondo * vcs import outside dockerfile Signed-off-by: Yutaka Kondo * refactor(ci): reuse `load-env.yaml` to load env (#4734) * reuse load-env.yaml to load env * update base_image Signed-off-by: Yutaka Kondo * fix base_image Signed-off-by: Yutaka Kondo --------- Signed-off-by: Yutaka Kondo * install jq Signed-off-by: Yutaka Kondo * copy src Signed-off-by: Yutaka Kondo * revert format * generate install package lists * append || true Signed-off-by: Yutaka Kondo * cat packages Signed-off-by: Yutaka Kondo * chore(docker): separate `rosdep install` and `colcon build` RUN commands (#4719) * wip Signed-off-by: Yutaka Kondo * wip Signed-off-by: Yutaka Kondo * Update Dockerfile * Update Dockerfile * install pacmod * rename * Revert "install pacmod" This reverts commit ebff10f4747489da490fa54497c2722fdec91def. * install pacmod3 * register pamod3 repos * ignore hadolint * revert * run set-dev-env.sh * pip install * copy * rosdep update * not use ros container Signed-off-by: Yutaka Kondo * not use ros container Signed-off-by: Yutaka Kondo * Update docker-build-and-push-main.yaml * remove register * format * not remove src --------- Signed-off-by: Yutaka Kondo --- .../docker-build-and-push-main-self-hosted.yaml | 16 ++++++++++++++++ .../workflows/docker-build-and-push-main.yaml | 16 ++++++++++++++++ docker/autoware-openadk/Dockerfile | 10 +++------- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-build-and-push-main-self-hosted.yaml b/.github/workflows/docker-build-and-push-main-self-hosted.yaml index a7903b9f553..ff5ae7a16c6 100644 --- a/.github/workflows/docker-build-and-push-main-self-hosted.yaml +++ b/.github/workflows/docker-build-and-push-main-self-hosted.yaml @@ -56,9 +56,25 @@ jobs: - name: Check out repository uses: actions/checkout@v4 + - name: Install vcstool + run: | + sudo apt-get -y update + sudo apt-get -y install python3-pip + pip install --no-cache-dir vcstool + + - name: Set git config + uses: autowarefoundation/autoware-github-actions/set-git-config@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: Free disk space uses: ./.github/actions/free-disk-space + - name: Run vcs import + run: | + mkdir src + vcs import src < autoware.repos + - name: Build 'autoware-openadk' uses: ./.github/actions/docker-build-and-push with: diff --git a/.github/workflows/docker-build-and-push-main.yaml b/.github/workflows/docker-build-and-push-main.yaml index 1832d7ac392..60b48f57eed 100644 --- a/.github/workflows/docker-build-and-push-main.yaml +++ b/.github/workflows/docker-build-and-push-main.yaml @@ -58,6 +58,22 @@ jobs: - name: Check out repository uses: actions/checkout@v4 + - name: Install vcstool + run: | + sudo apt-get -y update + sudo apt-get -y install python3-pip + pip install --no-cache-dir vcstool + + - name: Set git config + uses: autowarefoundation/autoware-github-actions/set-git-config@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Run vcs import + run: | + mkdir src + vcs import src < autoware.repos + - name: Build 'autoware-openadk' if: steps.author-check.outputs.author-found == 'true' || ${{ github.event_name == 'workflow_dispatch' }} uses: ./.github/actions/docker-build-and-push diff --git a/docker/autoware-openadk/Dockerfile b/docker/autoware-openadk/Dockerfile index 23d260f0317..24cdee9b7ca 100644 --- a/docker/autoware-openadk/Dockerfile +++ b/docker/autoware-openadk/Dockerfile @@ -50,14 +50,10 @@ WORKDIR /autoware RUN --mount=type=ssh \ ./setup-dev-env.sh -y rosdep \ && pip uninstall -y ansible ansible-core \ - && pip install --no-cache-dir vcstool \ && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache -WORKDIR /autoware -COPY autoware.repos /autoware/ -RUN --mount=type=ssh \ - mkdir src \ - && vcs import src < autoware.repos +# Copy repository files +COPY src /autoware/src # Generate install package lists RUN rosdep update && rosdep keys --ignore-src --from-paths src \ @@ -110,7 +106,7 @@ RUN source /opt/ros/"$ROS_DISTRO"/setup.bash \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ && find /autoware/install -type d -exec chmod 777 {} \; \ && chmod -R 777 /var/tmp/ccache \ - && rm -rf /autoware/build /autoware/src + && rm -rf /autoware/build CMD ["/bin/bash"]