From 0db92076aebf3922a715909a1d335cd8282a744d Mon Sep 17 00:00:00 2001 From: Takayuki Murooka Date: Wed, 8 Jan 2025 11:28:50 +0900 Subject: [PATCH 1/7] feat: add build-and-test-packages-above-differential.yaml and packages_above.repos Signed-off-by: Takayuki Murooka --- ...-and-test-packages-above-differential.yaml | 131 ++++++++++++++++++ packages_above.repos | 5 + 2 files changed, 136 insertions(+) create mode 100644 .github/workflows/build-and-test-packages-above-differential.yaml create mode 100644 packages_above.repos diff --git a/.github/workflows/build-and-test-packages-above-differential.yaml b/.github/workflows/build-and-test-packages-above-differential.yaml new file mode 100644 index 0000000000000..5e6659be88c5d --- /dev/null +++ b/.github/workflows/build-and-test-packages-above-differential.yaml @@ -0,0 +1,131 @@ +name: build-and-test-packages-above-differential + +on: + workflow_call: + inputs: + container: + required: true + type: string + runner: + default: ubuntu-24.04 + required: false + type: string + rosdistro: + default: humble + required: false + type: string + run-condition: + default: true + required: false + type: boolean + container-suffix: + required: false + default: "" + type: string + secrets: + codecov-token: + required: true + +env: + CC: /usr/lib/ccache/gcc + CXX: /usr/lib/ccache/g++ + +jobs: + build-and-test-packages-above-differential: + if: ${{ inputs.run-condition }} + runs-on: ${{ inputs.runner }} + container: ${{ inputs.container }}${{ inputs.container-suffix }} + steps: + - name: Set PR fetch depth + run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> "${GITHUB_ENV}" + shell: bash + + - name: Checkout PR branch and all PR commits + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: ${{ env.PR_FETCH_DEPTH }} + + - name: Show disk space before the tasks + run: df -h + shell: bash + + - name: Show machine specs + run: lscpu && free -h + shell: bash + + - name: Remove exec_depend + uses: autowarefoundation/autoware-github-actions/remove-exec-depend@v1 + + - name: Get modified packages + id: get-modified-packages + uses: autowarefoundation/autoware-github-actions/get-modified-packages@v1 + + - name: Create ccache directory + run: | + mkdir -p ${CCACHE_DIR} + du -sh ${CCACHE_DIR} && ccache -s + shell: bash + + - name: Attempt to restore ccache + uses: actions/cache/restore@v4 + with: + path: | + /root/.ccache + key: ccache-main-${{ runner.arch }}-${{ inputs.rosdistro }}-${{ github.event.pull_request.base.sha }} + restore-keys: | + ccache-main-${{ runner.arch }}-${{ inputs.rosdistro }}- + + - name: Show ccache stats before build and reset stats + run: | + du -sh ${CCACHE_DIR} && ccache -s + ccache --zero-stats + shell: bash + + - name: Export CUDA state as a variable for adding to cache key + run: | + build_type_cuda_state=nocuda + if [[ "${{ inputs.container-suffix }}" == "-cuda" ]]; then + build_type_cuda_state=cuda + fi + echo "BUILD_TYPE_CUDA_STATE=$build_type_cuda_state" >> "${GITHUB_ENV}" + echo "::notice::BUILD_TYPE_CUDA_STATE=$build_type_cuda_state" + shell: bash + + - name: Build + if: ${{ steps.get-modified-packages.outputs.modified-packages != '' }} + uses: autowarefoundation/autoware-github-actions/colcon-build@v1 + with: + rosdistro: ${{ inputs.rosdistro }} + target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }} + build-depends-repos: build_depends.repos + packages-above-repos: packages_above.repos + cache-key-element: ${{ env.BUILD_TYPE_CUDA_STATE }} + + - name: Show ccache stats after build + run: du -sh ${CCACHE_DIR} && ccache -s + shell: bash + + - name: Test + id: test + if: ${{ steps.get-modified-packages.outputs.modified-packages != '' }} + uses: autowarefoundation/autoware-github-actions/colcon-test@v1 + with: + rosdistro: ${{ inputs.rosdistro }} + target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }} + build-depends-repos: build_depends.repos + packages-above-repos: packages_above.repos + + - name: Upload coverage to CodeCov + if: ${{ steps.test.outputs.coverage-report-files != '' }} + uses: codecov/codecov-action@v4 + with: + files: ${{ steps.test.outputs.coverage-report-files }} + fail_ci_if_error: false + verbose: true + flags: differential${{ inputs.container-suffix }} + token: ${{ secrets.codecov-token }} + + - name: Show disk space after the tasks + run: df -h + shell: bash diff --git a/packages_above.repos b/packages_above.repos new file mode 100644 index 0000000000000..5a6f8852889df --- /dev/null +++ b/packages_above.repos @@ -0,0 +1,5 @@ +repositories: + tools/autoware_tools: + type: git + url: https://github.com/autowarefoundation/autoware_tools.git + version: main From d43d2ce1b7b6b160f0869643c5147f49408136a5 Mon Sep 17 00:00:00 2001 From: Takayuki Murooka Date: Tue, 11 Mar 2025 00:24:14 +0900 Subject: [PATCH 2/7] fix for comment1 Signed-off-by: Takayuki Murooka --- ...d-and-test-packages-above-differential.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/build-and-test-packages-above-differential.yaml b/.github/workflows/build-and-test-packages-above-differential.yaml index 5e6659be88c5d..7af11ac5b7e9a 100644 --- a/.github/workflows/build-and-test-packages-above-differential.yaml +++ b/.github/workflows/build-and-test-packages-above-differential.yaml @@ -22,6 +22,10 @@ on: required: false default: "" type: string + build-pre-command: + required: false + default: "" + type: string secrets: codecov-token: required: true @@ -92,6 +96,19 @@ jobs: echo "::notice::BUILD_TYPE_CUDA_STATE=$build_type_cuda_state" shell: bash + - name: Prepare build_depends.repos file (main branch) + if: ${{ github.event.pull_request.base.ref == 'main' }} + uses: ./.github/actions/combine-repos-action + with: + base_file: build_depends_humble.repos + overlay_file: build_depends_nightly.repos + output_file: build_depends.repos + + - name: Prepare build_depends.repos file (humble branch) + if: ${{ github.event.pull_request.base.ref == 'humble' }} + run: cp build_depends_humble.repos build_depends.repos + shell: bash + - name: Build if: ${{ steps.get-modified-packages.outputs.modified-packages != '' }} uses: autowarefoundation/autoware-github-actions/colcon-build@v1 @@ -101,6 +118,7 @@ jobs: build-depends-repos: build_depends.repos packages-above-repos: packages_above.repos cache-key-element: ${{ env.BUILD_TYPE_CUDA_STATE }} + build-pre-command: ${{ inputs.build-pre-command }} - name: Show ccache stats after build run: du -sh ${CCACHE_DIR} && ccache -s From 7bdd18ec74424b846467ef7d0f91b6a889553eed Mon Sep 17 00:00:00 2001 From: Takayuki Murooka Date: Tue, 11 Mar 2025 00:26:01 +0900 Subject: [PATCH 3/7] fix for comment2 Signed-off-by: Takayuki Murooka --- .github/workflows/build-test-tidy-pr.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/build-test-tidy-pr.yaml b/.github/workflows/build-test-tidy-pr.yaml index 90dfc2083118e..55d33f9bd0f88 100644 --- a/.github/workflows/build-test-tidy-pr.yaml +++ b/.github/workflows/build-test-tidy-pr.yaml @@ -50,6 +50,17 @@ jobs: secrets: codecov-token: ${{ secrets.CODECOV_TOKEN }} + build-and-test-packages-above-differential: + if: ${{ always() }} + needs: + - require-label + uses: ./.github/workflows/6build-and-test-packages-above-differential.yaml + with: + container: ghcr.io/autowarefoundation/autoware:universe-devel + run-condition: ${{ needs.require-label.outputs.result == 'true' }} + secrets: + codecov-token: ${{ secrets.CODECOV_TOKEN }} + build-and-test-differential-cuda: if: ${{ always() }} needs: check-if-cuda-job-is-needed From d91317729e2378aabd4531cfd18c0b0ef58fa36f Mon Sep 17 00:00:00 2001 From: Takayuki Murooka Date: Tue, 11 Mar 2025 00:55:41 +0900 Subject: [PATCH 4/7] fix Signed-off-by: Takayuki Murooka --- .github/workflows/build-test-tidy-pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-tidy-pr.yaml b/.github/workflows/build-test-tidy-pr.yaml index 55d33f9bd0f88..1a97f5d205580 100644 --- a/.github/workflows/build-test-tidy-pr.yaml +++ b/.github/workflows/build-test-tidy-pr.yaml @@ -54,7 +54,7 @@ jobs: if: ${{ always() }} needs: - require-label - uses: ./.github/workflows/6build-and-test-packages-above-differential.yaml + uses: ./.github/workflows/build-and-test-packages-above-differential.yaml with: container: ghcr.io/autowarefoundation/autoware:universe-devel run-condition: ${{ needs.require-label.outputs.result == 'true' }} From 2b88d03b5b27a24f6d786eb396575e40de872c95 Mon Sep 17 00:00:00 2001 From: Takayuki Murooka Date: Tue, 11 Mar 2025 00:31:59 +0900 Subject: [PATCH 5/7] use WIP actions Signed-off-by: Takayuki Murooka --- .../workflows/build-and-test-packages-above-differential.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test-packages-above-differential.yaml b/.github/workflows/build-and-test-packages-above-differential.yaml index 7af11ac5b7e9a..b924c822b727c 100644 --- a/.github/workflows/build-and-test-packages-above-differential.yaml +++ b/.github/workflows/build-and-test-packages-above-differential.yaml @@ -111,7 +111,7 @@ jobs: - name: Build if: ${{ steps.get-modified-packages.outputs.modified-packages != '' }} - uses: autowarefoundation/autoware-github-actions/colcon-build@v1 + uses: autowarefoundation/autoware-github-actions/colcon-build@feat/colcon-build-above-dependency with: rosdistro: ${{ inputs.rosdistro }} target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }} @@ -127,7 +127,7 @@ jobs: - name: Test id: test if: ${{ steps.get-modified-packages.outputs.modified-packages != '' }} - uses: autowarefoundation/autoware-github-actions/colcon-test@v1 + uses: autowarefoundation/autoware-github-actions/colcon-test@feat/colcon-build-above-dependency with: rosdistro: ${{ inputs.rosdistro }} target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }} From 27d183dfc2a67a3fb5441877a90e9366361ca2f1 Mon Sep 17 00:00:00 2001 From: Takayuki Murooka Date: Tue, 11 Mar 2025 00:32:30 +0900 Subject: [PATCH 6/7] fail Signed-off-by: Takayuki Murooka --- .../include/autoware/path_optimizer/mpt_optimizer.hpp | 3 ++- planning/autoware_path_optimizer/src/mpt_optimizer.cpp | 3 ++- planning/autoware_path_optimizer/src/node.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp b/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp index d151fb96d329a..d825be4dd1039 100644 --- a/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp +++ b/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp @@ -110,7 +110,8 @@ class MPTOptimizer const TrajectoryParam & traj_param, const std::shared_ptr debug_data_ptr, const std::shared_ptr time_keeper_); - std::vector optimizeTrajectory(const PlannerData & planner_data); + std::vector optimizeTrajectory( + const PlannerData & planner_data, const bool empty); std::optional> getPrevOptimizedTrajectoryPoints() const; void initialize(const bool enable_debug_info, const TrajectoryParam & traj_param); diff --git a/planning/autoware_path_optimizer/src/mpt_optimizer.cpp b/planning/autoware_path_optimizer/src/mpt_optimizer.cpp index 5a0ba0d5f1128..2286e796247ce 100644 --- a/planning/autoware_path_optimizer/src/mpt_optimizer.cpp +++ b/planning/autoware_path_optimizer/src/mpt_optimizer.cpp @@ -472,7 +472,8 @@ void MPTOptimizer::onParam(const std::vector & parameters) debug_data_ptr_->mpt_visualize_sampling_num = mpt_param_.mpt_visualize_sampling_num; } -std::vector MPTOptimizer::optimizeTrajectory(const PlannerData & planner_data) +std::vector MPTOptimizer::optimizeTrajectory( + const PlannerData & planner_data, [[maybe_unused]] const bool empty) { autoware_utils::ScopedTimeTrack st(__func__, *time_keeper_); diff --git a/planning/autoware_path_optimizer/src/node.cpp b/planning/autoware_path_optimizer/src/node.cpp index 1d69afd057f4f..a22e4a82a8da9 100644 --- a/planning/autoware_path_optimizer/src/node.cpp +++ b/planning/autoware_path_optimizer/src/node.cpp @@ -363,7 +363,7 @@ std::vector PathOptimizer::optimizeTrajectory(const PlannerData // 2. make trajectory kinematically-feasible and collision-free (= inside the drivable area) // with model predictive trajectory - const auto mpt_traj = mpt_optimizer_ptr_->optimizeTrajectory(planner_data); + const auto mpt_traj = mpt_optimizer_ptr_->optimizeTrajectory(planner_data, false); return mpt_traj; } From 4eefa833414881cfe7c8815e77a3e276a44ae54f Mon Sep 17 00:00:00 2001 From: Takayuki Murooka Date: Tue, 11 Mar 2025 01:09:56 +0900 Subject: [PATCH 7/7] pass Signed-off-by: Takayuki Murooka --- .../include/autoware/path_optimizer/mpt_optimizer.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp b/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp index d825be4dd1039..d977a213dca3e 100644 --- a/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp +++ b/planning/autoware_path_optimizer/include/autoware/path_optimizer/mpt_optimizer.hpp @@ -111,7 +111,7 @@ class MPTOptimizer const std::shared_ptr time_keeper_); std::vector optimizeTrajectory( - const PlannerData & planner_data, const bool empty); + const PlannerData & planner_data, const bool empty = false); std::optional> getPrevOptimizedTrajectoryPoints() const; void initialize(const bool enable_debug_info, const TrajectoryParam & traj_param);