Skip to content

Commit 811be32

Browse files
authored
Merge branch 'main' into fix/drivable-are
2 parents 9ba3270 + 3e4a945 commit 811be32

File tree

681 files changed

+36946
-7205
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

681 files changed

+36946
-7205
lines changed

.cppcheck_suppressions

-4
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@
33
checkersReport
44
missingInclude
55
missingIncludeSystem
6-
noConstructor
76
unknownMacro
87
unmatchedSuppression
9-
unreadVariable
108
unusedFunction
119
useInitializationList
1210
useStlAlgorithm
13-
variableScope
14-
virtualCallInConstructor

.cspell.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"ignorePaths": [
3-
"perception/bytetrack/lib/**",
4-
"planning/behavior_velocity_intersection_module/scripts/**"
3+
"perception/autoware_bytetrack/lib/**",
4+
"planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/scripts/**"
55
],
66
"ignoreRegExpList": [],
77
"words": ["dltype", "tvmgen", "fromarray"]

.github/CODEOWNERS

+19-18
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
name: build-and-test-differential
2+
description: ""
3+
4+
inputs:
5+
rosdistro:
6+
description: ""
7+
required: true
8+
container:
9+
description: ""
10+
required: true
11+
container-suffix:
12+
description: ""
13+
required: true
14+
runner:
15+
description: ""
16+
required: true
17+
build-depends-repos:
18+
description: ""
19+
required: true
20+
build-pre-command:
21+
description: ""
22+
required: true
23+
codecov-token:
24+
description: ""
25+
required: true
26+
27+
runs:
28+
using: composite
29+
steps:
30+
- name: Show disk space before the tasks
31+
run: df -h
32+
shell: bash
33+
34+
- name: Show machine specs
35+
run: lscpu && free -h
36+
shell: bash
37+
38+
- name: Remove exec_depend
39+
uses: autowarefoundation/autoware-github-actions/remove-exec-depend@v1
40+
41+
- name: Get modified packages
42+
id: get-modified-packages
43+
uses: autowarefoundation/autoware-github-actions/get-modified-packages@v1
44+
45+
- name: Create ccache directory
46+
run: |
47+
mkdir -p ${CCACHE_DIR}
48+
du -sh ${CCACHE_DIR} && ccache -s
49+
shell: bash
50+
51+
- name: Attempt to restore ccache
52+
uses: actions/cache/restore@v4
53+
with:
54+
path: |
55+
/root/.ccache
56+
key: ccache-main-${{ runner.arch }}-${{ inputs.rosdistro }}-${{ github.event.pull_request.base.sha }}
57+
restore-keys: |
58+
ccache-main-${{ runner.arch }}-${{ inputs.rosdistro }}-
59+
60+
- name: Show ccache stats before build
61+
run: du -sh ${CCACHE_DIR} && ccache -s
62+
shell: bash
63+
64+
- name: Export CUDA state as a variable for adding to cache key
65+
run: |
66+
build_type_cuda_state=nocuda
67+
if [[ "${{ inputs.container-suffix }}" == "-cuda" ]]; then
68+
build_type_cuda_state=cuda
69+
fi
70+
echo "BUILD_TYPE_CUDA_STATE=$build_type_cuda_state" >> "${GITHUB_ENV}"
71+
echo "::notice::BUILD_TYPE_CUDA_STATE=$build_type_cuda_state"
72+
shell: bash
73+
74+
- name: Build
75+
if: ${{ steps.get-modified-packages.outputs.modified-packages != '' }}
76+
uses: autowarefoundation/autoware-github-actions/colcon-build@v1
77+
with:
78+
rosdistro: ${{ inputs.rosdistro }}
79+
target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }}
80+
build-depends-repos: ${{ inputs.build-depends-repos }}
81+
cache-key-element: ${{ env.BUILD_TYPE_CUDA_STATE }}
82+
build-pre-command: ${{ inputs.build-pre-command }}
83+
84+
- name: Show ccache stats after build
85+
run: du -sh ${CCACHE_DIR} && ccache -s
86+
shell: bash
87+
88+
- name: Test
89+
id: test
90+
if: ${{ steps.get-modified-packages.outputs.modified-packages != '' }}
91+
uses: autowarefoundation/autoware-github-actions/colcon-test@v1
92+
with:
93+
rosdistro: ${{ inputs.rosdistro }}
94+
target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }}
95+
build-depends-repos: ${{ inputs.build-depends-repos }}
96+
97+
- name: Upload coverage to CodeCov
98+
if: ${{ steps.test.outputs.coverage-report-files != '' }}
99+
uses: codecov/codecov-action@v4
100+
with:
101+
files: ${{ steps.test.outputs.coverage-report-files }}
102+
fail_ci_if_error: false
103+
verbose: true
104+
flags: differential
105+
token: ${{ inputs.codecov-token }}
106+
107+
- name: Show disk space after the tasks
108+
run: df -h
109+
shell: bash

.github/labeler.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,8 @@
3939
- tools/**/*
4040
"component:vehicle":
4141
- vehicle/**/*
42+
"tag:require-cuda-build-and-test":
43+
- perception/**/*
44+
- sensing/**/*
45+
- common/cuda_utils/**/*
46+
- common/tensorrt_common/**/*

.github/overall-ci-infrastructure.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Overall CI Infrastructure
2+
3+
## Machine Types
4+
5+
### Standard GitHub-hosted runners
6+
7+
- [Documentation](https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories)
8+
9+
These runners are utilized by the majority of the workflows.
10+
They are free to use for public repositories, with a concurrency limit of 20 jobs per organization.
11+
12+
**Listed specs:**
13+
14+
| vCPU | RAM | Storage (SSD) |
15+
| ---- | ----- | ------------- |
16+
| 4 | 16 GB | 14 GB |
17+
18+
**Note:** While the official documentation lists 14 GB of storage, the actual available storage is approximately 73 GB.
19+
20+
### AWS CodeBuild runners
21+
22+
- [AWS CodeBuild Documentation](https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html)
23+
24+
These runners are employed for workflows that require more resources and are funded by the Autoware Foundation budget.
25+
26+
**Relevant machine types:**
27+
28+
| Instance Type | Memory | vCPUs | Price per Minute |
29+
| --------------- | ------ | ----- | ---------------- |
30+
| arm1.large | 16 GiB | 8 | $0.015 |
31+
| general1.medium | 7 GB | 4 | $0.01 |
32+
| general1.large | 15 GB | 8 | $0.02 |
33+
| general1.xlarge | 72 GiB | 36 | $0.0798 |
34+
| gpu1.small | 15 GB | 4 | $0.05 |
35+
36+
**Sources:**
37+
38+
- [Compute images supported with the CodeBuild-hosted GitHub Actions runner](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-github-action-runners-update-yaml.images.html)
39+
- [AWS CodeBuild pricing](https://aws.amazon.com/codebuild/pricing/)
40+
41+
## Key workflows and their runners
42+
43+
| Workflow | Trigger | Runner |
44+
| ---------------------------------- | --------------------- | -------------- |
45+
| build-and-test (cuda) | merge to main | general1.large |
46+
| build-and-test-daily | daily on main | github-std |
47+
| build-and-test-daily-arm64 | daily on main | arm1.large |
48+
| build-and-test-differential | PR update | github-std |
49+
| build-and-test-differential (cuda) | PR update | general1.large |
50+
| build-and-test-differential-arm64 | PR update (arm label) | arm1.large |
51+
52+
## Additional notes
53+
54+
- We use [`taskset`](https://manpages.ubuntu.com/manpages/jammy/man1/taskset.1.html) from GNU Coreutils to limit the number of cores utilized by build processes. This is done to prevent overloading the self-hosted runners.
55+
- The number of cores is limited to `vCPU count - 1`.

.github/workflows/build-and-test-daily-arm64.yaml

+9-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ on:
55
- cron: 0 0 * * *
66
workflow_dispatch:
77

8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
10+
cancel-in-progress: true
11+
812
jobs:
913
build-and-test-daily-arm64:
10-
runs-on: [self-hosted, linux, ARM64]
14+
runs-on: codebuild-autoware-us-east-1-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-large
1115
container: ${{ matrix.container }}${{ matrix.container-suffix }}
1216
strategy:
1317
fail-fast: false
@@ -30,6 +34,9 @@ jobs:
3034
- name: Show disk space before the tasks
3135
run: df -h
3236

37+
- name: Show machine specs
38+
run: lscpu && free -h
39+
3340
- name: Remove exec_depend
3441
uses: autowarefoundation/autoware-github-actions/remove-exec-depend@v1
3542

@@ -55,6 +62,7 @@ jobs:
5562
target-packages: ${{ steps.get-self-packages.outputs.self-packages }}
5663
build-depends-repos: ${{ matrix.build-depends-repos }}
5764
cache-key-element: ${{ env.BUILD_TYPE_CUDA_STATE }}
65+
build-pre-command: taskset --cpu-list 0-6
5866

5967
- name: Test
6068
if: ${{ steps.get-self-packages.outputs.self-packages != '' }}

.github/workflows/build-and-test-differential-arm64.yaml

+9-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ on:
88
- reopened
99
- labeled
1010

11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
13+
cancel-in-progress: true
14+
1115
jobs:
1216
make-sure-label-is-present:
1317
uses: autowarefoundation/autoware-github-actions/.github/workflows/make-sure-label-is-present.yaml@v1
@@ -17,7 +21,7 @@ jobs:
1721
build-and-test-differential-arm64:
1822
needs: make-sure-label-is-present
1923
if: ${{ needs.make-sure-label-is-present.outputs.result == 'true' }}
20-
runs-on: [self-hosted, linux, ARM64]
24+
runs-on: codebuild-autoware-us-east-1-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-large
2125
container: ${{ matrix.container }}${{ matrix.container-suffix }}
2226
strategy:
2327
fail-fast: false
@@ -44,6 +48,9 @@ jobs:
4448
- name: Show disk space before the tasks
4549
run: df -h
4650

51+
- name: Show machine specs
52+
run: lscpu && free -h
53+
4754
- name: Remove exec_depend
4855
uses: autowarefoundation/autoware-github-actions/remove-exec-depend@v1
4956

@@ -69,6 +76,7 @@ jobs:
6976
target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }}
7077
build-depends-repos: ${{ matrix.build-depends-repos }}
7178
cache-key-element: ${{ env.BUILD_TYPE_CUDA_STATE }}
79+
build-pre-command: taskset --cpu-list 0-6
7280

7381
- name: Test
7482
id: test

0 commit comments

Comments
 (0)