Showing preview only (486K chars total). Download the full file or copy to clipboard to get everything.
Repository: autowarefoundation/autoware
Branch: main
Commit: 181bab42929e
Files: 209
Total size: 437.2 KB
Directory structure:
gitextract_poq88meg/
├── .ansible-lint
├── .clang-format
├── .clang-tidy
├── .clang-tidy-ci
├── .devcontainer/
│ ├── Dockerfile
│ ├── core-devel/
│ │ └── devcontainer.json
│ ├── universe-devel/
│ │ └── devcontainer.json
│ └── universe-devel-cuda/
│ └── devcontainer.json
├── .dockerignore
├── .fdignore
├── .github/
│ ├── CODEOWNERS
│ ├── DISCUSSION_TEMPLATE/
│ │ └── general.yaml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug.yaml
│ │ ├── config.yml
│ │ ├── simple-issue.yaml
│ │ └── task.yaml
│ ├── actions/
│ │ ├── combine-multi-arch-images/
│ │ │ └── action.yaml
│ │ ├── docker-build/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push-base/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push-cuda/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push-tools/
│ │ │ └── action.yaml
│ │ └── free-disk-space/
│ │ └── action.yaml
│ ├── dependabot.yaml
│ ├── pull_request_template.md
│ ├── stale.yml
│ ├── sync-files.yaml
│ └── workflows/
│ ├── autoware-base.yaml
│ ├── backport.yaml
│ ├── bump-repo-versions-autoware.yaml
│ ├── bump-repo-versions-simulator.yaml
│ ├── bump-repo-versions-tools.yaml
│ ├── comment-on-pr.yaml
│ ├── dco.yaml
│ ├── docker-build-and-push.yaml
│ ├── github-release.yaml
│ ├── health-check.yaml
│ ├── keep-build-cache-small.yaml
│ ├── load-env.yaml
│ ├── mirror-main-branch.yaml
│ ├── pre-commit-ansible-autoupdate.yaml
│ ├── pre-commit-ansible.yaml
│ ├── pre-commit-optional.yaml
│ ├── pre-commit.yaml
│ ├── scenario-test-reusable.yaml
│ ├── scenario-test.yaml
│ ├── semantic-pull-request.yaml
│ ├── setup-docker.yaml
│ ├── setup-universe.yaml
│ ├── spell-check-daily.yaml
│ ├── spell-check-differential.yaml
│ └── sync-files.yaml
├── .gitignore
├── .hadolint.yaml
├── .markdown-link-check.json
├── .markdownlint.yaml
├── .pre-commit-config-ansible.yaml
├── .pre-commit-config-optional.yaml
├── .pre-commit-config.yaml
├── .prettierignore
├── .prettierrc.yaml
├── .rgignore
├── .shellcheckrc
├── .webauto-ci/
│ └── main/
│ ├── autoware-build/
│ │ └── run.sh
│ ├── autoware-setup/
│ │ └── run.sh
│ └── environment-setup/
│ └── run.sh
├── .webauto-ci.yaml
├── .yamllint.yaml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── CPPLINT.cfg
├── DISCLAIMER.md
├── LICENSE
├── NOTICE
├── README.md
├── amd64.env
├── amd64_jazzy.env
├── ansible/
│ ├── .gitignore
│ ├── COLCON_IGNORE
│ ├── README.md
│ ├── galaxy.yml
│ ├── playbooks/
│ │ ├── docker.yaml
│ │ ├── download_artifacts.yaml
│ │ ├── install_rviz_theme.yaml
│ │ ├── install_spconv.yaml
│ │ ├── openadkit.yaml
│ │ ├── role_rmw_implementation.yaml
│ │ ├── setup_acados.yaml
│ │ ├── telegraf.yaml
│ │ └── universe.yaml
│ └── roles/
│ ├── acados/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── agnocast/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── artifacts/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── build_tools/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── cuda/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── dev_tools/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── docker_engine/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gdown/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── geographiclib/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── kisak_mesa/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── nvidia_container_toolkit/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── qt5ct_setup/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ ├── files/
│ │ │ ├── autoware.qss
│ │ │ └── qt5ct.conf
│ │ ├── meta/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ └── main.yml
│ ├── rmw_implementation/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── ros2/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── ros2_dev_tools/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── spconv/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── telegraf/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── files/
│ │ │ ├── get_telegraf_proccpu_json.sh
│ │ │ ├── get_telegraf_procmem_json.sh
│ │ │ └── telegraf.conf
│ │ ├── handlers/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ └── tensorrt/
│ ├── README.md
│ ├── defaults/
│ │ └── main.yaml
│ ├── meta/
│ │ └── main.yaml
│ └── tasks/
│ └── main.yaml
├── ansible-galaxy-requirements.yaml
├── arm64.env
├── docker/
│ ├── Dockerfile
│ ├── Dockerfile.base
│ ├── README.md
│ ├── build.sh
│ ├── docker-bake-base.hcl
│ ├── docker-bake-cuda.hcl
│ ├── docker-bake.hcl
│ ├── docker-compose.gpu.yaml
│ ├── docker-compose.yaml
│ ├── etc/
│ │ ├── .bash_aliases
│ │ └── ros_entrypoint.sh
│ ├── logging-simulation.env
│ ├── logging-simulation.gpu.env
│ ├── planning-simulation.env
│ ├── run.sh
│ ├── scripts/
│ │ ├── build_and_clean.sh
│ │ ├── cleanup_apt.sh
│ │ ├── cleanup_system.sh
│ │ └── resolve_rosdep_keys.sh
│ └── tools/
│ ├── README.md
│ ├── docker-bake.hcl
│ ├── scenario-simulator/
│ │ ├── Dockerfile
│ │ ├── README.md
│ │ └── entrypoint.sh
│ └── visualizer/
│ ├── Dockerfile
│ ├── README.md
│ ├── entrypoint.sh
│ └── xstartup
├── repositories/
│ ├── autoware-nightly.repos
│ ├── autoware.repos
│ ├── extra-packages.repos
│ ├── simulator-nightly.repos
│ ├── simulator.repos
│ ├── tools-nightly.repos
│ └── tools.repos
├── setup-dev-env.sh
├── setup.cfg
└── src/
├── .gitignore
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .ansible-lint
================================================
skip_list:
- galaxy # We don't publish to Ansible Galaxy.
- package-latest # Since this is a development environment, we allow the latest versions.
warn_list: []
================================================
FILE: .clang-format
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
# Modified from https://github.com/ament/ament_lint/blob/master/ament_clang_format/ament_clang_format/configuration/.clang-format
Language: Cpp
BasedOnStyle: Google
AccessModifierOffset: -2
AlignAfterOpenBracket: AlwaysBreak
AllowShortFunctionsOnASingleLine: InlineOnly
BraceWrapping:
AfterClass: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
BreakBeforeBraces: Custom
ColumnLimit: 100
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 2
DerivePointerAlignment: false
PointerAlignment: Middle
ReflowComments: true
IncludeCategories:
# C++ system headers
- Regex: <[a-z_]*>
Priority: 6
CaseSensitive: true
# C system headers
- Regex: <.*\.h>
Priority: 5
CaseSensitive: true
# Boost headers
- Regex: boost/.*
Priority: 4
CaseSensitive: true
# Message headers
- Regex: .*_msgs/.*
Priority: 3
CaseSensitive: true
- Regex: .*_srvs/.*
Priority: 3
CaseSensitive: true
# Other Package headers
- Regex: <.*>
Priority: 2
CaseSensitive: true
# Local package headers
- Regex: '".*"'
Priority: 1
CaseSensitive: true
================================================
FILE: .clang-tidy
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
Checks: "
-*,
boost-use-to-string,
bugprone-argument-comment,
bugprone-assert-side-effect,
bugprone-bad-signal-to-kill-thread,
bugprone-bool-pointer-implicit-conversion,
bugprone-branch-clone,
bugprone-copy-constructor-init,
bugprone-dangling-handle,
bugprone-dynamic-static-initializers,
bugprone-exception-escape,
bugprone-fold-init-type,
bugprone-forward-declaration-namespace,
bugprone-forwarding-reference-overload,
bugprone-inaccurate-erase,
bugprone-incorrect-roundings,
bugprone-integer-division,
bugprone-lambda-function-name,
bugprone-macro-parentheses,
bugprone-macro-repeated-side-effects,
bugprone-misplaced-operator-in-strlen-in-alloc,
bugprone-misplaced-widening-cast,
bugprone-move-forwarding-reference,
bugprone-multiple-statement-macro,
bugprone-not-null-terminated-result,
bugprone-parent-virtual-call,
bugprone-posix-return,
bugprone-signed-char-misuse,
bugprone-sizeof-container,
bugprone-sizeof-expression,
bugprone-string-constructor,
bugprone-string-integer-assignment,
bugprone-string-literal-with-embedded-nul,
bugprone-suspicious-enum-usage,
bugprone-suspicious-memset-usage,
bugprone-suspicious-missing-comma,
bugprone-suspicious-semicolon,
bugprone-suspicious-string-compare,
bugprone-swapped-arguments,
bugprone-terminating-continue,
bugprone-throw-keyword-missing,
bugprone-too-small-loop-variable,
bugprone-unchecked-optional-access,
bugprone-undefined-memory-manipulation,
bugprone-undelegated-constructor,
bugprone-unhandled-self-assignment,
bugprone-unused-raii,
bugprone-unused-return-value,
bugprone-use-after-move,
bugprone-virtual-near-miss,
cppcoreguidelines-avoid-goto,
cppcoreguidelines-init-variables,
cppcoreguidelines-interfaces-global-init,
cppcoreguidelines-macro-usage,
cppcoreguidelines-narrowing-conversions,
cppcoreguidelines-no-malloc,
cppcoreguidelines-pro-bounds-pointer-arithmetic,
cppcoreguidelines-pro-type-const-cast,
cppcoreguidelines-pro-type-cstyle-cast,
cppcoreguidelines-pro-type-member-init,
cppcoreguidelines-pro-type-reinterpret-cast,
cppcoreguidelines-pro-type-static-cast-downcast,
cppcoreguidelines-pro-type-union-access,
cppcoreguidelines-slicing,
cppcoreguidelines-special-member-functions,
google-build-explicit-make-pair,
google-build-namespaces,
google-build-using-namespace,
google-explicit-constructor,
google-global-names-in-headers,
google-upgrade-googletest-case,
hicpp-exception-baseclass,
hicpp-multiway-paths-covered,
hicpp-no-assembler,
hicpp-signed-bitwise,
llvm-namespace-comment,
misc-definitions-in-headers,
misc-misplaced-const,
misc-new-delete-overloads,
misc-non-copyable-objects,
misc-redundant-expression,
misc-static-assert,
misc-throw-by-value-catch-by-reference,
misc-unconventional-assign-operator,
misc-uniqueptr-reset-release,
misc-unused-alias-decls,
misc-unused-parameters,
misc-unused-using-decls,
modernize-concat-nested-namespaces,
modernize-deprecated-headers,
modernize-deprecated-ios-base-aliases,
modernize-loop-convert,
modernize-make-shared,
modernize-make-unique,
modernize-pass-by-value,
modernize-raw-string-literal,
modernize-redundant-void-arg,
modernize-replace-auto-ptr,
modernize-replace-disallow-copy-and-assign-macro,
modernize-replace-random-shuffle,
modernize-return-braced-init-list,
modernize-shrink-to-fit,
modernize-unary-static-assert,
modernize-use-auto,
modernize-use-bool-literals,
modernize-use-default-member-init,
modernize-use-emplace,
modernize-use-equals-default,
modernize-use-equals-delete,
modernize-use-nodiscard,
modernize-use-noexcept,
modernize-use-nullptr,
modernize-use-override,
modernize-use-transparent-functors,
modernize-use-uncaught-exceptions,
modernize-use-using,
openmp-use-default-none,
performance-faster-string-find,
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm,
performance-inefficient-string-concatenation,
performance-inefficient-vector-operation,
performance-move-const-arg,
performance-move-constructor-init,
performance-no-automatic-move,
performance-no-int-to-ptr,
performance-noexcept-move-constructor,
performance-trivially-destructible,
performance-type-promotion-in-math-fn,
performance-unnecessary-copy-initialization,
performance-unnecessary-value-param,
portability-simd-intrinsics,
readability-const-return-type,
readability-container-size-empty,
readability-convert-member-functions-to-static,
readability-delete-null-pointer,
readability-else-after-return,
readability-function-cognitive-complexity,
readability-identifier-naming,
readability-inconsistent-declaration-parameter-name,
readability-isolate-declaration,
readability-make-member-function-const,
readability-misleading-indentation,
readability-misplaced-array-index,
readability-non-const-parameter,
readability-redundant-access-specifiers,
readability-redundant-control-flow,
readability-redundant-declaration,
readability-redundant-function-ptr-dereference,
readability-redundant-member-init,
readability-redundant-smartptr-get,
readability-redundant-string-cstr,
readability-redundant-string-init,
readability-simplify-boolean-expr,
readability-simplify-subscript-expr,
readability-static-accessed-through-instance,
readability-static-definition-in-anonymous-namespace,
readability-string-compare,
readability-uniqueptr-delete-release"
WarningsAsErrors: "
boost-use-to-string,
bugprone-dangling-handle,
bugprone-fold-init-type,
bugprone-inaccurate-erase,
bugprone-incorrect-roundings,
bugprone-misplaced-widening-cast,
bugprone-sizeof-container,
bugprone-sizeof-expression,
bugprone-string-constructor,
bugprone-suspicious-enum-usage,
bugprone-suspicious-memset-usage,
bugprone-suspicious-missing-comma,
bugprone-suspicious-semicolon,
bugprone-swapped-arguments,
bugprone-unused-raii,
bugprone-use-after-move,
llvm-namespace-comment,
misc-non-copyable-objects,
misc-redundant-expression,
misc-throw-by-value-catch-by-reference,
misc-unused-alias-decls,
misc-unused-parameters,
misc-unused-using-decls,
modernize-deprecated-headers,
modernize-redundant-void-arg,
modernize-use-bool-literals,
modernize-use-emplace,
modernize-use-equals-default,
modernize-use-equals-delete,
modernize-use-nullptr,
modernize-use-override,
modernize-use-using,
performance-faster-string-find,
performance-inefficient-algorithm,
readability-make-member-function-const,
readability-misleading-indentation,
readability-misplaced-array-index,
readability-string-compare"
HeaderFilterRegex: ^(?!\/usr)(?!\/opt)
ExtraArgs:
- -std=c++17
FormatStyle: none
CheckOptions:
- key: bugprone-argument-comment.CommentBoolLiterals
value: "0"
- key: bugprone-argument-comment.CommentCharacterLiterals
value: "0"
- key: bugprone-argument-comment.CommentFloatLiterals
value: "0"
- key: bugprone-argument-comment.CommentIntegerLiterals
value: "0"
- key: bugprone-argument-comment.CommentNullPtrs
value: "0"
- key: bugprone-argument-comment.CommentStringLiterals
value: "0"
- key: bugprone-argument-comment.CommentUserDefinedLiterals
value: "0"
- key: bugprone-argument-comment.IgnoreSingleArgument
value: "0"
- key: bugprone-argument-comment.StrictMode
value: "0"
- key: bugprone-assert-side-effect.AssertMacros
value: assert
- key: bugprone-assert-side-effect.CheckFunctionCalls
value: "0"
- key: bugprone-dangling-handle.HandleClasses
value: std::basic_string_view;std::experimental::basic_string_view
- key: bugprone-dynamic-static-initializers.HeaderFileExtensions
value: ",h,hh,hpp,hxx"
- key: bugprone-exception-escape.FunctionsThatShouldNotThrow
value: ""
- key: bugprone-exception-escape.IgnoredExceptions
value: ""
- key: bugprone-misplaced-widening-cast.CheckImplicitCasts
value: "0"
- key: bugprone-not-null-terminated-result.WantToUseSafeFunctions
value: "1"
- key: bugprone-signed-char-misuse.CharTypdefsToIgnore
value: ""
- key: bugprone-sizeof-expression.WarnOnSizeOfCompareToConstant
value: "1"
- key: bugprone-sizeof-expression.WarnOnSizeOfConstant
value: "1"
- key: bugprone-sizeof-expression.WarnOnSizeOfIntegerExpression
value: "0"
- key: bugprone-sizeof-expression.WarnOnSizeOfThis
value: "1"
- key: bugprone-string-constructor.LargeLengthThreshold
value: "8388608"
- key: bugprone-string-constructor.WarnOnLargeLength
value: "1"
- key: bugprone-suspicious-enum-usage.StrictMode
value: "0"
- key: bugprone-suspicious-missing-comma.MaxConcatenatedTokens
value: "5"
- key: bugprone-suspicious-missing-comma.RatioThreshold
value: "0.200000"
- key: bugprone-suspicious-missing-comma.SizeThreshold
value: "5"
- key: bugprone-suspicious-string-compare.StringCompareLikeFunctions
value: ""
- key: bugprone-suspicious-string-compare.WarnOnImplicitComparison
value: "1"
- key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison
value: "0"
- key: bugprone-too-small-loop-variable.MagnitudeBitsUpperLimit
value: "16"
- key: bugprone-unhandled-self-assignment.WarnOnlyIfThisHasSuspiciousField
value: "1"
- key: bugprone-unused-return-value.CheckedFunctions
value: ::std::async;::std::launder;::std::remove;::std::remove_if;::std::unique;::std::unique_ptr::release;::std::basic_string::empty;::std::vector::empty
- key: cert-dcl16-c.NewSuffixes
value: L;LL;LU;LLU
- key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField
value: "0"
- key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors
value: "1"
- key: cppcoreguidelines-macro-usage.AllowedRegexp
value: ^DEBUG_*
- key: cppcoreguidelines-macro-usage.CheckCapsOnly
value: "0"
- key: cppcoreguidelines-macro-usage.IgnoreCommandLineMacros
value: "1"
- key: cppcoreguidelines-no-malloc.Allocations
value: ::malloc;::calloc
- key: cppcoreguidelines-no-malloc.Deallocations
value: ::free
- key: cppcoreguidelines-no-malloc.Reallocations
value: ::realloc
- key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: "1"
- key: cppcoreguidelines-pro-type-member-init.IgnoreArrays
value: "0"
- key: cppcoreguidelines-pro-type-member-init.UseAssignment
value: "0"
- key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions
value: "0"
- key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
value: "0"
- key: google-readability-braces-around-statements.ShortStatementLines
value: "1"
- key: google-readability-function-size.StatementThreshold
value: "800"
- key: google-readability-namespace-comments.ShortNamespaceLines
value: "10"
- key: google-readability-namespace-comments.SpacesBeforeComments
value: "2"
- key: hicpp-multiway-paths-covered.WarnOnMissingElse
value: "0"
- key: hicpp-signed-bitwise.IgnorePositiveIntegerLiterals
value: "0"
- key: misc-definitions-in-headers.HeaderFileExtensions
value: ",h,hh,hpp,hxx"
- key: misc-definitions-in-headers.UseHeaderFileExtension
value: "1"
- key: misc-throw-by-value-catch-by-reference.CheckThrowTemporaries
value: "1"
- key: misc-unused-parameters.StrictMode
value: "0"
- key: modernize-loop-convert.MaxCopySize
value: "16"
- key: modernize-loop-convert.MinConfidence
value: reasonable
- key: modernize-loop-convert.NamingStyle
value: CamelCase
- key: modernize-make-shared.IgnoreMacros
value: "1"
- key: modernize-make-shared.IncludeStyle
value: google
- key: modernize-make-shared.MakeSmartPtrFunction
value: std::make_shared
- key: modernize-make-shared.MakeSmartPtrFunctionHeader
value: memory
- key: modernize-make-unique.IgnoreMacros
value: "1"
- key: modernize-make-unique.IncludeStyle
value: google
- key: modernize-make-unique.MakeSmartPtrFunction
value: std::make_unique
- key: modernize-make-unique.MakeSmartPtrFunctionHeader
value: memory
- key: modernize-pass-by-value.IncludeStyle
value: google
- key: modernize-pass-by-value.ValuesOnly
value: "0"
- key: modernize-raw-string-literal.ReplaceShorterLiterals
value: "0"
- key: modernize-replace-auto-ptr.IncludeStyle
value: google
- key: modernize-replace-random-shuffle.IncludeStyle
value: google
- key: modernize-use-auto.MinTypeNameLength
value: "5"
- key: modernize-use-auto.RemoveStars
value: "0"
- key: modernize-use-default-member-init.IgnoreMacros
value: "1"
- key: modernize-use-default-member-init.UseAssignment
value: "0"
- key: modernize-use-emplace.ContainersWithPushBack
value: ::std::vector;::std::list;::std::deque
- key: modernize-use-emplace.SmartPointers
value: ::std::shared_ptr;::std::unique_ptr;::std::auto_ptr;::std::weak_ptr
- key: modernize-use-emplace.TupleMakeFunctions
value: ::std::make_pair;::std::make_tuple
- key: modernize-use-emplace.TupleTypes
value: ::std::pair;::std::tuple
- key: modernize-use-equals-default.IgnoreMacros
value: "1"
- key: modernize-use-equals-delete.IgnoreMacros
value: "1"
- key: modernize-use-nodiscard.ReplacementString
value: "[[nodiscard]]"
- key: modernize-use-noexcept.ReplacementString
value: ""
- key: modernize-use-noexcept.UseNoexceptFalse
value: "1"
- key: modernize-use-nullptr.NullMacros
value: "NULL"
- key: modernize-use-override.AllowOverrideAndFinal
value: "0"
- key: modernize-use-override.FinalSpelling
value: final
- key: modernize-use-override.IgnoreDestructors
value: "0"
- key: modernize-use-override.OverrideSpelling
value: override
- key: modernize-use-transparent-functors.SafeMode
value: "0"
- key: modernize-use-using.IgnoreMacros
value: "1"
- key: performance-faster-string-find.StringLikeClasses
value: std::basic_string
- key: performance-for-range-copy.AllowedTypes
value: ""
- key: performance-for-range-copy.WarnOnAllAutoCopies
value: "0"
- key: performance-inefficient-string-concatenation.StrictMode
value: "0"
- key: performance-inefficient-vector-operation.EnableProto
value: "0"
- key: performance-inefficient-vector-operation.VectorLikeClasses
value: ::std::vector
- key: performance-move-const-arg.CheckTriviallyCopyableMove
value: "1"
- key: performance-move-constructor-init.IncludeStyle
value: google
- key: performance-no-automatic-move.AllowedTypes
value: ""
- key: performance-type-promotion-in-math-fn.IncludeStyle
value: google
- key: performance-unnecessary-copy-initialization.AllowedTypes
value: ""
- key: performance-unnecessary-value-param.AllowedTypes
value: .*Ptr;.*SharedFuture
- key: performance-unnecessary-value-param.IncludeStyle
value: google
- key: portability-simd-intrinsics.Std
value: ""
- key: portability-simd-intrinsics.Suggest
value: "0"
- key: readability-function-cognitive-complexity.IgnoreMacros
value: "1"
- key: readability-else-after-return.WarnOnUnfixable
value: "1"
- key: readability-identifier-naming.NamespaceCase
value: lower_case
- key: readability-identifier-naming.ClassCase
value: CamelCase
- key: readability-identifier-naming.PrivateMemberSuffix
value: _
- key: readability-identifier-naming.StructCase
value: CamelCase
- key: readability-identifier-naming.FunctionCase
value: lower_case
- key: readability-identifier-naming.VariableCase
value: lower_case
- key: readability-identifier-naming.GlobalConstantCase
value: lower_case
- key: readability-identifier-naming.GlobalConstantPrefix
value: g_
- key: readability-identifier-naming.ConstexprVariableCase
value: lower_case
- key: readability-inconsistent-declaration-parameter-name.IgnoreMacros
value: "1"
- key: readability-inconsistent-declaration-parameter-name.Strict
value: "0"
- key: readability-redundant-smartptr-get.IgnoreMacros
value: "1"
- key: readability-redundant-string-init.StringNames
value: ::std::basic_string
- key: readability-simplify-subscript-expr.Types
value: ::std::basic_string;::std::basic_string_view;::std::vector;::std::array
- key: readability-static-accessed-through-instance.NameSpecifierNestingThreshold
value: "3"
================================================
FILE: .clang-tidy-ci
================================================
Checks: "
-*,
bugprone-*,
-bugprone-branch-clone,
-bugprone-easily-swappable-parameters,
-bugprone-exception-escape,
-bugprone-implicit-widening-of-multiplication-result,
-bugprone-infinite-loop,
-bugprone-integer-division,
-bugprone-macro-parentheses,
-bugprone-narrowing-conversions,
-bugprone-parent-virtual-call,
-bugprone-reserved-identifier,
-bugprone-signed-char-misuse"
WarningsAsErrors: "*"
ExtraArgs:
- -std=c++17
- -Wno-c11-extensions
- -Wno-unknown-warning-option
================================================
FILE: .devcontainer/Dockerfile
================================================
# hadolint global ignore=DL3006
ARG BASE_IMAGE
FROM $BASE_IMAGE
ENV SHELL /bin/bash
ARG USERNAME=autoware
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
&& apt-get update \
&& apt-get install -y sudo \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME
================================================
FILE: .devcontainer/core-devel/devcontainer.json
================================================
{
"name": "autoware:core-devel",
"build": {
"dockerfile": "../Dockerfile",
"args": { "BASE_IMAGE": "ghcr.io/autowarefoundation/autoware:core-devel" }
},
"remoteUser": "autoware",
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined",
"--net=host",
"--volume=/etc/localtime:/etc/localtime:ro"
],
"customizations": {
"vscode": {
"settings.json": {
"terminal.integrated.profiles.linux": { "bash": { "path": "/bin/bash" } }
}
}
}
}
================================================
FILE: .devcontainer/universe-devel/devcontainer.json
================================================
{
"name": "autoware:universe-devel",
"build": {
"dockerfile": "../Dockerfile",
"args": { "BASE_IMAGE": "ghcr.io/autowarefoundation/autoware:universe-devel" }
},
"remoteUser": "autoware",
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined",
"--net=host",
"--volume=/etc/localtime:/etc/localtime:ro"
],
"customizations": {
"vscode": {
"settings.json": {
"terminal.integrated.profiles.linux": { "bash": { "path": "/bin/bash" } }
}
}
}
}
================================================
FILE: .devcontainer/universe-devel-cuda/devcontainer.json
================================================
{
"name": "autoware:universe-devel-cuda",
"build": {
"dockerfile": "../Dockerfile",
"args": { "BASE_IMAGE": "ghcr.io/autowarefoundation/autoware:universe-devel-cuda" }
},
"remoteUser": "autoware",
"hostRequirements": {
"gpu": true
},
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined",
"--net=host",
"--volume=/etc/localtime:/etc/localtime:ro",
"--gpus",
"all"
],
"customizations": {
"vscode": {
"settings.json": {
"terminal.integrated.profiles.linux": { "bash": { "path": "/bin/bash" } }
}
}
}
}
================================================
FILE: .dockerignore
================================================
# Ignore git and metadata directories
.git
.github
.vscode
# Ignore all markdown files
*.md
# Ignore Docker files
docker
!docker/etc
!docker/scripts
!docker/tools
# Ignore a part of files under src
src/**/.*
src/**/*.asc
src/**/*.gif
src/**/*.md
src/**/*.svg
# Ignore generated files by colcon
build
install
log
================================================
FILE: .fdignore
================================================
!/src/
================================================
FILE: .github/CODEOWNERS
================================================
* ryohsuke.mitsudome@tier4.jp mfc@autoware.org
.devcontainer/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp
.github/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp isamu.takagi@tier4.jp
ansible/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp isamu.takagi@tier4.jp
docker/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp isamu.takagi@tier4.jp
================================================
FILE: .github/DISCUSSION_TEMPLATE/general.yaml
================================================
body:
- type: checkboxes
attributes:
label: Code of Conduct
options:
- label: I have read [CODE OF CONDUCT](https://github.com/autowarefoundation/autoware/blob/main/CODE_OF_CONDUCT.md) and [Support Guidelines](https://autowarefoundation.github.io/autoware-documentation/main/support/support-guidelines/#github-discussions) before creating this Discussion post.
required: true
- type: textarea
attributes:
label: Contents
description: Write your contents here
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/bug.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: Bug
description: Report a bug
body:
- type: checkboxes
attributes:
label: Checklist
description: Confirm the following items before proceeding. If one cannot be satisfied, create a discussion thread instead.
options:
- label: I've read the [contribution guidelines](https://github.com/autowarefoundation/autoware/blob/main/CONTRIBUTING.md).
required: true
- label: I've searched other issues and no duplicate issues were found.
required: true
- label: I'm convinced that this is not my fault but a bug.
required: true
- type: textarea
attributes:
label: Description
description: Write a brief description of the bug.
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: Describe the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Actual behavior
description: Describe the actual behavior.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: Write the steps to reproduce the bug.
placeholder: |-
1.
2.
3.
validations:
required: true
- type: textarea
attributes:
label: Versions
description: Provide the version information. You can omit this if you believe it's irrelevant.
placeholder: |-
- OS:
- ROS 2:
- Autoware:
validations:
required: false
- type: textarea
attributes:
label: Possible causes
description: Write the possible causes if you have any ideas.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other additional context if it exists.
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
blank_issues_enabled: false
contact_links:
- name: Question
url: https://github.com/autowarefoundation/autoware/discussions/new?category=q-a
about: Ask a question
- name: Feature request
url: https://github.com/autowarefoundation/autoware/discussions/new?category=feature-requests
about: Send a feature request
- name: Idea
url: https://github.com/autowarefoundation/autoware/discussions/new?category=ideas
about: Post an idea
================================================
FILE: .github/ISSUE_TEMPLATE/simple-issue.yaml
================================================
name: Simple Issue
description: Create a simple issue
body:
- type: checkboxes
attributes:
label: Checklist
description: Confirm the following items before proceeding. If one cannot be satisfied, create a discussion thread instead.
options:
- label: I've read the [contribution guidelines](https://github.com/autowarefoundation/autoware/blob/main/CONTRIBUTING.md).
required: true
- label: I've searched other issues and no duplicate issues were found.
required: true
- type: textarea
attributes:
label: Description
description: Write a brief description of the issue.
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/task.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: Task
description: Plan a task
body:
- type: checkboxes
attributes:
label: Checklist
description: Confirm the following items before proceeding. If one cannot be satisfied, create a discussion thread instead.
options:
- label: I've read the [contribution guidelines](https://github.com/autowarefoundation/autoware/blob/main/CONTRIBUTING.md).
required: true
- label: I've searched other issues and no duplicate issues were found.
required: true
- label: I've agreed with the maintainers that I can plan this task.
required: true
- type: textarea
attributes:
label: Description
description: Write a brief description of the task.
validations:
required: true
- type: textarea
attributes:
label: Purpose
description: Describe the purpose of the task.
validations:
required: true
- type: textarea
attributes:
label: Possible approaches
description: Describe possible approaches for the task.
validations:
required: true
- type: textarea
attributes:
label: Definition of done
description: Write the definition of done for the task.
validations:
required: true
================================================
FILE: .github/actions/combine-multi-arch-images/action.yaml
================================================
name: combine-multi-arch-images
description: ""
inputs:
package-name:
description: ""
required: true
runs:
using: composite
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Set image name
id: set-image-name
run: echo "image-name=ghcr.io/${{ github.repository_owner }}/${{ inputs.package-name }}" >> $GITHUB_OUTPUT
shell: bash
- name: Get all tags
id: get-all-tags
run: |
base_url="https://api.github.com/orgs/${{ github.repository_owner }}/packages/container/${{ inputs.package-name }}/versions"
echo "base_url: $base_url"
all_tags=()
for page in $(seq 1 10); do
page_url="${base_url}?page=$page"
echo -e "\npage_url: $page_url"
page_tags=$(curl -fsSL "$page_url" -H "Authorization: token ${{ github.token }}" | jq ".[].metadata.container.tags[]" | cut -d '"' -f 2)
echo -e "\n[page_tags]\n$page_tags"
if [ "$page_tags" = "" ]; then
echo "No tags found in the page $page."
break
fi
for tag in $(IFS=$'\n'; echo "$page_tags"); do
all_tags+=("$tag")
done
done
all_tags=$(printf "%s\n" ${all_tags[@]})
echo -e "\n[all_tags]\n$all_tags"
echo "tags=$(printf "%s " $all_tags | sed 's/\s*$//')" >> $GITHUB_OUTPUT
shell: bash
- name: Get base tags
id: get-base-tags
run: |
amd64_tags=$(printf "%s\n" $ALL_TAGS | grep "\-amd64" | sed "s/-amd64$//g")
arm64_tags=$(printf "%s\n" $ALL_TAGS | grep "\-arm64" | sed "s/-arm64$//g")
base_tags=$(printf "%s\n" "$amd64_tags" "$arm64_tags" | sort | uniq)
echo -e "\n[amd64_tags]\n$amd64_tags"
echo -e "\n[arm64_tags]\n$arm64_tags"
echo -e "\n[base_tags]\n$base_tags"
echo "tags=$(printf "%s " $base_tags | sed 's/\s*$//')" >> $GITHUB_OUTPUT
env:
ALL_TAGS: ${{ steps.get-all-tags.outputs.tags }}
shell: bash
- name: Create Docker manifest and delete -amd64 and -arm64 tags
run: |
for base_tag in $BASE_TAGS; do
echo -e "\nbase_tag: $base_tag"
amd64_tag=$(printf "%s\n" $ALL_TAGS | grep "^$base_tag\-amd64" || true)
arm64_tag=$(printf "%s\n" $ALL_TAGS | grep "^$base_tag\-arm64" || true)
echo "amd64_tag: $amd64_tag"
echo "arm64_tag: $arm64_tag"
if [ "$amd64_tag" != "" ]; then
amd64_image="${{ steps.set-image-name.outputs.image-name }}:$amd64_tag"
else
echo "No amd64 tag found for '$base_tag'."
continue
fi
if [ "$arm64_tag" != "" ]; then
arm64_image="${{ steps.set-image-name.outputs.image-name }}:$arm64_tag"
else
echo "No arm64 tag found for '$base_tag'."
continue
fi
echo "amd64_image: $amd64_image"
echo "arm64_image: $arm64_image"
if docker manifest create ${{ steps.set-image-name.outputs.image-name }}:$base_tag \
$amd64_image \
$arm64_image; then
docker manifest push ${{ steps.set-image-name.outputs.image-name }}:$base_tag
# Delete amd64_image and arm64_image
curl -X DELETE \
-H "Authorization: Bearer ${{ github.token }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/${{ github.repository_owner }}/packages/container/${{ inputs.package-name }}/versions/$amd64_tag
curl -X DELETE \
-H "Authorization: Bearer ${{ github.token }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/${{ github.repository_owner }}/packages/container/${{ inputs.package-name }}/versions/$arm64_tag
fi
done
env:
ALL_TAGS: ${{ steps.get-all-tags.outputs.tags }}
BASE_TAGS: ${{ steps.get-base-tags.outputs.tags }}
shell: bash
================================================
FILE: .github/actions/docker-build/action.yaml
================================================
name: docker-build
description: Composite action to build images only.
inputs:
platform:
description: Target platform.
required: true
cache-tag-suffix:
description: Suffix of the target cache tag.
required: true
additional-repos:
description: Additional target .repos file.
default: ""
required: false
build-args:
description: Additional build args.
required: false
image-artifact-name:
description: Name of the exported docker image artifact.
default: ""
required: false
image-tag:
description: Tag for the saved docker image.
default: autoware:health-check-${{ github.sha }}
required: false
runs:
using: composite
steps:
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install vcs2l
run: |
sudo apt-get -y update
sudo apt-get -y install python3-pip
pipx install vcs2l
shell: bash
- name: Run vcs import
run: |
mkdir -p src
vcs import --shallow src < repositories/autoware.repos
shell: bash
- name: Import additional repositories
if: ${{ inputs.additional-repos != '' }}
run: |
vcs import --shallow --force src < ${{ inputs.additional-repos }}
shell: bash
- name: Cache ccache
uses: actions/cache@v4
if: ${{ github.ref == 'refs/heads/main'}}
id: cache-ccache
with:
path: |
root-ccache
key: ccache-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-${{ hashFiles('src/**/*.cpp') }}
restore-keys: |
ccache-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-
ccache-${{ inputs.platform }}-
- name: Cache apt-get
uses: actions/cache@v4
if: ${{ github.ref == 'refs/heads/main'}}
id: cache-apt-get
with:
path: |
var-cache-apt
key: apt-get-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-${{ hashFiles('src/**/package.xml') }}
restore-keys: |
apt-get-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-
apt-get-${{ inputs.platform }}-
- name: Restore ccache
uses: actions/cache/restore@v4
if: ${{ github.ref != 'refs/heads/main'}}
with:
path: |
root-ccache
key: ccache-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-${{ hashFiles('src/**/*.cpp') }}
restore-keys: |
ccache-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-
ccache-${{ inputs.platform }}-
- name: Restore apt-get
uses: actions/cache/restore@v4
if: ${{ github.ref != 'refs/heads/main'}}
with:
path: |
var-cache-apt
key: apt-get-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-${{ hashFiles('src/**/package.xml') }}
restore-keys: |
apt-get-${{ inputs.platform }}-${{ inputs.cache-tag-suffix }}-
apt-get-${{ inputs.platform }}-
- name: Inject cache into docker
# TODO(youtalk): Use the release version again
uses: reproducible-containers/buildkit-cache-dance@7c892679bab8ff382a8c88ab7f973d5e30a8f239
with:
utility-image: ghcr.io/containerd/busybox:latest
cache-map: |
{
"root-ccache": "/root/.ccache",
"var-cache-apt": "/var/cache/apt"
}
skip-extraction: ${{ steps.cache-ccache.outputs.cache-hit && steps.cache-apt-get.outputs.cache-hit }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Run docker build
uses: docker/build-push-action@v6
with:
file: docker/Dockerfile
context: .
push: false
load: true
target: universe-devel
build-args: ${{ inputs.build-args }}
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ inputs.platform }}-main
tags: ${{ inputs.image-tag }}
- name: Save Docker image
if: ${{ inputs.image-artifact-name != '' }}
run: docker save ${{ inputs.image-tag }} | gzip > /tmp/autoware-image.tar.gz
shell: bash
- name: Upload Docker image artifact
if: ${{ inputs.image-artifact-name != '' }}
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.image-artifact-name }}
path: /tmp/autoware-image.tar.gz
================================================
FILE: .github/actions/docker-build-and-push/action.yaml
================================================
name: docker-build-and-push
description: Composite action to build and push non CUDA images to registry.
inputs:
platform:
description: Target platform.
required: true
target-image:
description: Target docker image name in the registry.
required: true
build-args:
description: Additional build args.
required: false
max-parallelism:
default: 2
description: Maximum parallelism for buildkitd.
required: false
suffix:
description: Suffix for image tags.
required: false
default: ""
set-latest:
description: Whether to set the latest flavor for images.
required: false
default: true
# TODO(mitsudome-r): Remove this input after Jazzy porting is complete
core-only:
description: Whether to build only the core images.
required: false
default: false
runs:
using: composite
steps:
- name: Install jq and vcs2l
run: |
sudo apt-get -y update
sudo apt-get -y install jq python3-pip
pip install --no-cache-dir vcs2l
shell: bash
- name: Run vcs import
run: |
mkdir -p src
vcs import --shallow src < repositories/autoware.repos
shell: bash
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-config-inline: |
[worker.oci]
max-parallelism = ${{ inputs.max-parallelism }}
install: true
- name: Restore ccache
uses: actions/cache/restore@v4
with:
path: |
root-ccache
key: ccache-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}${{ hashFiles('src/**/*.cpp') }}
restore-keys: |
ccache-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}
ccache-${{ inputs.platform }}-
- name: Restore apt-get
uses: actions/cache/restore@v4
with:
path: |
var-cache-apt
key: apt-get-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}${{ hashFiles('src/**/package.xml') }}
restore-keys: |
apt-get-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}
apt-get-${{ inputs.platform }}-
- name: Inject cache into docker
# TODO(youtalk): Use the release version again
uses: reproducible-containers/buildkit-cache-dance@7c892679bab8ff382a8c88ab7f973d5e30a8f239
with:
utility-image: ghcr.io/containerd/busybox:latest
cache-map: |
{
"root-ccache": "/root/.ccache",
"var-cache-apt": "/var/cache/apt"
}
skip-extraction: true
- name: Get current date
id: date
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Docker meta for autoware:core-common-devel
id: meta-core-common-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=core-common-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=core-common-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=core-common-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-core-common-devel
flavor: |
latest=false
- name: Docker meta for autoware:core
id: meta-core
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=core${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=core-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=core-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-core
flavor: |
latest=false
- name: Docker meta for autoware:core-devel
id: meta-core-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=core-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=core-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=core-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-core-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-common-devel
id: meta-universe-common-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-common-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-common-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-common-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-common-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-sensing-perception-devel
id: meta-universe-sensing-perception-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-sensing-perception-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-sensing-perception-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-sensing-perception-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-sensing-perception-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-sensing-perception
id: meta-universe-sensing-perception
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-sensing-perception${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-sensing-perception-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-sensing-perception-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-sensing-perception
flavor: |
latest=false
- name: Docker meta for autoware:universe-localization-mapping-devel
id: meta-universe-localization-mapping-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-localization-mapping-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-localization-mapping-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-localization-mapping-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-localization-mapping-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-localization-mapping
id: meta-universe-localization-mapping
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-localization-mapping${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-localization-mapping-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-localization-mapping-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-localization-mapping
flavor: |
latest=false
- name: Docker meta for autoware:universe-planning-control-devel
id: meta-universe-planning-control-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-planning-control-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-planning-control-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-planning-control-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-planning-control-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-planning-control
id: meta-universe-planning-control
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-planning-control${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-planning-control-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-planning-control-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-planning-control
flavor: |
latest=false
- name: Docker meta for autoware:universe-vehicle-system-devel
id: meta-universe-vehicle-system-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-vehicle-system-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-vehicle-system-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-vehicle-system-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-vehicle-system-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-vehicle-system
id: meta-universe-vehicle-system
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-vehicle-system${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-vehicle-system-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-vehicle-system-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-vehicle-system
flavor: |
latest=false
- name: Docker meta for autoware:universe-visualization-devel
id: meta-universe-visualization-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-visualization-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-visualization-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-visualization-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-visualization-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-visualization
id: meta-universe-visualization
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-visualization${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-visualization-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-visualization-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-visualization
flavor: |
latest=false
- name: Docker meta for autoware:universe-api-devel
id: meta-universe-api-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-api-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-api-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-api-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-api-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe-api
id: meta-universe-api
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-api${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-api-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-api-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-api
flavor: |
latest=false
- name: Docker meta for autoware:universe-devel
id: meta-universe-devel
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-devel${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-devel-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-devel-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-devel
flavor: |
latest=false
- name: Docker meta for autoware:universe
id: meta-universe
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe${{ inputs.suffix }}-${{ inputs.platform }}
type=raw,value=universe-${{ steps.date.outputs.date }}${{ inputs.suffix }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-,suffix=${{ inputs.suffix }}-${{ inputs.platform }}
bake-target: docker-metadata-action-universe
flavor: |
latest=${{ inputs.set-latest }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: set build targets
id: set-build-targets
run: |
echo "build_targets=${{ fromJSON(inputs['core-only']) && 'core-common-devel' || 'core-common-devel,core,core-devel,universe-common-devel,universe-sensing-perception-devel,universe-sensing-perception,universe-localization-mapping-devel,universe-localization-mapping,universe-planning-control-devel,universe-planning-control,universe-vehicle-system-devel,universe-vehicle-system,universe-visualization-devel,universe-visualization,universe-api-devel,universe-api,universe-devel,universe'}}" >> $GITHUB_OUTPUT
shell: bash
- name: Build and Push to GitHub Container Registry
uses: docker/bake-action@v5
with:
push: true
targets: |
${{ steps.set-build-targets.outputs.build_targets }}
files: |
docker/docker-bake.hcl
${{ steps.meta-core-common-devel.outputs.bake-file }}
${{ steps.meta-core.outputs.bake-file }}
${{ steps.meta-core-devel.outputs.bake-file }}
${{ steps.meta-universe-common-devel.outputs.bake-file }}
${{ steps.meta-universe-sensing-perception-devel.outputs.bake-file }}
${{ steps.meta-universe-sensing-perception.outputs.bake-file }}
${{ steps.meta-universe-localization-mapping-devel.outputs.bake-file }}
${{ steps.meta-universe-localization-mapping.outputs.bake-file }}
${{ steps.meta-universe-planning-control-devel.outputs.bake-file }}
${{ steps.meta-universe-planning-control.outputs.bake-file }}
${{ steps.meta-universe-vehicle-system-devel.outputs.bake-file }}
${{ steps.meta-universe-vehicle-system.outputs.bake-file }}
${{ steps.meta-universe-visualization-devel.outputs.bake-file }}
${{ steps.meta-universe-visualization.outputs.bake-file }}
${{ steps.meta-universe-api-devel.outputs.bake-file }}
${{ steps.meta-universe-api.outputs.bake-file }}
${{ steps.meta-universe-devel.outputs.bake-file }}
${{ steps.meta-universe.outputs.bake-file }}
provenance: false
set: |
${{ inputs.build-args }}
================================================
FILE: .github/actions/docker-build-and-push-base/action.yaml
================================================
name: docker-build-and-push-base
description: Composite action to build and push base images to registry.
inputs:
target-image:
description: Target docker image name in the registry.
required: true
build-args:
description: Additional build args.
required: false
max-parallelism:
default: 2
description: Maximum parallelism for buildkitd.
required: false
set-latest:
description: Whether to set the latest flavor for images.
required: false
default: true
suffix:
description: Suffix for image tags.
required: false
default: ""
runs:
using: composite
steps:
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-config-inline: |
[worker.oci]
max-parallelism = ${{ inputs.max-parallelism }}
install: true
- name: Get current date
id: date
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Docker meta for autoware-base:latest
id: meta-base
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=${{ steps.date.outputs.date }}${{ inputs.suffix }}
type=raw,value=latest${{ inputs.suffix }}
bake-target: docker-metadata-action-base
flavor: |
latest=${{ inputs.set-latest }}
- name: Docker meta for autoware-base:cuda-latest
id: meta-base-cuda
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=cuda-latest${{ inputs.suffix }}
type=raw,value=cuda-${{ steps.date.outputs.date }}${{ inputs.suffix }}
bake-target: docker-metadata-action-base-cuda
flavor: |
latest=false
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Build and Push to GitHub Container Registry
uses: docker/bake-action@v5
with:
push: true
files: |
docker/docker-bake-base.hcl
${{ steps.meta-base.outputs.bake-file }}
${{ steps.meta-base-cuda.outputs.bake-file }}
provenance: false
set: |
${{ inputs.build-args }}
================================================
FILE: .github/actions/docker-build-and-push-cuda/action.yaml
================================================
name: docker-build-and-push-cuda
description: Composite action to build and push CUDA images to registry.
inputs:
platform:
description: Target platform.
required: true
target-image:
description: Target docker image name in the registry.
required: true
build-args:
description: Additional build args.
required: false
max-parallelism:
default: 2
description: Maximum parallelism for buildkitd.
required: false
suffix:
description: Suffix for image tags (e.g., -jazzy).
required: false
default: ""
runs:
using: composite
steps:
- name: Install jq and vcs2l
run: |
sudo apt-get -y update
sudo apt-get -y install curl gnupg lsb-release
# Add the ROS 2 GPG key and repository
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | \
sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt-get update
sudo apt-get install -y jq python3-pip python3-vcs2l
shell: bash
- name: Run vcs import
run: |
mkdir -p src
vcs import --shallow src < repositories/autoware.repos
shell: bash
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-config-inline: |
[worker.oci]
max-parallelism = ${{ inputs.max-parallelism }}
install: true
- name: Restore ccache
uses: actions/cache/restore@v4
with:
path: |
root-ccache
key: ccache-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}${{ hashFiles('src/**/*.cpp') }}
restore-keys: |
ccache-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}
ccache-${{ inputs.platform }}-
- name: Restore apt-get
uses: actions/cache/restore@v4
with:
path: |
var-cache-apt
key: apt-get-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}${{ hashFiles('src/**/package.xml') }}
restore-keys: |
apt-get-${{ inputs.platform }}-main-${{ inputs.platform == 'arm64' && 'arm64-' || '' }}
apt-get-${{ inputs.platform }}-
- name: Inject cache into docker
# TODO(youtalk): Use the release version again
uses: reproducible-containers/buildkit-cache-dance@7c892679bab8ff382a8c88ab7f973d5e30a8f239
with:
utility-image: ghcr.io/containerd/busybox:latest
cache-map: |
{
"root-ccache": "/root/.ccache",
"var-cache-apt": "/var/cache/apt"
}
skip-extraction: true
- name: Get current date
id: date
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Docker meta for autoware:universe-common-devel-cuda
id: meta-universe-common-devel-cuda
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-common-devel${{ inputs.suffix }}-cuda-${{ inputs.platform }}
type=raw,value=universe-common-devel${{ inputs.suffix }}-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-common-devel${{ inputs.suffix }}-cuda-,suffix=-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-common-devel-cuda
flavor: |
latest=false
- name: Docker meta for autoware:universe-sensing-perception-devel-cuda
id: meta-universe-sensing-perception-devel-cuda
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-sensing-perception-devel${{ inputs.suffix }}-cuda-${{ inputs.platform }}
type=raw,value=universe-sensing-perception-devel${{ inputs.suffix }}-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-sensing-perception-devel${{ inputs.suffix }}-cuda-,suffix=-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-sensing-perception-devel-cuda
flavor: |
latest=false
- name: Docker meta for autoware:universe-sensing-perception-cuda
id: meta-universe-sensing-perception-cuda
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-sensing-perception${{ inputs.suffix }}-cuda-${{ inputs.platform }}
type=raw,value=universe-sensing-perception${{ inputs.suffix }}-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-sensing-perception${{ inputs.suffix }}-cuda-,suffix=-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-sensing-perception-cuda
flavor: |
latest=false
- name: Docker meta for autoware:universe-devel-cuda
id: meta-universe-devel-cuda
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe-devel${{ inputs.suffix }}-cuda-${{ inputs.platform }}
type=raw,value=universe-devel${{ inputs.suffix }}-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe-devel${{ inputs.suffix }}-cuda-,suffix=-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-devel-cuda
flavor: |
latest=false
- name: Docker meta for autoware:universe-cuda
id: meta-universe-cuda
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=universe${{ inputs.suffix }}-cuda-${{ inputs.platform }}
type=raw,value=universe${{ inputs.suffix }}-cuda-${{ steps.date.outputs.date }}-${{ inputs.platform }}
type=ref,event=tag,prefix=universe${{ inputs.suffix }}-cuda-,suffix=-${{ inputs.platform }}
bake-target: docker-metadata-action-universe-cuda
flavor: |
latest=false
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Build and Push to GitHub Container Registry
uses: docker/bake-action@v5
with:
push: true
files: |
docker/docker-bake-cuda.hcl
${{ steps.meta-universe-common-devel-cuda.outputs.bake-file }}
${{ steps.meta-universe-sensing-perception-devel-cuda.outputs.bake-file }}
${{ steps.meta-universe-sensing-perception-cuda.outputs.bake-file }}
${{ steps.meta-universe-devel-cuda.outputs.bake-file }}
${{ steps.meta-universe-cuda.outputs.bake-file }}
provenance: false
set: |
${{ inputs.build-args }}
================================================
FILE: .github/actions/docker-build-and-push-tools/action.yaml
================================================
name: docker-build-and-push-tools
description: Composite action to build and push tools images to registry.
inputs:
platform:
description: Target platform.
required: true
target-image:
description: Target docker image name in the registry.
required: true
build-args:
description: Additional build args.
required: false
max-parallelism:
default: 2
description: Maximum parallelism for buildkitd.
required: false
runs:
using: composite
steps:
- name: Install jq and vcs2l
run: |
sudo apt-get -y update
sudo apt-get -y install jq python3-pip
pip install --no-cache-dir vcs2l
shell: bash
- name: Run vcs import
run: |
mkdir -p src
vcs import --shallow src < repositories/simulator.repos
shell: bash
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-config-inline: |
[worker.oci]
max-parallelism = ${{ inputs.max-parallelism }}
install: true
- name: Cache ccache
uses: actions/cache@v4
with:
path: |
root-ccache
key: ccache-tools-${{ inputs.platform }}-${{ hashFiles('src/**/*.cpp') }}
restore-keys: |
ccache-tools-${{ inputs.platform }}-
- name: Cache apt-get
uses: actions/cache@v4
with:
path: |
var-cache-apt
key: apt-get-tools-${{ inputs.platform }}-${{ hashFiles('src/**/package.xml') }}
restore-keys: |
apt-get-tools-${{ inputs.platform }}-
- name: Inject cache into docker
# TODO(youtalk): Use the release version again
uses: reproducible-containers/buildkit-cache-dance@7c892679bab8ff382a8c88ab7f973d5e30a8f239
with:
utility-image: ghcr.io/containerd/busybox:latest
cache-map: |
{
"root-ccache": "/root/.ccache",
"var-cache-apt": "/var/cache/apt"
}
skip-extraction: ${{ steps.cache-ccache.outputs.cache-hit && steps.cache-apt-get.outputs.cache-hit }}
- name: Get current date
id: date
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Docker meta for autoware-tools:visualizer
id: meta-visualizer
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=visualizer-${{ inputs.platform }}
type=raw,value=visualizer-${{ steps.date.outputs.date }}-${{ inputs.platform }}
type=ref,event=tag,prefix=visualizer-,suffix=-${{ inputs.platform }}
bake-target: docker-metadata-action-visualizer
flavor: |
latest=false
- name: Docker meta for autoware-tools:scenario-simulator
id: meta-scenario-simulator
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.target-image }}
tags: |
type=raw,value=scenario-simulator-${{ inputs.platform }}
type=raw,value=scenario-simulator-${{ steps.date.outputs.date }}-${{ inputs.platform }}
type=ref,event=tag,prefix=scenario-simulator-,suffix=-${{ inputs.platform }}
bake-target: docker-metadata-action-scenario-simulator
flavor: |
latest=false
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}
- name: Build and Push to GitHub Container Registry
uses: docker/bake-action@v5
with:
push: true
files: |
docker/tools/docker-bake.hcl
${{ steps.meta-visualizer.outputs.bake-file }}
${{ steps.meta-scenario-simulator.outputs.bake-file }}
provenance: false
set: |
${{ inputs.build-args }}
================================================
FILE: .github/actions/free-disk-space/action.yaml
================================================
name: free-disk-space
description: ""
runs:
using: composite
steps:
- name: Install sudo
run: |
if ! (command -v sudo >/dev/null 2>&1); then
apt-get -y update
apt-get -y install sudo
fi
shell: bash
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: true
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: false
================================================
FILE: .github/dependabot.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
version: 2
updates:
- package-ecosystem: github-actions
directory: /
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#scheduleinterval
schedule:
interval: monthly
open-pull-requests-limit: 1
labels:
- tag:bot
- type:github-actions
================================================
FILE: .github/pull_request_template.md
================================================
## Description
## How was this PR tested?
================================================
FILE: .github/stale.yml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
# Modified from https://github.com/probot/stale#usage
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed
daysUntilClose: false
# Label to use when marking as stale
staleLabel: status:stale
# Comment to post when marking as stale
markComment: >
This pull request has been automatically marked as stale because it has not had
recent activity.
================================================
FILE: .github/sync-files.yaml
================================================
- repository: autowarefoundation/sync-file-templates
source-dir: sources
files:
- source: .github/ISSUE_TEMPLATE/bug.yaml
- source: .github/ISSUE_TEMPLATE/config.yml
- source: .github/ISSUE_TEMPLATE/task.yaml
- source: .github/dependabot.yaml
- source: .github/stale.yml
- source: .github/workflows/backport.yaml
- source: .github/workflows/comment-on-pr.yaml
- source: .github/workflows/github-release.yaml
- source: .github/workflows/pre-commit-optional.yaml
- source: .github/workflows/pre-commit.yaml
- source: .github/workflows/semantic-pull-request.yaml
- source: .github/workflows/spell-check-differential.yaml
- source: .github/workflows/spell-check-daily.yaml
- source: .github/workflows/sync-files.yaml
- source: .clang-format
- source: .clang-tidy
- source: .markdown-link-check.json
- source: .markdownlint.yaml
- source: .pre-commit-config-optional.yaml
- source: .pre-commit-config.yaml
- source: .prettierignore
- source: .prettierrc.yaml
- source: .yamllint.yaml
- source: CODE_OF_CONDUCT.md
- source: CONTRIBUTING.md
- source: CPPLINT.cfg
- source: DISCLAIMER.md
- source: LICENSE
- source: setup.cfg
================================================
FILE: .github/workflows/autoware-base.yaml
================================================
name: autoware-base
on:
push:
branches:
- main
paths:
- .github/actions/docker-build-and-push-base
- .github/workflows/autoware-base.yaml
- amd64.env
- ansible-galaxy-requirements.yaml
- ansible/playbooks/openadkit.yaml
- ansible/roles/**
- arm64.env
- docker/Dockerfile.base
- docker/etc
- docker/scripts/cleanup_*.sh
- setup-dev-env.sh
schedule:
- cron: 0 0 15 * * # every 15th of the month
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
autoware-base:
strategy:
matrix:
platform: [humble, jazzy]
include:
- platform: humble
runner: ubuntu-22.04
env-file: amd64.env
suffix: "" # no suffix for humble since it is default
set-latest: true
- platform: jazzy
runner: ubuntu-24.04
env-file: amd64_jazzy.env
suffix: -jazzy
set-latest: false
runs-on: ${{ matrix.runner }}
steps:
- name: Check out this repository
uses: actions/checkout@v4
- name: Free disk space
uses: ./.github/actions/free-disk-space
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with: # cSpell:ignore tonistiigi, binfmt
image: tonistiigi/binfmt:qemu-v7.0.0
- name: Load env file
id: load-env
uses: falti/dotenv-action@v1
with:
path: ${{ matrix.env-file }}
export-variables: true
log-variables: true
- name: Build Autoware's base images
uses: ./.github/actions/docker-build-and-push-base
with:
target-image: autoware-base
build-args: |
*.platform=linux/amd64,linux/arm64
*.args.ROS_DISTRO=${{ steps.load-env.outputs.rosdistro }}
*.args.BASE_IMAGE=${{ steps.load-env.outputs.base_image }}
suffix: ${{ matrix.suffix }}
set-latest: ${{ matrix.set-latest }}
================================================
FILE: .github/workflows/backport.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: backport
on:
pull_request_target:
types:
- closed
- labeled
jobs:
backport:
runs-on: ubuntu-22.04
# Only react to merged PRs for security reasons.
# See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target.
if: >
github.event.pull_request.merged
&& (
github.event.action == 'closed'
|| (
github.event.action == 'labeled'
&& contains(github.event.label.name, 'backport')
)
)
steps:
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- uses: tibdex/backport@v2
id: backport
with:
github_token: ${{ steps.generate-token.outputs.token }}
title_template: "<%= title %> (backport #<%= number %>)"
- name: Request review from original author
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
PR_JSON: ${{ steps.backport.outputs.created_pull_requests }}
ORIGINAL_AUTHOR: ${{ github.event.pull_request.user.login }}
run: |
set -e
echo "Created PRs JSON: $PR_JSON"
echo "Original PR Author: $ORIGINAL_AUTHOR"
# Use 'jq' to parse the JSON and extract all PR numbers
pr_numbers=($(echo "$PR_JSON" | jq -r 'to_entries | .[] | .value'))
# Loop through the array of PR numbers
for pr_num in "${pr_numbers[@]}"; do
if [ -n "$pr_num" ]; then
echo "Requesting review for PR #$pr_num from $ORIGINAL_AUTHOR..."
gh pr edit "$pr_num" --add-reviewer "$ORIGINAL_AUTHOR" --repo "${{ github.repository }}"
fi
done
================================================
FILE: .github/workflows/bump-repo-versions-autoware.yaml
================================================
name: bump-repo-versions-autoware
on:
schedule:
- cron: 0 0,6,12,18 * * *
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
create-version-update-pr:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Generate GitHub App token
id: generate-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Create PRs to update VCS repositories for autoware.repos
uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1
with:
token: ${{ steps.generate-token.outputs.token }}
repo_name: autowarefoundation/autoware
parent_dir: .
targets: major minor patch
base_branch: main
new_branch_prefix: feat/update-
autoware_repos_file_name: repositories/autoware.repos
verbosity: 0
================================================
FILE: .github/workflows/bump-repo-versions-simulator.yaml
================================================
name: bump-repo-versions-simulator
on:
schedule:
- cron: 0 0,6,12,18 * * *
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
create-version-update-pr:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Generate GitHub App token
id: generate-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Create PRs to update VCS repositories for simulator.repos
uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1
with:
token: ${{ steps.generate-token.outputs.token }}
repo_name: autowarefoundation/autoware
parent_dir: .
targets: major minor
base_branch: main
new_branch_prefix: feat/update-
autoware_repos_file_name: repositories/simulator.repos
verbosity: 0
================================================
FILE: .github/workflows/bump-repo-versions-tools.yaml
================================================
name: bump-repo-versions-tools
on:
schedule:
- cron: 0 0,6,12,18 * * *
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
create-version-update-pr:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Generate GitHub App token
id: generate-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Create PRs to update VCS repositories for tools.repos
uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1
with:
token: ${{ steps.generate-token.outputs.token }}
repo_name: autowarefoundation/autoware
parent_dir: .
targets: major minor patch
base_branch: main
new_branch_prefix: feat/update-
autoware_repos_file_name: repositories/tools.repos
verbosity: 0
================================================
FILE: .github/workflows/comment-on-pr.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: comment-on-pr
on:
pull_request_target:
jobs:
comment-on-pr:
runs-on: ubuntu-22.04
permissions:
pull-requests: write
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Initial PR comment
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
Thank you for contributing to the Autoware project!
🚧 If your pull request is in progress, [switch it to draft mode](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft).
Please ensure:
- You've checked our [contribution guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/).
- Your PR follows our [pull request guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/pull-request-guidelines/).
- All required CI checks pass before [marking the PR ready for review](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review).
================================================
FILE: .github/workflows/dco.yaml
================================================
name: DCO
# ref: https://github.com/anchore/syft/pull/2926/files
on:
pull_request:
jobs:
dco:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Setup Python 3.x
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Check DCO
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pip3 install -U dco-check
dco-check --verbose --exclude-pattern 'pre-commit-ci\[bot\]@users\.noreply\.github\.com'
================================================
FILE: .github/workflows/docker-build-and-push.yaml
================================================
name: docker-build-and-push
on:
push:
branches:
- main
tags:
- "*.*.*"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
load-env:
uses: ./.github/workflows/load-env.yaml
with:
env_file: amd64.env
docker-build-and-push:
needs: load-env
strategy:
matrix:
platform: [amd64, arm64]
include:
- platform: amd64
runner: ubuntu-22.04
arch-platform: linux/amd64
lib-dir: x86_64
- platform: arm64
runner: ubuntu-22.04-arm
arch-platform: linux/arm64
lib-dir: aarch64
runs-on: ${{ matrix.runner }}
steps:
# https://github.com/actions/checkout/issues/211
- name: Change permission of workspace
run: |
sudo chown -R $USER:$USER ${{ github.workspace }}
- name: Check out repository
uses: actions/checkout@v4
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Get changed files
id: changed-files
uses: step-security/changed-files@v46
with:
files: |
*.env
repositories/*.repos
.github/actions/combine-multi-arch-images/action.yaml
.github/actions/docker-build-and-push*/action.yaml
.github/workflows/docker-build-and-push.yaml
ansible-galaxy-requirements.yaml
ansible/**
docker/**
- name: Free disk space
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/free-disk-space
- name: Build 'Autoware' without CUDA
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/docker-build-and-push
with:
platform: ${{ matrix.platform }}
target-image: autoware
build-args: |
*.platform=${{ matrix.arch-platform }}
*.args.ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }}
*.args.AUTOWARE_BASE_IMAGE=${{ needs.load-env.outputs.autoware_base_image }}
*.args.AUTOWARE_BASE_CUDA_IMAGE=${{ needs.load-env.outputs.autoware_base_cuda_image }}
*.args.LIB_DIR=${{ matrix.lib-dir }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-${{ github.ref_name }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-main
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-${{ github.ref_name }},mode=max
- name: Show disk space
if: always()
run: |
df -h
docker-build-and-push-tools:
needs: [load-env, docker-build-and-push]
strategy:
matrix:
platform: [amd64, arm64]
include:
- platform: amd64
runner: ubuntu-22.04
arch-platform: linux/amd64
lib-dir: x86_64
- platform: arm64
runner: ubuntu-22.04-arm
arch-platform: linux/arm64
lib-dir: aarch64
runs-on: ${{ matrix.runner }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Get changed files
id: changed-files
uses: step-security/changed-files@v46
with:
files: |
*.env
repositories/*.repos
.github/actions/combine-multi-arch-images/action.yaml
.github/actions/docker-build-and-push*/action.yaml
.github/workflows/docker-build-and-push.yaml
ansible-galaxy-requirements.yaml
ansible/**
docker/**
- name: Free disk space
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/free-disk-space
- name: Build 'autoware-tools'
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/docker-build-and-push-tools
with:
platform: ${{ matrix.platform }}
target-image: autoware-tools
build-args: |
*.platform=${{ matrix.arch-platform }}
*.args.ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }}
*.args.LIB_DIR=${{ matrix.lib-dir }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-${{ github.ref_name }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-main
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-${{ github.ref_name }},mode=max
- name: Show disk space
if: always()
run: |
df -h
docker-build-and-push-cuda:
needs: [load-env, docker-build-and-push]
strategy:
matrix:
platform: [amd64, arm64]
include:
- platform: amd64
runner: [self-hosted, Linux, X64]
arch-platform: linux/amd64
lib-dir: x86_64
- platform: arm64
runner: [self-hosted, Linux, ARM64]
arch-platform: linux/arm64
lib-dir: aarch64
runs-on: ${{ matrix.runner }}
steps:
# https://github.com/actions/checkout/issues/211
- name: Change permission of workspace
run: |
sudo chown -R $USER:$USER ${{ github.workspace }}
- name: Check out repository
uses: actions/checkout@v4
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Get changed files
id: changed-files
uses: step-security/changed-files@v46
with:
files: |
*.env
repositories/*.repos
.github/actions/combine-multi-arch-images/action.yaml
.github/actions/docker-build-and-push*/action.yaml
.github/workflows/docker-build-and-push.yaml
ansible-galaxy-requirements.yaml
ansible/**
docker/**
- name: Free disk space
if: ${{ runner.environment == 'github-hosted' &&
(steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag')) }}
uses: ./.github/actions/free-disk-space
- name: Build 'Autoware' with CUDA
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/docker-build-and-push-cuda
with:
platform: ${{ matrix.platform }}
target-image: autoware
build-args: |
*.platform=${{ matrix.arch-platform }}
*.args.ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }}
*.args.BASE_IMAGE=${{ needs.load-env.outputs.base_image }}
*.args.AUTOWARE_BASE_IMAGE=${{ needs.load-env.outputs.autoware_base_image }}
*.args.AUTOWARE_BASE_CUDA_IMAGE=${{ needs.load-env.outputs.autoware_base_cuda_image }}
*.args.LIB_DIR=${{ matrix.lib-dir }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-${{ github.ref_name }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-main
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-${{ github.ref_name }},mode=max
- name: Show disk space
if: always()
run: |
df -h
update-docker-manifest:
needs: docker-build-and-push
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Combine multi arch images for 'autoware' without CUDA
uses: ./.github/actions/combine-multi-arch-images
with:
package-name: autoware
update-docker-manifest-cuda:
needs: docker-build-and-push-cuda
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Combine multi arch images for 'autoware' with CUDA
uses: ./.github/actions/combine-multi-arch-images
with:
package-name: autoware
update-docker-manifest-tools:
needs: docker-build-and-push-tools
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Combine multi arch images for 'autoware-tools'
uses: ./.github/actions/combine-multi-arch-images
with:
package-name: autoware-tools
load-env-jazzy:
uses: ./.github/workflows/load-env.yaml
with:
env_file: amd64_jazzy.env
docker-build-and-push-jazzy:
needs: [load-env-jazzy]
strategy:
matrix:
platform: [amd64, arm64]
include:
- platform: amd64
runner: ubuntu-24.04
arch-platform: linux/amd64
lib-dir: x86_64
- platform: arm64
runner: ubuntu-24.04-arm
arch-platform: linux/arm64
lib-dir: aarch64
runs-on: ${{ matrix.runner }}
steps:
# https://github.com/actions/checkout/issues/211
- name: Change permission of workspace
run: |
sudo chown -R $USER:$USER ${{ github.workspace }}
- name: Check out repository
uses: actions/checkout@v4
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Get changed files
id: changed-files
uses: step-security/changed-files@v46
with:
files: |
*.env
repositories/*.repos
.github/actions/combine-multi-arch-images/action.yaml
.github/actions/docker-build-and-push*/action.yaml
.github/workflows/docker-build-and-push.yaml
ansible-galaxy-requirements.yaml
ansible/**
docker/**
- name: Free disk space
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/free-disk-space
- name: Build 'Autoware Jazzy Universe' without CUDA
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/docker-build-and-push
with:
platform: ${{ matrix.platform }}
target-image: autoware
build-args: |
*.platform=${{ matrix.arch-platform }}
*.args.ROS_DISTRO=${{ needs.load-env-jazzy.outputs.rosdistro }}
*.args.AUTOWARE_BASE_IMAGE=${{ needs.load-env-jazzy.outputs.autoware_base_image }}
*.args.AUTOWARE_BASE_CUDA_IMAGE=${{ needs.load-env-jazzy.outputs.autoware_base_cuda_image }}
*.args.LIB_DIR=${{ matrix.lib-dir }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-jazzy-${{ github.ref_name }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-jazzy-main
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-jazzy-${{ github.ref_name }},mode=max
set-latest: false
suffix: -jazzy
- name: Show disk space
if: always()
run: |
df -h
docker-build-and-push-jazzy-cuda:
needs: [load-env-jazzy, docker-build-and-push-jazzy]
strategy:
matrix:
platform: [amd64, arm64]
include:
- platform: amd64
runner: [self-hosted, Linux, X64]
arch-platform: linux/amd64
lib-dir: x86_64
- platform: arm64
runner: [self-hosted, Linux, ARM64]
arch-platform: linux/arm64
lib-dir: aarch64
runs-on: ${{ matrix.runner }}
steps:
# https://github.com/actions/checkout/issues/211
- name: Change permission of workspace
run: |
sudo chown -R $USER:$USER ${{ github.workspace }}
- name: Check out repository
uses: actions/checkout@v4
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Get changed files
id: changed-files
uses: step-security/changed-files@v46
with:
files: |
*.env
*.repos
.github/actions/combine-multi-arch-images/action.yaml
.github/actions/docker-build-and-push*/action.yaml
.github/workflows/docker-build-and-push.yaml
ansible-galaxy-requirements.yaml
ansible/**
docker/**
- name: Free disk space
if: ${{ runner.environment == 'github-hosted' &&
(steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag')) }}
uses: ./.github/actions/free-disk-space
- name: Build 'Autoware Jazzy Universe' with CUDA
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.ref_type == 'tag') }}
uses: ./.github/actions/docker-build-and-push-cuda
with:
platform: ${{ matrix.platform }}
target-image: autoware
build-args: |
*.platform=${{ matrix.arch-platform }}
*.args.ROS_DISTRO=${{ needs.load-env-jazzy.outputs.rosdistro }}
*.args.BASE_IMAGE=${{ needs.load-env-jazzy.outputs.base_image }}
*.args.AUTOWARE_BASE_IMAGE=${{ needs.load-env-jazzy.outputs.autoware_base_image }}
*.args.AUTOWARE_BASE_CUDA_IMAGE=${{ needs.load-env-jazzy.outputs.autoware_base_cuda_image }}
*.args.LIB_DIR=${{ matrix.lib-dir }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-jazzy-cuda-${{ github.ref_name }}
*.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-jazzy-cuda-main
*.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.platform }}-jazzy-cuda-${{ github.ref_name }},mode=max
suffix: -jazzy
- name: Show disk space
if: always()
run: |
df -h
update-docker-manifest-jazzy:
needs: [docker-build-and-push-jazzy]
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Combine multi arch images for 'autoware' Jazzy
uses: ./.github/actions/combine-multi-arch-images
with:
package-name: autoware
update-docker-manifest-jazzy-cuda:
needs: [docker-build-and-push-jazzy-cuda]
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Combine multi arch images for 'autoware' Jazzy with CUDA
uses: ./.github/actions/combine-multi-arch-images
with:
package-name: autoware
================================================
FILE: .github/workflows/github-release.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: github-release
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
workflow_dispatch:
inputs:
tag-name:
description: The name of the tag to release
type: string
required: true
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
github-release:
runs-on: ubuntu-22.04
steps:
- name: Set tag name
id: set-tag-name
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
REF_NAME="${{ github.event.inputs.tag-name }}"
else
REF_NAME="${{ github.ref_name }}"
fi
echo "tag-name=$REF_NAME" >> $GITHUB_OUTPUT
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ steps.set-tag-name.outputs.tag-name }}
- name: Run generate-changelog
id: generate-changelog
uses: autowarefoundation/autoware-github-actions/generate-changelog@v1
with:
git-cliff-args: --tag-pattern "^(\d+)\.(\d+)\.(\d+)$" --latest
- name: Select verb
id: select-verb
run: |
has_previous_draft=$(gh release view --json isDraft -q ".isDraft" "${{ steps.set-tag-name.outputs.tag-name }}") || true
verb=create
if [ "$has_previous_draft" = "true" ]; then
verb=edit
fi
echo "verb=$verb" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release to GitHub
run: |
gh release ${{ steps.select-verb.outputs.verb }} "${{ steps.set-tag-name.outputs.tag-name }}" \
--draft \
--title "${{ steps.set-tag-name.outputs.tag-name }}" \
--notes "$NOTES"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NOTES: ${{ steps.generate-changelog.outputs.changelog }}
================================================
FILE: .github/workflows/health-check.yaml
================================================
name: health-check
on:
pull_request:
types:
- opened
- synchronize
- reopened
- labeled
schedule:
- cron: 0 12 * * *
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
label-check:
uses: autowarefoundation/autoware-github-actions/.github/workflows/make-sure-label-is-present.yaml@v1
with:
label: run:health-check
load-env:
needs: label-check
if: ${{ needs.label-check.outputs.result == 'true' ||
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch' }}
uses: ./.github/workflows/load-env.yaml
docker-build:
needs: load-env
strategy:
fail-fast: false
matrix:
build-type: [main, nightly, main-arm64]
include:
- build-type: main
platform: amd64
runner: "['self-hosted','Linux','X64']"
lib-dir: x86_64
container: ubuntu:22.04
- build-type: nightly
platform: amd64
runner: "['ubuntu-24.04']"
lib-dir: x86_64
- build-type: main-arm64
platform: arm64
runner: "['ubuntu-24.04-arm']"
lib-dir: aarch64
runs-on: ${{ fromJson(matrix.runner) }}
steps:
- name: Clean up previous run artifacts
run: sudo rm -rf ${{ github.workspace }}/scenario_out
# https://github.com/actions/checkout/issues/211
- name: Change permission of workspace
run: |
sudo chown -R $USER:$USER ${{ github.workspace }}
- name: Check out repository
uses: actions/checkout@v4
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Get changed files
id: changed-files
uses: step-security/changed-files@v46
with:
files: |
*.env
repositories/*.repos
.github/actions/docker-build/action.yaml
.github/workflows/health-check.yaml
ansible-galaxy-requirements.yaml
ansible/**
docker/**
setup-dev-env.sh
- name: Show disk space
if: always()
run: |
df -h
- name: Free disk space
if: ${{ steps.changed-files.outputs.any_changed == 'true' &&
matrix.build-type != 'main' }}
uses: ./.github/actions/free-disk-space
- name: Build 'Autoware'
if: ${{ steps.changed-files.outputs.any_changed == 'true' ||
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch' }}
uses: ./.github/actions/docker-build
with:
platform: ${{ matrix.platform }}
cache-tag-suffix: ${{ matrix.build-type }}
image-artifact-name: ${{ matrix.build-type == 'main' && 'autoware-image' || '' }}
additional-repos: ${{ matrix.build-type == 'nightly' && 'repositories/autoware-nightly.repos' || '' }}
build-args: |
ROS_DISTRO=${{ needs.load-env.outputs.rosdistro }}
AUTOWARE_BASE_IMAGE=${{ needs.load-env.outputs.autoware_base_image }}
AUTOWARE_BASE_CUDA_IMAGE=${{ needs.load-env.outputs.autoware_base_cuda_image }}
LIB_DIR=${{ matrix.lib-dir }}
- name: Show disk space
if: always()
run: |
df -h
scenario-test:
needs: docker-build
uses: ./.github/workflows/scenario-test-reusable.yaml
with:
autoware_container_image: autoware:health-check-${{ github.sha }}
================================================
FILE: .github/workflows/keep-build-cache-small.yaml
================================================
name: keep-build-cache-small
on:
workflow_dispatch:
schedule:
- cron: 0 6 * * *
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
keep-build-cache-small:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- image_tag: amd64-main
cache_threshold_gb: 7.0
- image_tag: arm64-main
cache_threshold_gb: 9.0
env:
IMAGE_NAME: autoware-buildcache
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y skopeo jq bc
- name: Set up environment variables
run: |
echo "CACHE_THRESHOLD_GB=${{ matrix.cache_threshold_gb }}" >> "$GITHUB_ENV"
echo "IMAGE_TAG=${{ matrix.image_tag }}" >> "$GITHUB_ENV"
echo "BUILD_CACHE_IMAGE=ghcr.io/autowarefoundation/${{ env.IMAGE_NAME }}:${{ matrix.image_tag }}" >> "$GITHUB_ENV"
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Check if build cache image exists
id: check_image
run: |
echo "🔍 Checking if build cache image exists..."
if skopeo inspect --raw docker://${{ env.BUILD_CACHE_IMAGE }} > /dev/null 2>&1; then
echo "✅ Build cache image found. Proceeding..."
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "⚠️ Build cache image does not exist. Skipping remaining steps."
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
- name: Calculate cache size
id: calc_size
if: steps.check_image.outputs.exists == 'true'
run: |
echo "🔍 Inspecting build cache size for image: ${{ env.BUILD_CACHE_IMAGE }}..."
SIZE_BYTES=$(skopeo inspect --raw docker://${{ env.BUILD_CACHE_IMAGE }} | jq '.layers | map(.size) | add')
SIZE_GB=$(echo "scale=2; $SIZE_BYTES / (1024 * 1024 * 1024)" | bc)
echo "Cache size: ${SIZE_GB} GB"
echo "size_gb=${SIZE_GB}" >> "$GITHUB_OUTPUT"
- name: Compare cache size with threshold
id: check_threshold
if: steps.check_image.outputs.exists == 'true'
run: |
echo "📊 Checking cache size against threshold..."
THRESHOLD_GB=${{ env.CACHE_THRESHOLD_GB }}
CACHE_SIZE_GB=${{ steps.calc_size.outputs.size_gb }}
if (( $(echo "$CACHE_SIZE_GB > $THRESHOLD_GB" | bc -l) )); then
echo "❌ Cache size exceeds threshold. Action needed."
echo "status=exceeded" >> "$GITHUB_OUTPUT"
else
echo "✅ Cache size is within threshold. No action needed."
echo "status=ok" >> "$GITHUB_OUTPUT"
fi
- name: Delete build cache if exceeded
uses: bots-house/ghcr-delete-image-action@v1.1.0
if: steps.check_threshold.outputs.status == 'exceeded'
with:
name: ${{ env.IMAGE_NAME }}
tag: ${{ matrix.image_tag }}
owner: ${{ github.repository_owner }}
token: ${{ secrets.GITHUB_TOKEN }}
- name: Verify cache deletion
if: steps.check_threshold.outputs.status == 'exceeded'
id: verify_deletion
run: |
echo "🔍 Verifying if build cache image has been deleted..."
if skopeo inspect --raw docker://${{ env.BUILD_CACHE_IMAGE }} > /dev/null 2>&1; then
echo "❌ Build cache image still exists!"
echo "status=failed" >> "$GITHUB_OUTPUT"
exit 1
else
echo "✅ Build cache image successfully deleted."
echo "status=success" >> "$GITHUB_OUTPUT"
fi
- name: Generate workflow summary
if: always()
run: |
SUMMARY="# 📦 Build Cache Size Check\n"
SUMMARY+="- **Image**: \`${{ env.BUILD_CACHE_IMAGE }}\`\n"
if [[ "${{ steps.check_image.outputs.exists }}" == "false" ]]; then
SUMMARY+="⚠️ **Build cache image does not exist. Skipping checks.**\n"
else
SUMMARY+="- **Cache Size**: ${{ steps.calc_size.outputs.size_gb }} GB\n"
SUMMARY+="- **Threshold**: ${{ env.CACHE_THRESHOLD_GB }} GB\n"
if [[ "${{ steps.check_threshold.outputs.status }}" == "exceeded" ]]; then
if [[ "${{ steps.verify_deletion.outputs.status }}" != "success" ]]; then
SUMMARY+="❌ **Cache size exceeded, but deletion failed!**\n"
else
SUMMARY+="🗑️✅ **Cache size exceeded. Image deleted successfully!**\n"
fi
else
SUMMARY+="👌✅ **Cache size is within acceptable limits.**\n"
fi
fi
echo -e "$SUMMARY"
echo -e "$SUMMARY" >> $GITHUB_STEP_SUMMARY
================================================
FILE: .github/workflows/load-env.yaml
================================================
name: load-env
on:
workflow_call:
inputs:
env_file:
description: Specify the env file to load (e.g., amd64.env, amd64_jazzy.env)
required: false
type: string
default: ""
outputs:
rosdistro:
value: ${{ jobs.load-env.outputs.rosdistro }}
base_image:
value: ${{ jobs.load-env.outputs.base_image }}
autoware_base_image:
value: ${{ jobs.load-env.outputs.autoware_base_image }}
autoware_base_cuda_image:
value: ${{ jobs.load-env.outputs.autoware_base_cuda_image }}
jobs:
load-env:
runs-on: ubuntu-22.04
outputs:
rosdistro: ${{ steps.set-env.outputs.rosdistro }}
base_image: ${{ steps.set-env.outputs.base_image }}
autoware_base_image: ${{ steps.set-env.outputs.autoware_base_image }}
autoware_base_cuda_image: ${{ steps.set-env.outputs.autoware_base_cuda_image }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Load env
run: |
# Check if env_file is specified
if [ -n "${{ inputs.env_file }}" ]; then
# Use specified env file
echo "Loading specified env file: ${{ inputs.env_file }}"
cat ${{ inputs.env_file }} | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
else
# Auto-detect based on ROS_DISTRO
rosdistro=${ROS_DISTRO:-humble}
echo "rosdistro=$rosdistro" >> $GITHUB_ENV
# Determine which env file to use based on rosdistro
if [ "$rosdistro" = "humble" ]; then
echo "Loading amd64.env for Humble"
cat amd64.env | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
else
echo "Loading amd64_jazzy.env for Jazzy"
cat amd64_jazzy.env | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
fi
fi
# Load ARM64 specific env if on ARM64 architecture
if [ "$(uname -m)" = "aarch64" ]; then
echo "Loading arm64.env for ARM64 architecture"
cat arm64.env | sed -e "s/^\s*//" -e "/^#/d" >> $GITHUB_ENV
fi
- name: Set env
id: set-env
run: |
echo "rosdistro=${{ env.rosdistro }}" >> $GITHUB_OUTPUT
echo "base_image=${{ env.base_image }}" >> $GITHUB_OUTPUT
echo "autoware_base_image=${{ env.autoware_base_image }}" >> $GITHUB_OUTPUT
echo "autoware_base_cuda_image=${{ env.autoware_base_cuda_image }}" >> $GITHUB_OUTPUT
================================================
FILE: .github/workflows/mirror-main-branch.yaml
================================================
name: mirror-main-branch
on:
push:
branches:
- main
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
mirror-main-branch:
runs-on: ubuntu-22.04
steps:
- uses: zofrex/mirror-branch@v1
with:
target-branch: humble
================================================
FILE: .github/workflows/pre-commit-ansible-autoupdate.yaml
================================================
name: pre-commit-ansible-autoupdate
on:
schedule:
- cron: 0 0 * * *
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check-secret:
uses: autowarefoundation/autoware-github-actions/.github/workflows/check-secret.yaml@v1
secrets:
secret: ${{ secrets.APP_ID }}
pre-commit-ansible-autoupdate:
needs: check-secret
if: ${{ needs.check-secret.outputs.set == 'true' }}
runs-on: ubuntu-22.04
steps:
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Run pre-commit-autoupdate
uses: autowarefoundation/autoware-github-actions/pre-commit-autoupdate@v1
with:
token: ${{ steps.generate-token.outputs.token }}
pre-commit-config: .pre-commit-config-ansible.yaml
pr-labels: |
tag:bot
tag:pre-commit-autoupdate
pr-branch: pre-commit-ansible-autoupdate
pr-title: "ci(pre-commit-ansible): autoupdate"
pr-commit-message: "ci(pre-commit-ansible): autoupdate"
auto-merge-method: squash
================================================
FILE: .github/workflows/pre-commit-ansible.yaml
================================================
name: pre-commit-ansible
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
pre-commit-ansible:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Ansible Galaxy depends for ansible-lint
run: |
ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml
- name: Run pre-commit
uses: autowarefoundation/autoware-github-actions/pre-commit@v1
with:
pre-commit-config: .pre-commit-config-ansible.yaml
================================================
FILE: .github/workflows/pre-commit-optional.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: pre-commit-optional
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
pre-commit-optional:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run pre-commit
uses: autowarefoundation/autoware-github-actions/pre-commit@v1
with:
pre-commit-config: .pre-commit-config-optional.yaml
base-branch: origin/${{ github.base_ref }}
================================================
FILE: .github/workflows/pre-commit.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: pre-commit
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
pre-commit:
if: ${{ github.event.repository.private }} # Use pre-commit.ci for public repositories
runs-on: ubuntu-22.04
steps:
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Check out repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Run pre-commit
uses: autowarefoundation/autoware-github-actions/pre-commit@v1
with:
pre-commit-config: .pre-commit-config.yaml
token: ${{ steps.generate-token.outputs.token }}
================================================
FILE: .github/workflows/scenario-test-reusable.yaml
================================================
name: scenario-test-reusable
on:
workflow_call:
inputs:
autoware_container_image:
type: string
required: true
description: Autoware docker image tag to use for the scenario test
runner:
type: string
default: "['self-hosted', 'Linux', 'X64']"
required: false
architecture-type:
type: string
default: awf/universe/20250130
required: false
sensor-model:
type: string
default: sample_sensor_kit
required: false
vehicle-model:
type: string
default: sample_vehicle
required: false
jobs:
scenario-test:
runs-on: ${{ fromJson(inputs.runner) }}
steps:
- name: Clean up previous run artifacts
run: |
sudo rm -rf ${{ github.workspace }}/scenario_out
sudo chown -R $USER:$USER ${{ github.workspace }}
- name: Check out repository
uses: actions/checkout@v4
- name: Download Docker image artifact
uses: actions/download-artifact@v4
with:
name: autoware-image
path: /tmp
- name: Load Docker image
run: docker load < /tmp/autoware-image.tar.gz
- name: Verify Docker image exists
env:
IMAGE_TAG: ${{ inputs.autoware_container_image }}
run: |
echo "Checking for image in local Docker daemon..."
if ! docker inspect "$IMAGE_TAG" > /dev/null 2>&1; then
echo "::error::Image $IMAGE_TAG not found!"
exit 1
fi
docker images "$IMAGE_TAG"
df -h
- name: Run scenario test in built Docker image
env:
IMAGE_TAG: ${{ inputs.autoware_container_image }}
SENSOR_MODEL: ${{ inputs.sensor-model }}
VEHICLE_MODEL: ${{ inputs.vehicle-model }}
ARCHITECTURE_TYPE: ${{ inputs.architecture-type }}
run: |
mkdir -p ${{ github.workspace }}/scenario_out
docker run --rm \
-e SENSOR_MODEL \
-e VEHICLE_MODEL \
-e ARCHITECTURE_TYPE \
-v "${{ github.workspace }}:/workspace" \
-v "${{ github.workspace }}/scenario_out:/out" \
"$IMAGE_TAG" \
bash -c '
set -e
echo "Installing test dependencies..."
apt-get update && apt-get install -y python3-pip git unzip wget curl
pip3 install --upgrade gdown vcstool
echo "Setting up simulator workspace..."
cd /workspace
mkdir -p /autoware_ws/src
cd /autoware_ws
vcs import src < /workspace/repositories/simulator.repos
echo "Sourcing Autoware environment..."
source /opt/ros/humble/setup.bash
source /opt/autoware/setup.bash
echo "Installing simulator dependencies..."
rosdep update
rosdep install --from-paths src --ignore-src -r -y || true
echo "Downgrading xmlschema for compatibility..."
pip3 install --user xmlschema==3.4.5
echo "Building scenario_test_runner..."
export CMAKE_DISABLE_PRECOMPILE_HEADERS=ON
colcon build --symlink-install \
--cmake-args -DCMAKE_BUILD_TYPE=Release \
--executor sequential
echo "Sourcing the built workspace..."
source /autoware_ws/install/setup.bash
echo "Downloading test data..."
cd /out
# cspell: ignore Uownh Ietur
gdown --id 1Tq7snfDPsuPHPtl50aL5fJY6paiC-HxV -O sample-scenario.yaml
mkdir -p /out/autoware_map
gdown --id 1499_nsbUbIeturZaDj7jhUownh5fvXHd -O sample-map-planning.zip
if [ -f sample-map-planning.zip ]; then
unzip -q sample-map-planning.zip -d /out/autoware_map
fi
echo "Fixing paths in scenario file..."
sed -i "s@/home/user/@/out/@g" sample-scenario.yaml
echo "Running scenario test..."
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
mkdir -p /out/results
ros2 launch scenario_test_runner scenario_test_runner.launch.py \
architecture_type:=$ARCHITECTURE_TYPE \
record:=true \
scenario:="/out/sample-scenario.yaml" \
sensor_model:=$SENSOR_MODEL \
vehicle_model:=$VEHICLE_MODEL \
initialize_duration:=300 \
output_directory:=/out/results \
simulate_localization:=true \
initial_pose:="[0.0, 0.0, 0.0]" \
launch_rviz:=false \
frame_rate:=1 \
disable_lanelet_pose_validation:=true 2>&1 | tee /out/scenario_output.log || true
echo "Cleaning up processes..."
pkill -9 -f ros2 || true
pkill -9 -f scenario_test_runner || true
pkill -9 -f openscenario_interpreter_node || true
'
- name: Check for test failures
run: |
RESULT_FILE="${{ github.workspace }}/scenario_out/results/scenario_test_runner/result.junit.xml"
if [ ! -f "$RESULT_FILE" ]; then
echo "::error::Result file not found! Simulation likely crashed."
exit 1
fi
echo "Checking for failures in $RESULT_FILE..."
if grep -q -E '<failure|<error' "$RESULT_FILE"; then
echo "::error::Test failures or errors detected."
cat "$RESULT_FILE"
exit 1
else
echo "Test successfully passed."
fi
- name: Upload scenario test results
if: always()
uses: actions/upload-artifact@v4
with:
name: scenario-test-results
path: |
${{ github.workspace }}/scenario_out/results/
${{ github.workspace }}/scenario_out/scenario_output.log
- name: Show final disk space
if: always()
run: df -h
- name: Clean up Docker images
if: always()
env:
IMAGE_TAG: ${{ inputs.autoware_container_image }}
run: |
rm -f /tmp/autoware-image.tar.gz
docker rmi "$IMAGE_TAG" || true
================================================
FILE: .github/workflows/scenario-test.yaml
================================================
name: scenario-test
on:
schedule:
- cron: 0 12 * * *
workflow_dispatch:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
scenario-test:
runs-on: ubuntu-24.04
container:
image: ghcr.io/autowarefoundation/autoware:universe-devel
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install required packages
shell: bash
run: |
apt-get update
apt-get install -y \
unzip \
zip \
curl \
gnupg2 \
lsb-release \
python3-pip \
git
pip install --upgrade gdown vcs2l
- name: Show memory info
shell: bash
run: free -h
- name: Clone Autoware and Import simulator.repos
shell: bash
run: |
git clone https://github.com/autowarefoundation/autoware.git ~/autoware_ws
cd ~/autoware_ws
mkdir -p src
vcs import src < repositories/simulator.repos
- name: Install ROS dependencies
shell: bash
run: |
cd ~/autoware_ws
source /opt/ros/humble/setup.bash
source /opt/autoware/setup.bash
rosdep update
rosdep install --from-paths src --ignore-src -r -y
- name: Downgrade xmlschema
shell: bash
run: |
pip3 install --user xmlschema==3.4.5
- name: Build Autoware Workspace
shell: bash
run: |
cd ~/autoware_ws
# Clean the workspace before building to prevent errors from old files
rm -rf build install log
source /opt/ros/humble/setup.bash
source /opt/autoware/setup.bash
# For Disable precompiled headers to reduce memory
export CMAKE_DISABLE_PRECOMPILE_HEADERS=ON
# Build all with sequential executor to reduce RAM spikes
colcon build --symlink-install \
--cmake-args -DCMAKE_BUILD_TYPE=Release \
--executor sequential
- name: Check Autoware installation
shell: bash
run: |
source ~/autoware_ws/install/setup.bash
ros2 pkg list | grep autoware
- name: Download scenario file
shell: bash
run: |
gdown --id 1Tq7snfDPsuPHPtl50aL5fJY6paiC-HxV -O sample-scenario.yaml
- name: Download sample-map-planning maps
shell: bash
# cspell: ignore 1499_nsbUbIeturZaDj7jhUownh5fvXHd
run: |
mkdir -p $HOME/autoware_map
gdown --id 1499_nsbUbIeturZaDj7jhUownh5fvXHd -O sample-map-planning.zip
unzip sample-map-planning.zip -d $HOME/autoware_map
- name: Fix paths in sample-scenario.yaml
shell: bash
run: |
# I Replace hardcoded user paths with the dynamic $HOME variable
sed -i "s@/home/user/@$HOME/@g" sample-scenario.yaml
- name: Launch scenario_test_runner with diagnostics
shell: bash
run: |
# a stable DDS implementation for CI to prevent crashes that happen before
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
SCENARIO_FILE="./sample-scenario.yaml"
source ~/autoware_ws/install/setup.bash
if [ -f "$SCENARIO_FILE" ]; then
echo "Launching scenario_test_runner..."
mkdir -p ./results
ros2 launch scenario_test_runner scenario_test_runner.launch.py \
architecture_type:=awf/universe/20250130 \
record:=true \
scenario:="$SCENARIO_FILE" \
sensor_model:=sample_sensor_kit \
vehicle_model:=sample_vehicle \
initialize_duration:=300 \
output_directory:=./results \
simulate_localization:=true \
initial_pose:="[0.0, 0.0, 0.0]" \
launch_rviz:=false \
frame_rate:=1 \
disable_lanelet_pose_validation:=true 2>&1 | tee scenario_output.log || true
else
echo "ERROR: sample-scenario.yaml is missing!"
exit 1
fi
- name: Check for Test Failures
shell: bash
run: |
RESULT_FILE="./results/scenario_test_runner/result.junit.xml"
if [ ! -f "$RESULT_FILE" ]; then
echo "::error::Result file not found! Simulation likely crashed."
exit 1
fi
echo "Checking for failures in $RESULT_FILE..."
# Check for failure or error tags in the JUnit XML
if grep -q -E '<failure|<error' "$RESULT_FILE"; then
echo "::error::Test failures or errors detected."
# Print the contents of the result file for easier debugging in the Actions UI
cat "$RESULT_FILE"
exit 1
else
echo "Test successfully passed."
fi
- name: Upload Artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: scenario-test-results-and-logs
path: |
./results/
./scenario_output.log
~/.ros/log/
- name: Kill lingering ROS nodes (cleanup)
if: always()
shell: bash
run: |
echo "Killing lingering ROS processes..."
pkill -9 -f ros2 || true
pkill -9 -f scenario_test_runner || true
pkill -9 -f openscenario_interpreter_node || true
pkill -9 -f python || true
================================================
FILE: .github/workflows/semantic-pull-request.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: semantic-pull-request
on:
pull_request_target:
types:
- opened
- edited
- synchronize
jobs:
semantic-pull-request:
uses: autowarefoundation/autoware-github-actions/.github/workflows/semantic-pull-request.yaml@v1
================================================
FILE: .github/workflows/setup-docker.yaml
================================================
name: setup-docker
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
setup-docker:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Run setup script
run: |
./setup-dev-env.sh -y -v docker
================================================
FILE: .github/workflows/setup-universe.yaml
================================================
name: setup-universe
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
setup-universe:
runs-on: [self-hosted, Linux, X64]
strategy:
fail-fast: false
matrix:
include:
- image: ubuntu:22.04
ros_distro: humble
- image: ubuntu:24.04
ros_distro: jazzy
container:
image: ${{ matrix.image }}
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Show disk space
if: always()
run: |
df -h
- name: Install dependencies
run: |
apt-get update
apt-get install -y git sudo curl ca-certificates apt-utils
- name: Install tzdata non-interactively
run: |
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
- name: Set git config
uses: autowarefoundation/autoware-github-actions/set-git-config@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run setup script
run: |
./setup-dev-env.sh --ros-distro ${{ matrix.ros_distro }} -y -v universe
================================================
FILE: .github/workflows/spell-check-daily.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: spell-check-daily
on:
schedule:
- cron: 0 0 * * *
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
spell-check-daily:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Run spell-check
uses: autowarefoundation/autoware-github-actions/spell-check@v1
with:
incremental-files-only: false
cspell-json-url: https://raw.githubusercontent.com/autowarefoundation/autoware-spell-check-dict/main/.cspell.json
dict-packages: |
https://github.com/autowarefoundation/autoware-spell-check-dict
https://github.com/tier4/cspell-dicts
================================================
FILE: .github/workflows/spell-check-differential.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: spell-check-differential
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
spell-check-differential:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Run spell-check
uses: autowarefoundation/autoware-github-actions/spell-check@v1
with:
cspell-json-url: https://raw.githubusercontent.com/autowarefoundation/autoware-spell-check-dict/main/.cspell.json
dict-packages: |
https://github.com/autowarefoundation/autoware-spell-check-dict
https://github.com/tier4/cspell-dicts
================================================
FILE: .github/workflows/sync-files.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
name: sync-files
on:
schedule:
- cron: 0 0 * * *
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
sync-files:
runs-on: ubuntu-22.04
steps:
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Run sync-files
uses: autowarefoundation/autoware-github-actions/sync-files@v1
with:
token: ${{ steps.generate-token.outputs.token }}
pr-labels: |
tag:bot
tag:sync-files
auto-merge-method: squash
================================================
FILE: .gitignore
================================================
# Vim
*.swp
*.swo
# Visual Studio Code
.vscode/
*.code-workspace
# colcon
build/
install/
log/
# Python
*.pyc
# Jetbrains
.idea/
# rviz Screen Capture
capture/
# CodeChecker
.codechecker/
# Node.js
node_modules/
================================================
FILE: .hadolint.yaml
================================================
ignored:
- DL3008 # Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>`
- DL3013 # Pin versions in pip. Instead of `pip install <package>`, use `pip install <package>==<version>`
- DL3015 # Avoid additional packages by specifying `--no-install-recommends`
- DL3009 # Delete the apt-get lists after installing something
================================================
FILE: .markdown-link-check.json
================================================
{
"aliveStatusCodes": [200, 206, 403],
"ignorePatterns": [
{
"pattern": "^http://localhost"
},
{
"pattern": "^http://127\\.0\\.0\\.1"
},
{
"pattern": "^https://github.com/.*/discussions/new"
}
],
"retryOn429": true,
"retryCount": 10
}
================================================
FILE: .markdownlint.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
# See https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md for all rules.
default: true
MD013: false
MD024:
siblings_only: true
MD029:
style: ordered
MD033: false
MD041: false
MD045: false
MD046: false
MD049: false
MD059: false
================================================
FILE: .pre-commit-config-ansible.yaml
================================================
repos:
- repo: https://github.com/ansible/ansible-lint.git
rev: v25.8.2
hooks:
- id: ansible-lint
args:
- ansible/
additional_dependencies:
- ansible
================================================
FILE: .pre-commit-config-optional.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
# https://pre-commit.ci/#configuration
ci:
autofix_commit_msg: "style(pre-commit-optional): autofix"
autoupdate_schedule: quarterly
autoupdate_commit_msg: "ci(pre-commit-optional): quarterly autoupdate"
repos:
- repo: https://github.com/tcort/markdown-link-check
rev: v3.14.2
hooks:
- id: markdown-link-check
args: [--quiet, --config=.markdown-link-check.json]
================================================
FILE: .pre-commit-config.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
# https://pre-commit.ci/#configuration
ci:
autofix_commit_msg: "style(pre-commit): autofix"
autoupdate_schedule: quarterly
autoupdate_commit_msg: "ci(pre-commit): quarterly autoupdate"
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-json
- id: check-merge-conflict
- id: check-toml
- id: check-xml
- id: check-yaml
args: [--unsafe]
- id: detect-private-key
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.47.0
hooks:
- id: markdownlint
args: [-c, .markdownlint.yaml, --fix]
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v4.0.0-alpha.8
hooks:
- id: prettier
args: [--no-error-on-unmatched-pattern]
- repo: https://github.com/adrienverge/yamllint
rev: v1.37.1
hooks:
- id: yamllint
- repo: https://github.com/autowarefoundation/autoware-guideline-check
rev: 0.2.0
hooks:
- id: check-package-depends
- repo: https://github.com/tier4/pre-commit-hooks-ros
rev: v0.10.0
hooks:
- id: flake8-ros
- id: prettier-xacro
- id: prettier-launch-xml
- id: prettier-package-xml
- id: ros-include-guard
- id: sort-package-xml
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
hooks:
- id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.12.0-2
hooks:
- id: shfmt
args: [-w, -s, -i=4]
- repo: https://github.com/pycqa/isort
rev: 7.0.0
hooks:
- id: isort
args: [--profile=black, --line-length=100]
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 25.12.0
hooks:
- id: black
args: [--line-length=100]
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v21.1.8
hooks:
- id: clang-format
types_or: [c++, c, cuda]
- repo: https://github.com/cpplint/cpplint
rev: 2.0.2
hooks:
- id: cpplint
args: [--quiet]
exclude: .cu
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.36.0
hooks:
- id: check-metaschema
files: ^.+/schema/.*schema\.json$
- repo: local
hooks:
- id: prettier-svg
name: prettier svg
description: Apply Prettier with plugin-xml to svg.
entry: prettier --write --list-different --ignore-unknown --print-width 200 --xml-self-closing-space false --xml-whitespace-sensitivity ignore
language: node
files: .svg$
additional_dependencies: [prettier@2.7.1, "@prettier/plugin-xml@2.2.0"]
- repo: https://github.com/AleksaC/hadolint-py
rev: v2.14.0
hooks:
- id: hadolint
exclude: .svg$
================================================
FILE: .prettierignore
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
*.param.yaml
*.rviz
================================================
FILE: .prettierrc.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
printWidth: 100
tabWidth: 2
overrides:
- files: package.xml
options:
printWidth: 1000
xmlSelfClosingSpace: false
xmlWhitespaceSensitivity: ignore
- files: "*.launch.xml"
options:
printWidth: 200
xmlSelfClosingSpace: false
xmlWhitespaceSensitivity: ignore
- files: "*.xacro"
options:
printWidth: 200
xmlSelfClosingSpace: false
xmlWhitespaceSensitivity: ignore
================================================
FILE: .rgignore
================================================
!/src/
================================================
FILE: .shellcheckrc
================================================
external-sources=true
================================================
FILE: .webauto-ci/main/autoware-build/run.sh
================================================
#!/bin/bash -e
: "${WEBAUTO_CI_SOURCE_PATH:?is not set}"
: "${WEBAUTO_CI_DEBUG_BUILD:?is not set}"
: "${AUTOWARE_PATH:?is not set}"
: "${CCACHE_DIR:=}"
: "${CCACHE_SIZE:=1G}"
: "${PARALLEL_WORKERS:=4}"
sudo mkdir "$AUTOWARE_PATH"
sudo chown "$(whoami)": "$AUTOWARE_PATH"
cd "$WEBAUTO_CI_SOURCE_PATH"
cp -r src .webauto-ci.* "$AUTOWARE_PATH"
cd "$AUTOWARE_PATH"
if [ -n "$CCACHE_DIR" ]; then
mkdir -p "$CCACHE_DIR"
export USE_CCACHE=1
export CCACHE_DIR="$CCACHE_DIR"
export CC="/usr/lib/ccache/gcc"
export CXX="/usr/lib/ccache/g++"
ccache -M "$CCACHE_SIZE"
fi
# install xmlschema<4.0.0 before rosdep install as workaround for scenario_simulator_v2
sudo pip3 install xmlschema==3.4.5
sudo -E apt-get -y update
# shellcheck disable=SC2012
ROS_DISTRO=$(ls -1 /opt/ros | head -1)
# shellcheck disable=SC1090
source "/opt/ros/$ROS_DISTRO/setup.bash"
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro "$ROS_DISTRO"
[[ $WEBAUTO_CI_DEBUG_BUILD == "true" ]] && build_type="RelWithDebInfo" || build_type="Release"
colcon build \
--cmake-args -DCMAKE_BUILD_TYPE="$build_type" -DBUILD_TESTING=off -Wno-dev --no-warn-unused-cli \
--symlink-install \
--catkin-skip-building-tests \
--executor parallel \
--parallel-workers "$PARALLEL_WORKERS"
sudo -E apt-get -y autoremove
================================================
FILE: .webauto-ci/main/autoware-setup/run.sh
================================================
#!/bin/bash -e
ansible_args=()
ansible_args+=("--extra-vars" "prompt_install_nvidia=y")
ansible_args+=("--extra-vars" "prompt_download_artifacts=y")
ansible_args+=("--extra-vars" "data_dir=$HOME/autoware_data")
ansible_args+=("--extra-vars" "ros2_installation_type=ros-base")
ansible_args+=("--extra-vars" "install_devel=false")
# read amd64 env file and expand ansible arguments
source 'amd64.env'
while read -r env_name; do
ansible_args+=("--extra-vars" "${env_name}=${!env_name}")
done < <(
grep -v '^\s*#' amd64.env |
grep -v '^\s*$' |
sed 's/#.*//' | # remove trailing comments
sed 's/=.*//' # extract variable name
)
ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
ansible-playbook "ansible/playbooks/universe.yaml" \
"${ansible_args[@]}" \
-e WORKSPACE_ROOT="$(pwd)" \
--skip-tags vcs
================================================
FILE: .webauto-ci/main/environment-setup/run.sh
================================================
#!/bin/bash -e
apt-get update
apt-get -y install sudo curl wget unzip gnupg lsb-release ccache python3-apt python3-pip apt-utils software-properties-common jq
add-apt-repository universe
pip install --no-cache-dir 'ansible==10.*'
user=autoware
useradd -m "$user" -s /bin/bash
echo "$user:$user" | chpasswd
echo "$user ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers
gpasswd -a "$user" sudo
================================================
FILE: .webauto-ci.yaml
================================================
# The configuration file for Web.Auto CI/CD tool.
# https://docs.web.auto/user-manuals/evaluator/configuration/reference/introduction
version: 2
artifacts:
- name: main
metadata:
play-ondemand.ci.web.auto/buildspec: Autoware-Humble_v0.29.0
build:
type: custom
runtime:
type: standard1/amd64/large
source:
vcstool:
repositories_files:
- repositories/autoware.repos
- repositories/simulator.repos
import_path: src
environment_variables:
AUTOWARE_PATH: /opt/autoware
DEBIAN_FRONTEND: noninteractive
LANG: C.UTF-8
linux_parameters:
kernel_version: 5.19.0-50-generic
phases:
- name: environment-setup
user: root
exec: ./.webauto-ci/main/environment-setup/run.sh
caches:
- name: apt-lists
mountpoint: /var/lib/apt/lists
- name: apt-archives
mountpoint: /var/cache/apt/archives
build_result_reuse:
key_files:
- .webauto-ci/main/environment-setup/**/*
- name: autoware-setup
user: autoware
exec: ./.webauto-ci/main/autoware-setup/run.sh
caches:
- name: apt-lists
mountpoint: /var/lib/apt/lists
- name: apt-archives
mountpoint: /var/cache/apt/archives
build_result_reuse:
key_files:
- .webauto-ci/main/autoware-setup/**/*
- ansible/**/*
- ansible-galaxy-requirements.yaml
- amd64.env
incremental_build:
enabled: true
- name: autoware-build
user: autoware
exec: ./.webauto-ci/main/autoware-build/run.sh
environment_variables:
PARALLEL_WORKERS: "32"
CCACHE_DIR: /tmp/build/cache/ccache
caches:
- name: apt-lists
mountpoint: /var/lib/apt/lists
- name: apt-archives
mountpoint: /var/cache/apt/archives
- name: ccache
mountpoint: /tmp/build/cache/ccache
build_result_reuse:
key_files:
- .webauto-ci/main/autoware-build/**/*
- src/**/*
base_container_image:
from: ubuntu:22.04
output_container_image:
from: autoware-build
workdir: /opt/autoware
user: autoware
simulations:
- name: lexus_planning_sim
type: planning_sim_v2
simulator:
deployment:
type: container
artifact: main
runtime:
type: standard1/amd64/medium
parameters:
launch_autoware: "true"
autoware_launch_package: autoware_launch
autoware_launch_file: planning_simulator.launch.xml
architecture_type: awf/universe/20250130
vehicle_model: sample_vehicle
sensor_model: sample_sensor_kit
initialize_duration: "90"
launch_visualization: "false"
release:
components:
- name: planning
deployment:
type: container
artifact: main
- name: perception
deployment:
type: container
artifact: main
================================================
FILE: .yamllint.yaml
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
extends: default
ignore: |
*.param.yaml
rules:
braces:
level: error
max-spaces-inside: 1 # To format with Prettier
comments:
level: error
min-spaces-from-content: 1 # To be compatible with C++ and Python
document-start:
level: error
present: false # Don't need document start markers
line-length: disable # Delegate to Prettier
truthy:
level: error
check-keys: false # To allow 'on' of GitHub Actions
quoted-strings:
level: error
required: only-when-needed # To keep consistent style
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or advances of
any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address,
without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
<conduct@autoware.org>.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][mozilla coc].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][faq]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[mozilla coc]: https://github.com/mozilla/diversity
[faq]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
See <https://autowarefoundation.github.io/autoware-documentation/main/contributing/>.
================================================
FILE: CPPLINT.cfg
================================================
# This file is automatically synced from:
# https://github.com/autowarefoundation/sync-file-templates
# To make changes, update the source repository and follow the guidelines in its README.
# Modified from https://github.com/ament/ament_lint/blob/ebd524bb9973d5ec1dc48a670ce54f958a5a0243/ament_cpplint/ament_cpplint/main.py#L64-L120
set noparent
linelength=100
includeorder=standardcfirst
filter=-build/c++11 # we do allow C++11
filter=-build/c++17 # we allow <filesystem>
filter=-build/namespaces_literals # we allow using namespace for literals
filter=-runtime/references # we consider passing non-const references to be ok
filter=-whitespace/braces # we wrap open curly braces for namespaces, classes and functions
filter=-whitespace/indent # we don't indent keywords like public, protected and private with one space
filter=-whitespace/newline # we allow the developer to decide about newline at the end of file (it's clashing with clang-format)
filter=-whitespace/parens # we allow closing parenthesis to be on the next line
filter=-whitespace/semicolon # we allow the developer to decide about whitespace after a semicolon
filter=-build/header_guard # we automatically fix the names of header guards using pre-commit
filter=-build/include_order # we use the custom include order
filter=-build/include_subdir # we allow the style of "foo.hpp"
================================================
FILE: DISCLAIMER.md
================================================
DISCLAIMER
“Autoware” will be provided by The Autoware Foundation under the Apache License 2.0.
This “DISCLAIMER” will be applied to all users of Autoware (a “User” or “Users”) with
the Apache License 2.0 and Users shall hereby approve and acknowledge all the contents
specified in this disclaimer below and will be deemed to consent to this
disclaimer without any objection upon utilizing or downloading Autoware.
Disclaimer and Waiver of Warranties
1. AUTOWARE FOUNDATION MAKES NO REPRESENTATION OR WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, WITH RESPECT TO PROVIDING AUTOWARE (the “Service”)
including but not limited to any representation or warranty (i) of fitness or
suitability for a particular purpose contemplated by the Users, (ii) of the
expected functions, commercial value, accuracy, or usefulness of the Service,
(iii) that the use by the Users of the Service complies with the laws and
regulations applicable to the Users or any internal rules established by
industrial organizations, (iv) that the Service will be free of interruption or
defects, (v) of the non-infringement of any third party's right and (vi) the
accuracy of the content of the Services and the software itself.
2. The Autoware Foundation shall not be liable for any damage incurred by the
User that are attributable to the Autoware Foundation for any reasons
whatsoever. UNDER NO CIRCUMSTANCES SHALL THE AUTOWARE FOUNDATION BE LIABLE FOR
INCIDENTAL, INDIRECT, SPECIAL OR FUTURE DAMAGES OR LOSS OF PROFITS.
3. A User shall be entirely responsible for the content posted by the User and
its use of any content of the Service or the Website. If the User is held
responsible in a civil action such as a claim for damages or even in a criminal
case, the Autoware Foundation and member companies, governments and academic &
non-profit organizations and their directors, officers, employees and agents
(collectively, the “Indemnified Parties”) shall be completely discharged from
any rights or assertions the User may have against the Indemnified Parties, or
from any legal action, litigation or similar procedures.
Indemnity
A User shall indemnify and hold the Indemnified Parties harmless from any of
their damages, losses, liabilities, costs or expenses (including attorneys'
fees or criminal compensation), or any claims or demands made against the
Indemnified Parties by any third party, due to or arising out of, or in
connection with utilizing Autoware (including the representations and
warranties), the violation of applicable Product Liability Law of each country
(including criminal case) or violation of any applicable laws by the Users, or
the content posted by the User or its use of any content of the Service or the
Website.
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: NOTICE
================================================
autowarefoundation/autoware
Copyright 2021 The Autoware Foundation
This product includes software developed at
The Autoware Foundation (https://www.autoware.org/).
This product includes code developed by TIER IV.
Copyright 2021 TIER IV, Inc.
================================================
FILE: README.md
================================================
# Autoware - the world's leading open-source software project for autonomous driving

<!--- Contributors -->
<p align="center">
<a href="https://github.com/autowarefoundation/autoware_universe/graphs/contributors">
<img src="https://img.shields.io/github/contributors/autowarefoundation/autoware_universe?style=flat&label=Autoware%20Universe%20Contributors"
alt="Autoware Universe Contributors" /></a>
<a href="https://github.com/autowarefoundation/autoware/graphs/contributors">
<img src="https://img.shields.io/github/contributors/autowarefoundation/autoware?style=flat&label=Autoware%20Contributors"
alt="Autoware Contributors" /></a>
</p>
<!--- Commit Activity -->
<p align="center">
<a href="https://github.com/autowarefoundation/autoware_universe/pulse">
<img src="https://img.shields.io/github/commit-activity/m/autowarefoundation/autoware_universe?style=flat&label=Autoware%20Universe%20Commit%20Activity"
alt="Autoware Universe Activity" /></a>
<a href="https://github.com/autowarefoundation/autoware/pulse">
<img src="https://img.shields.io/github/commit-activity/m/autowarefoundation/autoware?style=flat&label=Autoware%20Commit%20Activity"
alt="Autoware Activity" /></a>
</p>
<!--- License -->
<p align="center">
<a href="https://github.com/autowarefoundation/autoware/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/autowarefoundation/autoware?style=flat&label=License"
alt="License" /></a>
</p>
<!--- CI Reports -->
<p align="center">
<a href="https://github.com/autowarefoundation/autoware/actions/workflows/health-check.yaml?query=branch%3Amain">
<img src="https://img.shields.io/github/actions/workflow/status/autowarefoundation/autoware/health-check.yaml?style=flat&label=health-check"
alt="health-check CI" /></a>
<a href="https://app.codecov.io/gh/autowarefoundation/autoware_universe">
<img src="https://img.shields.io/codecov/c/gh/autowarefoundation/autoware_universe?style=flat&label=Coverage&logo=codecov&logoColor=white"
alt="Code Coverage" /></a>
</p>
<!--- Social Media -->
<p align="center">
<a href="https://discord.gg/Q94UsPvReQ">
<img src="https://img.shields.io/discord/953808765935816715?logo=discord&logoColor=white&style=flat&label=Autoware%20Discord"
alt="Autoware Discord"></a>
<a href="https://twitter.com/intent/follow?screen_name=AutowareFdn">
<img src="https://img.shields.io/twitter/follow/AutowareFdn?logo=x&logoColor=white&style=flat"
alt="Autoware Twitter / X"></a>
<a href="https://www.linkedin.com/company/the-autoware-foundation/">
<img src="https://img.shields.io/badge/Linkedin-Autoware%20Foundation-0a66c2?logo=linkedin&logoColor=white&style=flat"
alt="Autoware Linkedin"></a>
</p>
Autoware is an open-source software stack for self-driving vehicles, built on the [Robot Operating System (ROS)](https://www.ros.org/). It includes all of the necessary functions to drive an autonomous vehicles from localization and object detection to route planning and control, and was created with the aim of enabling as many individuals and organizations as possible to contribute to open innovations in autonomous driving technology.

## Documentation
To learn more about using or developing Autoware, refer to the [Autoware documentation site](https://autowarefoundation.github.io/autoware-documentation/main/). You can find the source for the documentation in [autowarefoundation/autoware-documentation](https://github.com/autowarefoundation/autoware-documentation).
## Repository overview
- [autowarefoundation/autoware](https://github.com/autowarefoundation/autoware)
- Meta-repository containing `.repos` files to construct an Autoware workspace.
- It is anticipated that this repository will be frequently forked by users, and so it contains minimal information to avoid unnecessary differences.
- [autowarefoundation/autoware_core](https://github.com/autowarefoundation/autoware_core)
- Main repository for high-quality, stable ROS packages for Autonomous Driving.
- Based on [Autoware.Auto](https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto) and [Autoware.Universe](https://github.com/autowarefoundation/autoware_universe).
- [autowarefoundation/autoware_universe](https://github.com/autowarefoundation/autoware_universe)
- Repository for experimental, cutting-edge ROS packages for Autonomous Driving.
- Autoware Universe was created to make it easier for researchers and developers to extend the functionality of Autoware Core
- [autowarefoundation/autoware_launch](https://github.com/autowarefoundation/autoware_launch)
- Launch configuration repository containing node configurations and their parameters.
- [autowarefoundation/autoware-github-actions](https://github.com/autowarefoundation/autoware-github-actions)
- Contains [reusable GitHub Actions workflows](https://docs.github.com/ja/actions/learn-github-actions/reusing-workflows) used by multiple repositories for CI.
- Utilizes the [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) concept.
- [autowarefoundation/autoware-documentation](https://github.com/autowarefoundation/autoware-documentation)
- Documentation repository for Autoware users and developers.
- Since Autoware Core/Universe has multiple repositories, a central documentation repository is important to make information accessible from a single place.
## Using Autoware.AI
If you wish to use Autoware.AI, the previous version of Autoware based on ROS 1, switch to [autoware-ai](https://github.com/autowarefoundation/autoware_ai) repository. However, be aware that Autoware.AI has reached the end-of-life as of 2022, and we strongly recommend transitioning to Autoware Core/Universe for future use.
## Contributing
- [There is no formal process to become a contributor](https://github.com/autowarefoundation/autoware-projects/wiki#contributors) - you can comment on any [existing issues](https://github.com/autowarefoundation/autoware_universe/issues) or make a pull request on any Autoware repository!
- Make sure to follow the [Contribution Guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/).
- Take a look at Autoware's [various working groups](https://github.com/autowarefoundation/autoware-projects/wiki#working-group-list) to gain an understanding of any work in progress and to see how projects are managed.
- If you have any technical questions, you can start a discussion in the [Q&A category](https://github.com/autowarefoundation/autoware/discussions/categories/q-a) to request help and confirm if a potential issue is a bug or not.
## Useful resources
- [Autoware Foundation homepage](https://www.autoware.org/)
- [Support guidelines](https://autowarefoundation.github.io/autoware-documentation/main/support/support-guidelines/)
- [CI metrics](https://autowarefoundation.github.io/autoware-ci-metrics/)
================================================
FILE: amd64.env
================================================
# ROS distribution (humble)
rosdistro=humble
rmw_implementation=rmw_cyclonedds_cpp
# Base image selection for Humble
base_image=ros:humble-ros-base-jammy
autoware_base_image=ghcr.io/autowarefoundation/autoware-base:latest
autoware_base_cuda_image=ghcr.io/autowarefoundation/autoware-base:cuda-latest
cuda_version=12.8
tensorrt_version=10.8.0.43-1+cuda12.8
cumm_version=0.5.3
spconv_version=2.3.8
================================================
FILE: amd64_jazzy.env
================================================
# ROS distribution (jazzy)
rosdistro=jazzy
rmw_implementation=rmw_cyclonedds_cpp
# Jazzy-specific overrides (will be set by build.sh)
base_image=ros:jazzy-ros-base-noble
autoware_base_image=ghcr.io/autowarefoundation/autoware-base:latest-jazzy
autoware_base_cuda_image=ghcr.io/autowarefoundation/autoware-base:cuda-latest-jazzy
cuda_version=12.8
tensorrt_version=10.8.0.43-1+cuda12.8
cumm_version=0.5.3
spconv_version=2.3.8
================================================
FILE: ansible/.gitignore
================================================
*.retry
================================================
FILE: ansible/COLCON_IGNORE
================================================
================================================
FILE: ansible/README.md
================================================
# Ansible Collection - autoware.dev_env
This collection contains the playbooks to set up the development environment for Autoware.
## Set up a development environment
### Ansible installation
```bash
# Remove apt installed ansible (In Ubuntu 22.04, ansible the version is old)
sudo apt-get purge ansible
# Install pipx
sudo apt-get -y update
sudo apt-get -y install pipx
# Add pipx to the system PATH
python3 -m pipx ensurepath
# Install ansible
pipx install --include-deps --force "ansible==10.*"
```
### Install ansible collections
This step should be repeated when a new playbook is added.
```bash
cd ~/autoware # The root directory of the cloned repository
ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
```
================================================
FILE: ansible/galaxy.yml
================================================
# Required
namespace: autoware
name: dev_env
version: 0.1.0
readme: README.md
authors:
- Kenji Miyake <kenji.miyake@tier4.jp>
# Optional
description: Set up development environment for Autoware
license:
- Apache-2.0
tags:
- autoware
dependencies: {}
repository: https://github.com/autowarefoundation/autoware
documentation: https://autowarefoundation.github.io/autoware-documentation
homepage: https://www.autoware.org/
issues: https://github.com/autowarefoundation/autoware/issues
build_ignore: []
================================================
FILE: ansible/playbooks/docker.yaml
================================================
- name: Set up Docker development environments for Autoware
hosts: localhost
connection: local
vars_prompt:
- name: prompt_install_nvidia
prompt: |-
[Warning] Some Autoware components depend on the CUDA, and TensorRT NVIDIA libraries which have end-user license agreements that should be reviewed before installation.
Install NVIDIA libraries? [y/N]
private: false
pre_tasks:
- name: Print args
ansible.builtin.debug:
msg:
- cuda_version: "{{ cuda_version }}"
- name: Show a warning if the NVIDIA libraries will not be installed
ansible.builtin.pause:
seconds: 10
prompt: |
[Warning] Skipping installation of NVIDIA libraries. Please manually install them if you plan to use any dependent components.
when: prompt_install_nvidia != 'y'
roles:
- role: autoware.dev_env.cuda
when: prompt_install_nvidia == 'y'
- role: autoware.dev_env.docker_engine
- role: autoware.dev_env.nvidia_container_toolkit
================================================
FILE: ansible/playbooks/download_artifacts.yaml
================================================
- name: Download Autoware artifacts
hosts: localhost
roles:
- autoware.dev_env.artifacts
================================================
FILE: ansible/playbooks/install_rviz_theme.yaml
================================================
- name: Install RViz theme
hosts: localhost
roles:
- autoware.dev_env.qt5ct_setup
================================================
FILE: ansible/playbooks/install_spconv.yaml
================================================
- name: Download and install the cumm and spconv packages
hosts: localhost
roles:
- autoware.dev_env.spconv
================================================
FILE: ansible/playbooks/openadkit.yaml
================================================
- name: Set up source development environments for Autoware Universe
hosts: localhost
connection: local
pre_tasks:
- name: Verify OS
ansible.builtin.fail:
msg: Only Ubuntu 22.04 and 24.04 are supported for this branch. Please refer to https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/.
when: ansible_distribution != 'Ubuntu' or (ansible_distribution_version != '22.04' and ansible_distribution_version != '24.04')
- name: Print args
ansible.builtin.debug:
msg:
- module: "{{ module }}"
- rosdistro: "{{ rosdistro }}"
- rmw_implementation: "{{ rmw_implementation }}"
- cuda_version: "{{ cuda_version }}"
- tensorrt_version: "{{ tensorrt_version }}"
roles:
# Autoware base dependencies
- role: autoware.dev_env.rmw_implementation
when: module == 'base'
vars:
rmw_implementation__rosdistro: "{{ rosdistro }}"
rmw_implementation__name: "{{ rmw_implementation }}"
- role: autoware.dev_env.gdown
when: module == 'base'
- role: autoware.dev_env.kisak_mesa
when: module == 'base' and rosdistro != 'jazzy'
- role: autoware.dev_env.build_tools
when: module == 'all' and install_devel=='y'
# Module specific dependencies
- role: autoware.dev_env.acados
when: module == 'all'
- role: autoware.dev_env.geographiclib
when: module == 'perception-localization' or module == 'all'
- role: autoware.dev_env.cuda
when: (module == 'base' or module == 'perception-localization' or module == 'all') and prompt_install_nvidia=='y'
- role: autoware.dev_env.tensorrt
when: (module == 'base' or module == 'perception-localization' or module == 'all') and prompt_install_nvidia=='y'
- role: autoware.dev_env.spconv
when: (module == 'base' or module == 'perception-localization' or module == 'all') and prompt_install_nvidia=='y'
# Development environment
- role: autoware.dev_env.dev_tools
when: module == 'dev-tools'
- role: autoware.dev_env.ros2_dev_tools
when: module == 'dev-tools'
# ONNX files and other artifacts
- role: autoware.dev_env.artifacts
when: prompt_download_artifacts == 'y'
================================================
FILE: ansible/playbooks/role_rmw_implementation.yaml
================================================
- name: Install RMW implementation
hosts: localhost
roles:
- role: autoware.dev_env.rmw_implementation
vars:
rmw_implementation__rosdistro: "{{ rosdistro }}"
rmw_implementation__name: "{{ rmw_implementation }}"
================================================
FILE: ansible/playbooks/setup_acados.yaml
================================================
- name: Setup acados
hosts: localhost
connection: local
roles:
- role: autoware.dev_env.acados
================================================
FILE: ansible/playbooks/telegraf.yaml
================================================
- name: Set up Telegraf and InfluxDB v2
hosts: localhost
roles:
- autoware.dev_env.telegraf
================================================
FILE: ansible/playbooks/universe.yaml
================================================
- name: Set up source development environments for Autoware Universe
hosts: localhost
connection: local
vars_prompt:
- name: prompt_install_nvidia
prompt: |-
[Warning] Some Autoware components depend on the CUDA, and TensorRT NVIDIA libraries which have end-user license agreements that should be reviewed before installation.
Install NVIDIA libraries? [y/N]
private: false
- name: prompt_download_artifacts
prompt: |-
[Warning] Should the ONNX model files and other artifacts be downloaded alongside setting up the development environment.
Download artifacts? [y/N]
private: false
- name: install_devel
prompt: |-
[Warning] Do you want to install recommended development tools for Autoware? [y/N]
private: false
default: y
pre_tasks:
- name: Verify OS
ansible.builtin.fail:
msg: Only Ubuntu 22.04 and 24.04 are supported for this branch. Please refer to https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/.
when: ansible_distribution_version not in ['22.04', '24.04']
- name: Print args
ansible.builtin.debug:
msg:
- rosdistro: "{{ rosdistro }}"
- rmw_implementation: "{{ rmw_implementation }}"
- cuda_version: "{{ cuda_version }}"
- tensorrt_version: "{{ tensorrt_version }}"
- name: Show a warning if the NVIDIA libraries will not be installed
ansible.builtin.pause:
seconds: 10
prompt: |
[Warning] Skipping installation of NVIDIA libraries. Please manually install them if you plan to use any dependent components.
when: prompt_install_nvidia != 'y'
roles:
# Autoware base dependencies
- role: autoware.dev_env.ros2
- role: autoware.dev_env.ros2_dev_tools
- role: autoware.dev_env.rmw_implementation
vars:
rmw_implementation__rosdistro: "{{ rosdistro }}"
rmw_implementation__name: "{{ rmw_implementation }}"
- role: autoware.dev_env.gdown
- role: autoware.dev_env.build_tools
- role: autoware.dev_env.agnocast
when: rosdistro == 'humble'
# Autoware module dependencies
- role: autoware.dev_env.acados
- role: autoware.dev_env.geographiclib
- role: autoware.dev_env.cuda
when: prompt_install_nvidia == 'y'
- role: autoware.dev_env.tensorrt
when: prompt_install_nvidia == 'y'
- role: autoware.dev_env.spconv
when: prompt_install_nvidia == 'y'
# Autoware devel dependencies
- role: autoware.dev_env.dev_tools
when: install_devel == 'y'
# ONNX files and other artifacts
- role: autoware.dev_env.artifacts
when: prompt_download_artifacts == 'y'
# Qt5ct setup (RViz theme)
- role: autoware.dev_env.qt5ct_setup
================================================
FILE: ansible/roles/acados/README.md
================================================
# Setup acados
Installs [acados](https://github.com/acados/acados), a fast and embedded solver for nonlinear optimal control, from source.
## What it does
1. Clones the acados repository (shallow) to `/opt/acados`
2. Initializes submodules (shallow)
3. Builds and installs acados in-tree with `QPOASES` and position-independent code enabled
4. Downloads the [tera renderer](https://github.com/acados/tera_renderer) binary to `/opt/acados/bin/t_renderer` (supports `x86_64` and `aarch64`)
5. Creates a Python virtual environment at `/opt/acados/.venv`
6. Installs `casadi`, `sympy`, and `acados_template` (editable) in the venv
7. Adds `CMAKE_PREFIX_PATH`, `ACADOS_SOURCE_DIR`, and `LD_LIBRARY_PATH` to the user's `.bashrc`
## Installation ⭐
Install ansible following the instructions in the [ansible installation guide](../../README.md#ansible-installation).
```bash
cd ~/autoware # The root directory of the cloned repository
ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"
```
This step should be repeated when the ansible directory is updated.
```bash
ansible-playbook autoware.dev_env.setup_acados --ask-become-pass
```
## Directory layout
After running, `/opt/acados` contains both the source tree and installed artifacts:
```text
/opt/acados/
├── .venv/ # Python virtual environment
├── bin/t_renderer # tera renderer binary
├── build/ # cmake build directory
├── cmake/ # acadosConfig.cmake (used by find_package)
├── lib/ # built shared libraries
├── include/ # headers
├── interfaces/ # acados_template Python package (installed to .venv)
├── external/ # submodules (qpoases, etc.)
└── ... # remaining source tree
```
## Usage in CMake
After provisioning, any CMake project can use acados with:
```cmake
find_package(acados REQUIRED)
target_link_libraries(your_target PRIVATE acados)
```
No additional path configuration is needed, `CMAKE_PREFIX_PATH` is set via `.bashrc`.
## Using the Python interface during `colcon build`
If your ROS 2 package generates acados C code at build time (e.g. via a Python script that uses `acados_template` and `casadi`), you need to source the venv so the code-generation script can find the installed packages.
The Ansible role already exports `ACADOS_SOURCE_DIR` and `LD_LIBRARY_PATH` in `.bashrc`, so those are available to `colcon build` as long as you've sourced your shell. The only extra step is pointing CMake at the venv Python so `casadi`, `sympy`, and `acados_template` are importable:
```cmake
find_program(ACADOS_PYTHON NAMES python3 PATHS $ENV{ACADOS_SOURCE_DIR}/.venv/bin NO_DEFAULT_PATH)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated/acados_solver.c
COMMAND ${ACADOS_PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_solver.py
--output-dir ${CMAKE_CURRENT_BINARY_DIR}/generated
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_solver.py
COMMENT "Generating acados solver C code"
)
```
The generated C code is then compiled as part of your normal CMake target, no Python dependency at runtime.
## Requirements
- CMake
- A C compiler (gcc/clang)
- `make`
- `git`
- `python3` with `venv` module (`python3-venv` on Ubuntu)
## Idempotency
The role is safe to run multiple times. The git clone resets any local modifications, and the build steps re-run on each invocation to ensure correctness when the version is changed. The `.bashrc` entries use `lineinfile` with regex matching to avoid duplication. The venv creation is skipped if it already exists (`creates` guard).
================================================
FILE: ansible/roles/acados/defaults/main.yaml
================================================
acados_version: v0.5.3
acados_tera_renderer_version: v0.2.0
acados_pip_packages:
- casadi
- sympy
================================================
FILE: ansible/roles/acados/meta/main.yaml
================================================
================================================
FILE: ansible/roles/acados/tasks/main.yaml
================================================
- name: Clone acados repository (shallow) with submodules
become: true
ansible.builtin.git:
repo: https://github.com/acados/acados.git
dest: /opt/acados
version: "{{ acados_version }}"
depth: 1
force: true
recursive: true
- name: Create build directory
become: true
ansible.builtin.file:
path: /opt/acados/build
state: directory
mode: "0755"
# cspell:ignore DACADOS
- name: Configure acados with CMake
become: true
ansible.builtin.command:
cmd: >
cmake
-DACADOS_WITH_QPOASES=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
..
chdir: /opt/acados/build
changed_when: false
- name: Build and install acados
become: true
ansible.builtin.command:
cmd: make install -j{{ ansible_processor_vcpus }}
chdir: /opt/acados/build
changed_when: false
- name: Create acados bin directory
become: true
ansible.builtin.file:
path: /opt/acados/bin
state: directory
mode: "0755"
- name: Set tera renderer architecture
ansible.builtin.set_fact:
acados_tera_arch: "{{ {'x86_64': 'amd64', 'aarch64': 'arm64'}[ansible_architecture] }}"
- name: Download tera renderer
become: true
ansible.builtin.get_url:
url: https://github.com/acados/tera_renderer/releases/download/{{ acados_tera_renderer_version }}/t_renderer-{{ acados_tera_renderer_version }}-linux-{{ acados_tera_arch }}
dest: /opt/acados/bin/t_renderer
mode: "0755"
# ---------- Python virtual environment ----------
- name: Create acados Python virtual environment
become: true
ansible.builtin.command:
cmd: python3 -m venv /opt/acados/.venv
creates: /opt/acados/.venv/bin/activate
- name: Upgrade pip inside the virtual environment
become: true
ansible.builtin.command:
cmd: /opt/acados/.venv/bin/pip install --upgrade pip
changed_when: false
- name: Install Python packages in acados venv
become: true
ansible.builtin.command:
cmd: /opt/acados/.venv/bin/pip install {{ acados_pip_packages | join(' ') }}
changed_when: false
- name: Install acados_template (editable) in acados venv
become: true
ansible.builtin.command:
cmd: /opt/acados/.venv/bin/pip install -e /opt/acados/interfaces/acados_template
changed_when: false
# ---------- Environment (.bashrc) ----------
- name: Add acados CMAKE_PREFIX_PATH to .bashrc
become: true
ansible.builtin.lineinfile:
path: "{{ item }}"
line: export CMAKE_PREFIX_PATH="/opt/acados:${CMAKE_PREFIX_PATH}"
regexp: CMAKE_PREFIX_PATH.*acados
state: present
loop:
- "{{ ansible_env.HOME }}/.bashrc"
- /etc/skel/.bashrc
- name: Add ACADOS_SOURCE_DIR to .bashrc
become: true
ansible.builtin.lineinfile:
path: "{{ item }}"
line: export ACADOS_SOURCE_DIR="/opt/acados"
regexp: ACADOS_SOURCE_DIR
state: present
loop:
- "{{ ansible_env.HOME }}/.bashrc"
- /etc/skel/.bashrc
- name: Add acados LD_LIBRARY_PATH to .bashrc
become: true
ansible.builtin.lineinfile:
path: "{{ item }}"
line: export LD_LIBRARY_PATH="/opt/acados/lib:${LD_LIBRARY_PATH}"
regexp: LD_LIBRARY_PATH.*acados
state: present
loop:
- "{{ ansible_env.HOME }}/.bashrc"
- /etc/skel/.bashrc
================================================
FILE: ansible/roles/agnocast/README.md
==========
gitextract_poq88meg/
├── .ansible-lint
├── .clang-format
├── .clang-tidy
├── .clang-tidy-ci
├── .devcontainer/
│ ├── Dockerfile
│ ├── core-devel/
│ │ └── devcontainer.json
│ ├── universe-devel/
│ │ └── devcontainer.json
│ └── universe-devel-cuda/
│ └── devcontainer.json
├── .dockerignore
├── .fdignore
├── .github/
│ ├── CODEOWNERS
│ ├── DISCUSSION_TEMPLATE/
│ │ └── general.yaml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug.yaml
│ │ ├── config.yml
│ │ ├── simple-issue.yaml
│ │ └── task.yaml
│ ├── actions/
│ │ ├── combine-multi-arch-images/
│ │ │ └── action.yaml
│ │ ├── docker-build/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push-base/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push-cuda/
│ │ │ └── action.yaml
│ │ ├── docker-build-and-push-tools/
│ │ │ └── action.yaml
│ │ └── free-disk-space/
│ │ └── action.yaml
│ ├── dependabot.yaml
│ ├── pull_request_template.md
│ ├── stale.yml
│ ├── sync-files.yaml
│ └── workflows/
│ ├── autoware-base.yaml
│ ├── backport.yaml
│ ├── bump-repo-versions-autoware.yaml
│ ├── bump-repo-versions-simulator.yaml
│ ├── bump-repo-versions-tools.yaml
│ ├── comment-on-pr.yaml
│ ├── dco.yaml
│ ├── docker-build-and-push.yaml
│ ├── github-release.yaml
│ ├── health-check.yaml
│ ├── keep-build-cache-small.yaml
│ ├── load-env.yaml
│ ├── mirror-main-branch.yaml
│ ├── pre-commit-ansible-autoupdate.yaml
│ ├── pre-commit-ansible.yaml
│ ├── pre-commit-optional.yaml
│ ├── pre-commit.yaml
│ ├── scenario-test-reusable.yaml
│ ├── scenario-test.yaml
│ ├── semantic-pull-request.yaml
│ ├── setup-docker.yaml
│ ├── setup-universe.yaml
│ ├── spell-check-daily.yaml
│ ├── spell-check-differential.yaml
│ └── sync-files.yaml
├── .gitignore
├── .hadolint.yaml
├── .markdown-link-check.json
├── .markdownlint.yaml
├── .pre-commit-config-ansible.yaml
├── .pre-commit-config-optional.yaml
├── .pre-commit-config.yaml
├── .prettierignore
├── .prettierrc.yaml
├── .rgignore
├── .shellcheckrc
├── .webauto-ci/
│ └── main/
│ ├── autoware-build/
│ │ └── run.sh
│ ├── autoware-setup/
│ │ └── run.sh
│ └── environment-setup/
│ └── run.sh
├── .webauto-ci.yaml
├── .yamllint.yaml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── CPPLINT.cfg
├── DISCLAIMER.md
├── LICENSE
├── NOTICE
├── README.md
├── amd64.env
├── amd64_jazzy.env
├── ansible/
│ ├── .gitignore
│ ├── COLCON_IGNORE
│ ├── README.md
│ ├── galaxy.yml
│ ├── playbooks/
│ │ ├── docker.yaml
│ │ ├── download_artifacts.yaml
│ │ ├── install_rviz_theme.yaml
│ │ ├── install_spconv.yaml
│ │ ├── openadkit.yaml
│ │ ├── role_rmw_implementation.yaml
│ │ ├── setup_acados.yaml
│ │ ├── telegraf.yaml
│ │ └── universe.yaml
│ └── roles/
│ ├── acados/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── agnocast/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── artifacts/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── build_tools/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── cuda/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── dev_tools/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── docker_engine/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── gdown/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── geographiclib/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── kisak_mesa/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── nvidia_container_toolkit/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── qt5ct_setup/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yml
│ │ ├── files/
│ │ │ ├── autoware.qss
│ │ │ └── qt5ct.conf
│ │ ├── meta/
│ │ │ └── main.yml
│ │ └── tasks/
│ │ └── main.yml
│ ├── rmw_implementation/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── ros2/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── ros2_dev_tools/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── spconv/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ ├── telegraf/
│ │ ├── README.md
│ │ ├── defaults/
│ │ │ └── main.yaml
│ │ ├── files/
│ │ │ ├── get_telegraf_proccpu_json.sh
│ │ │ ├── get_telegraf_procmem_json.sh
│ │ │ └── telegraf.conf
│ │ ├── handlers/
│ │ │ └── main.yaml
│ │ ├── meta/
│ │ │ └── main.yaml
│ │ └── tasks/
│ │ └── main.yaml
│ └── tensorrt/
│ ├── README.md
│ ├── defaults/
│ │ └── main.yaml
│ ├── meta/
│ │ └── main.yaml
│ └── tasks/
│ └── main.yaml
├── ansible-galaxy-requirements.yaml
├── arm64.env
├── docker/
│ ├── Dockerfile
│ ├── Dockerfile.base
│ ├── README.md
│ ├── build.sh
│ ├── docker-bake-base.hcl
│ ├── docker-bake-cuda.hcl
│ ├── docker-bake.hcl
│ ├── docker-compose.gpu.yaml
│ ├── docker-compose.yaml
│ ├── etc/
│ │ ├── .bash_aliases
│ │ └── ros_entrypoint.sh
│ ├── logging-simulation.env
│ ├── logging-simulation.gpu.env
│ ├── planning-simulation.env
│ ├── run.sh
│ ├── scripts/
│ │ ├── build_and_clean.sh
│ │ ├── cleanup_apt.sh
│ │ ├── cleanup_system.sh
│ │ └── resolve_rosdep_keys.sh
│ └── tools/
│ ├── README.md
│ ├── docker-bake.hcl
│ ├── scenario-simulator/
│ │ ├── Dockerfile
│ │ ├── README.md
│ │ └── entrypoint.sh
│ └── visualizer/
│ ├── Dockerfile
│ ├── README.md
│ ├── entrypoint.sh
│ └── xstartup
├── repositories/
│ ├── autoware-nightly.repos
│ ├── autoware.repos
│ ├── extra-packages.repos
│ ├── simulator-nightly.repos
│ ├── simulator.repos
│ ├── tools-nightly.repos
│ └── tools.repos
├── setup-dev-env.sh
├── setup.cfg
└── src/
├── .gitignore
└── README.md
Condensed preview — 209 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (478K chars).
[
{
"path": ".ansible-lint",
"chars": 167,
"preview": "skip_list:\n - galaxy # We don't publish to Ansible Galaxy.\n - package-latest # Since this is a development environment"
},
{
"path": ".clang-format",
"chars": 1316,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".clang-tidy",
"chars": 16732,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".clang-tidy-ci",
"chars": 510,
"preview": "Checks: \"\n -*,\n bugprone-*,\n -bugprone-branch-clone,\n -bugprone-easily-swappable-parameters,\n -bugprone-exception-e"
},
{
"path": ".devcontainer/Dockerfile",
"chars": 420,
"preview": "# hadolint global ignore=DL3006\nARG BASE_IMAGE\nFROM $BASE_IMAGE\n\nENV SHELL /bin/bash\n\nARG USERNAME=autoware\nARG USER_UID"
},
{
"path": ".devcontainer/core-devel/devcontainer.json",
"chars": 522,
"preview": "{\n \"name\": \"autoware:core-devel\",\n \"build\": {\n \"dockerfile\": \"../Dockerfile\",\n \"args\": { \"BASE_IMAGE\": \"ghcr.io/"
},
{
"path": ".devcontainer/universe-devel/devcontainer.json",
"chars": 530,
"preview": "{\n \"name\": \"autoware:universe-devel\",\n \"build\": {\n \"dockerfile\": \"../Dockerfile\",\n \"args\": { \"BASE_IMAGE\": \"ghcr"
},
{
"path": ".devcontainer/universe-devel-cuda/devcontainer.json",
"chars": 610,
"preview": "{\n \"name\": \"autoware:universe-devel-cuda\",\n \"build\": {\n \"dockerfile\": \"../Dockerfile\",\n \"args\": { \"BASE_IMAGE\": "
},
{
"path": ".dockerignore",
"chars": 316,
"preview": "# Ignore git and metadata directories\n.git\n.github\n.vscode\n\n# Ignore all markdown files\n*.md\n\n# Ignore Docker files\ndock"
},
{
"path": ".fdignore",
"chars": 7,
"preview": "!/src/\n"
},
{
"path": ".github/CODEOWNERS",
"chars": 343,
"preview": "* ryohsuke.mitsudome@tier4.jp mfc@autoware.org\n\n.devcontainer/** oguzkaganozt@gmail.com yutaka.kondo@tier4.jp\n.github/**"
},
{
"path": ".github/DISCUSSION_TEMPLATE/general.yaml",
"chars": 551,
"preview": "body:\n - type: checkboxes\n attributes:\n label: Code of Conduct\n options:\n - label: I have read [COD"
},
{
"path": ".github/ISSUE_TEMPLATE/bug.yaml",
"chars": 2093,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 651,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/ISSUE_TEMPLATE/simple-issue.yaml",
"chars": 685,
"preview": "name: Simple Issue\ndescription: Create a simple issue\nbody:\n - type: checkboxes\n attributes:\n label: Checklist\n"
},
{
"path": ".github/ISSUE_TEMPLATE/task.yaml",
"chars": 1445,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/actions/combine-multi-arch-images/action.yaml",
"chars": 4159,
"preview": "name: combine-multi-arch-images\ndescription: \"\"\n\ninputs:\n package-name:\n description: \"\"\n required: true\n\nruns:\n "
},
{
"path": ".github/actions/docker-build/action.yaml",
"chars": 4473,
"preview": "name: docker-build\ndescription: Composite action to build images only.\n\ninputs:\n platform:\n description: Target plat"
},
{
"path": ".github/actions/docker-build-and-push/action.yaml",
"chars": 17352,
"preview": "name: docker-build-and-push\ndescription: Composite action to build and push non CUDA images to registry.\n\ninputs:\n plat"
},
{
"path": ".github/actions/docker-build-and-push-base/action.yaml",
"chars": 2456,
"preview": "name: docker-build-and-push-base\ndescription: Composite action to build and push base images to registry.\n\ninputs:\n tar"
},
{
"path": ".github/actions/docker-build-and-push-cuda/action.yaml",
"chars": 7348,
"preview": "name: docker-build-and-push-cuda\ndescription: Composite action to build and push CUDA images to registry.\n\ninputs:\n pla"
},
{
"path": ".github/actions/docker-build-and-push-tools/action.yaml",
"chars": 3935,
"preview": "name: docker-build-and-push-tools\ndescription: Composite action to build and push tools images to registry.\n\ninputs:\n p"
},
{
"path": ".github/actions/free-disk-space/action.yaml",
"chars": 749,
"preview": "name: free-disk-space\ndescription: \"\"\n\nruns:\n using: composite\n steps:\n - name: Install sudo\n run: |\n i"
},
{
"path": ".github/dependabot.yaml",
"chars": 545,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/pull_request_template.md",
"chars": 43,
"preview": "## Description\n\n## How was this PR tested?\n"
},
{
"path": ".github/stale.yml",
"chars": 583,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/sync-files.yaml",
"chars": 1238,
"preview": "- repository: autowarefoundation/sync-file-templates\n source-dir: sources\n files:\n - source: .github/ISSUE_TEMPLATE"
},
{
"path": ".github/workflows/autoware-base.yaml",
"chars": 2086,
"preview": "name: autoware-base\n\non:\n push:\n branches:\n - main\n paths:\n - .github/actions/docker-build-and-push-bas"
},
{
"path": ".github/workflows/backport.yaml",
"chars": 2024,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/bump-repo-versions-autoware.yaml",
"chars": 1047,
"preview": "name: bump-repo-versions-autoware\n\non:\n schedule:\n - cron: 0 0,6,12,18 * * *\n workflow_dispatch:\n\nconcurrency:\n gr"
},
{
"path": ".github/workflows/bump-repo-versions-simulator.yaml",
"chars": 1044,
"preview": "name: bump-repo-versions-simulator\n\non:\n schedule:\n - cron: 0 0,6,12,18 * * *\n workflow_dispatch:\n\nconcurrency:\n g"
},
{
"path": ".github/workflows/bump-repo-versions-tools.yaml",
"chars": 1038,
"preview": "name: bump-repo-versions-tools\n\non:\n schedule:\n - cron: 0 0,6,12,18 * * *\n workflow_dispatch:\n\nconcurrency:\n group"
},
{
"path": ".github/workflows/comment-on-pr.yaml",
"chars": 1502,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/dco.yaml",
"chars": 523,
"preview": "name: DCO\n# ref: https://github.com/anchore/syft/pull/2926/files\non:\n pull_request:\njobs:\n dco:\n runs-on: ubuntu-22"
},
{
"path": ".github/workflows/docker-build-and-push.yaml",
"chars": 16504,
"preview": "name: docker-build-and-push\n\non:\n push:\n branches:\n - main\n tags:\n - \"*.*.*\"\n workflow_dispatch:\n\nconc"
},
{
"path": ".github/workflows/github-release.yaml",
"chars": 2143,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/health-check.yaml",
"chars": 3656,
"preview": "name: health-check\n\non:\n pull_request:\n types:\n - opened\n - synchronize\n - reopened\n - labeled\n "
},
{
"path": ".github/workflows/keep-build-cache-small.yaml",
"chars": 4932,
"preview": "name: keep-build-cache-small\n\non:\n workflow_dispatch:\n schedule:\n - cron: 0 6 * * *\n\nconcurrency:\n group: ${{ gith"
},
{
"path": ".github/workflows/load-env.yaml",
"chars": 2512,
"preview": "name: load-env\n\non:\n workflow_call:\n inputs:\n env_file:\n description: Specify the env file to load (e.g."
},
{
"path": ".github/workflows/mirror-main-branch.yaml",
"chars": 352,
"preview": "name: mirror-main-branch\n\non:\n push:\n branches:\n - main\n workflow_dispatch:\n\nconcurrency:\n group: ${{ github."
},
{
"path": ".github/workflows/pre-commit-ansible-autoupdate.yaml",
"chars": 1276,
"preview": "name: pre-commit-ansible-autoupdate\n\non:\n schedule:\n - cron: 0 0 * * *\n workflow_dispatch:\n\nconcurrency:\n group: $"
},
{
"path": ".github/workflows/pre-commit-ansible.yaml",
"chars": 798,
"preview": "name: pre-commit-ansible\n\non:\n pull_request:\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event_name }}-${{"
},
{
"path": ".github/workflows/pre-commit-optional.yaml",
"chars": 760,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/pre-commit.yaml",
"chars": 1064,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/scenario-test-reusable.yaml",
"chars": 6327,
"preview": "name: scenario-test-reusable\n\non:\n workflow_call:\n inputs:\n autoware_container_image:\n type: string\n "
},
{
"path": ".github/workflows/scenario-test.yaml",
"chars": 5530,
"preview": "name: scenario-test\non:\n schedule:\n - cron: 0 12 * * *\n workflow_dispatch:\n push:\n branches:\n - main\nconcu"
},
{
"path": ".github/workflows/semantic-pull-request.yaml",
"chars": 442,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/setup-docker.yaml",
"chars": 374,
"preview": "name: setup-docker\n\non:\n pull_request:\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event_name }}-${{ githu"
},
{
"path": ".github/workflows/setup-universe.yaml",
"chars": 1194,
"preview": "name: setup-universe\n\non:\n pull_request:\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event_name }}-${{ git"
},
{
"path": ".github/workflows/spell-check-daily.yaml",
"chars": 960,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/spell-check-differential.yaml",
"chars": 895,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".github/workflows/sync-files.yaml",
"chars": 924,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".gitignore",
"chars": 219,
"preview": "# Vim\n*.swp\n*.swo\n\n# Visual Studio Code\n.vscode/\n*.code-workspace\n\n# colcon\nbuild/\ninstall/\nlog/\n\n# Python\n*.pyc\n\n# Jetb"
},
{
"path": ".hadolint.yaml",
"chars": 389,
"preview": "ignored:\n - DL3008 # Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <pack"
},
{
"path": ".markdown-link-check.json",
"chars": 287,
"preview": "{\n \"aliveStatusCodes\": [200, 206, 403],\n \"ignorePatterns\": [\n {\n \"pattern\": \"^http://localhost\"\n },\n {\n "
},
{
"path": ".markdownlint.yaml",
"chars": 437,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".pre-commit-config-ansible.yaml",
"chars": 202,
"preview": "repos:\n - repo: https://github.com/ansible/ansible-lint.git\n rev: v25.8.2\n hooks:\n - id: ansible-lint\n "
},
{
"path": ".pre-commit-config-optional.yaml",
"chars": 584,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".pre-commit-config.yaml",
"chars": 3106,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".prettierignore",
"chars": 212,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".prettierrc.yaml",
"chars": 625,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": ".rgignore",
"chars": 7,
"preview": "!/src/\n"
},
{
"path": ".shellcheckrc",
"chars": 22,
"preview": "external-sources=true\n"
},
{
"path": ".webauto-ci/main/autoware-build/run.sh",
"chars": 1336,
"preview": "#!/bin/bash -e\n\n: \"${WEBAUTO_CI_SOURCE_PATH:?is not set}\"\n: \"${WEBAUTO_CI_DEBUG_BUILD:?is not set}\"\n\n: \"${AUTOWARE_PATH:"
},
{
"path": ".webauto-ci/main/autoware-setup/run.sh",
"chars": 868,
"preview": "#!/bin/bash -e\n\nansible_args=()\nansible_args+=(\"--extra-vars\" \"prompt_install_nvidia=y\")\nansible_args+=(\"--extra-vars\" \""
},
{
"path": ".webauto-ci/main/environment-setup/run.sh",
"chars": 385,
"preview": "#!/bin/bash -e\n\napt-get update\n\napt-get -y install sudo curl wget unzip gnupg lsb-release ccache python3-apt python3-pip"
},
{
"path": ".webauto-ci.yaml",
"chars": 3208,
"preview": "# The configuration file for Web.Auto CI/CD tool.\n# https://docs.web.auto/user-manuals/evaluator/configuration/reference"
},
{
"path": ".yamllint.yaml",
"chars": 732,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5487,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "CONTRIBUTING.md",
"chars": 102,
"preview": "# Contributing\n\nSee <https://autowarefoundation.github.io/autoware-documentation/main/contributing/>.\n"
},
{
"path": "CPPLINT.cfg",
"chars": 1439,
"preview": "# This file is automatically synced from:\n# https://github.com/autowarefoundation/sync-file-templates\n# To make changes,"
},
{
"path": "DISCLAIMER.md",
"chars": 2782,
"preview": "DISCLAIMER\n\n“Autoware” will be provided by The Autoware Foundation under the Apache License 2.0.\nThis “DISCLAIMER” will "
},
{
"path": "LICENSE",
"chars": 11357,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "NOTICE",
"chars": 244,
"preview": "autowarefoundation/autoware\nCopyright 2021 The Autoware Foundation\n\nThis product includes software developed at\nThe Auto"
},
{
"path": "README.md",
"chars": 7391,
"preview": "# Autoware - the world's leading open-source software project for autonomous driving\n\n\nrosdistro=humble\nrmw_implementation=rmw_cyclonedds_cpp\n\n# Base image selection for Humble\nba"
},
{
"path": "amd64_jazzy.env",
"chars": 426,
"preview": "# ROS distribution (jazzy)\nrosdistro=jazzy\nrmw_implementation=rmw_cyclonedds_cpp\n\n# Jazzy-specific overrides (will be se"
},
{
"path": "ansible/.gitignore",
"chars": 8,
"preview": "*.retry\n"
},
{
"path": "ansible/COLCON_IGNORE",
"chars": 0,
"preview": ""
},
{
"path": "ansible/README.md",
"chars": 750,
"preview": "# Ansible Collection - autoware.dev_env\n\nThis collection contains the playbooks to set up the development environment fo"
},
{
"path": "ansible/galaxy.yml",
"chars": 506,
"preview": "# Required\nnamespace: autoware\nname: dev_env\nversion: 0.1.0\nreadme: README.md\nauthors:\n - Kenji Miyake <kenji.miyake@ti"
},
{
"path": "ansible/playbooks/docker.yaml",
"chars": 1027,
"preview": "- name: Set up Docker development environments for Autoware\n hosts: localhost\n connection: local\n vars_prompt:\n - "
},
{
"path": "ansible/playbooks/download_artifacts.yaml",
"chars": 97,
"preview": "- name: Download Autoware artifacts\n hosts: localhost\n roles:\n - autoware.dev_env.artifacts\n"
},
{
"path": "ansible/playbooks/install_rviz_theme.yaml",
"chars": 90,
"preview": "- name: Install RViz theme\n hosts: localhost\n roles:\n - autoware.dev_env.qt5ct_setup\n"
},
{
"path": "ansible/playbooks/install_spconv.yaml",
"chars": 116,
"preview": "- name: Download and install the cumm and spconv packages\n hosts: localhost\n roles:\n - autoware.dev_env.spconv\n"
},
{
"path": "ansible/playbooks/openadkit.yaml",
"chars": 2286,
"preview": "- name: Set up source development environments for Autoware Universe\n hosts: localhost\n connection: local\n pre_tasks:"
},
{
"path": "ansible/playbooks/role_rmw_implementation.yaml",
"chars": 241,
"preview": "- name: Install RMW implementation\n hosts: localhost\n roles:\n - role: autoware.dev_env.rmw_implementation\n var"
},
{
"path": "ansible/playbooks/setup_acados.yaml",
"chars": 105,
"preview": "- name: Setup acados\n hosts: localhost\n connection: local\n roles:\n - role: autoware.dev_env.acados\n"
},
{
"path": "ansible/playbooks/telegraf.yaml",
"chars": 100,
"preview": "- name: Set up Telegraf and InfluxDB v2\n hosts: localhost\n roles:\n - autoware.dev_env.telegraf\n"
},
{
"path": "ansible/playbooks/universe.yaml",
"chars": 2832,
"preview": "- name: Set up source development environments for Autoware Universe\n hosts: localhost\n connection: local\n vars_promp"
},
{
"path": "ansible/roles/acados/README.md",
"chars": 3602,
"preview": "# Setup acados\n\nInstalls [acados](https://github.com/acados/acados), a fast and embedded solver for nonlinear optimal co"
},
{
"path": "ansible/roles/acados/defaults/main.yaml",
"chars": 102,
"preview": "acados_version: v0.5.3\nacados_tera_renderer_version: v0.2.0\nacados_pip_packages:\n - casadi\n - sympy\n"
},
{
"path": "ansible/roles/acados/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/acados/tasks/main.yaml",
"chars": 3190,
"preview": "- name: Clone acados repository (shallow) with submodules\n become: true\n ansible.builtin.git:\n repo: https://github"
},
{
"path": "ansible/roles/agnocast/README.md",
"chars": 763,
"preview": "# agnocast\n\nThis role installs [Agnocast](https://github.com/tier4/agnocast), true zero-copy communication middleware fo"
},
{
"path": "ansible/roles/agnocast/defaults/main.yaml",
"chars": 154,
"preview": "agnocast_version: 2.3.1\nagnocast_heaphook_package: agnocast-heaphook-v{{ agnocast_version }}\nagnocast_kmod_package: agno"
},
{
"path": "ansible/roles/agnocast/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/agnocast/tasks/main.yaml",
"chars": 7339,
"preview": "# Remove legacy agnocast PPA configuration (if exists)\n- name: Remove legacy agnocast PPA via add-apt-repository\n ansib"
},
{
"path": "ansible/roles/artifacts/README.md",
"chars": 2531,
"preview": "# Autoware artifacts\n\nThe Autoware perception stack uses models for inference. These models are automatically downloaded"
},
{
"path": "ansible/roles/artifacts/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/artifacts/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/artifacts/tasks/main.yaml",
"chars": 35813,
"preview": "# yabloc_pose_initializer\n- name: Create yabloc_pose_initializer directory inside {{ data_dir }}\n ansible.builtin.file:"
},
{
"path": "ansible/roles/build_tools/README.md",
"chars": 1086,
"preview": "# Build Tools\n\nThis role installs build tools for building Autoware.\n\n## Tools\n\n- ccache\n\n## Inputs\n\n## Manual Installat"
},
{
"path": "ansible/roles/build_tools/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/build_tools/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/build_tools/tasks/main.yaml",
"chars": 984,
"preview": "- name: Install ccache\n become: true\n ansible.builtin.apt:\n name: ccache\n state: latest\n update_cache: true\n\n"
},
{
"path": "ansible/roles/cuda/README.md",
"chars": 4000,
"preview": "# cuda\n\nThis role installs [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) following [this page](https://devel"
},
{
"path": "ansible/roles/cuda/defaults/main.yaml",
"chars": 27,
"preview": "cuda_install_drivers: true\n"
},
{
"path": "ansible/roles/cuda/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/cuda/tasks/main.yaml",
"chars": 4607,
"preview": "# cspell:ignore libnvjpeg\n- name: Get CUDA architecture name\n ansible.builtin.shell: |\n if [ \"$(uname -m)\" = \"x86_64"
},
{
"path": "ansible/roles/dev_tools/README.md",
"chars": 1024,
"preview": "# devel\n\nThis role installs optional development tools for Autoware.\n\n## Tools\n\n- pipx\n- Go\n- PlotJuggler\n- Git LFS\n- pr"
},
{
"path": "ansible/roles/dev_tools/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/dev_tools/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/dev_tools/tasks/main.yaml",
"chars": 1443,
"preview": "# https://github.com/git-lfs/git-lfs/wiki/Installation#debian-and-ubuntu\n- name: Install Git LFS\n become: true\n ansibl"
},
{
"path": "ansible/roles/docker_engine/README.md",
"chars": 2330,
"preview": "# docker_engine\n\nThis role installs [Docker Engine](https://docs.docker.com/engine/) following the [Official Installatio"
},
{
"path": "ansible/roles/docker_engine/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/docker_engine/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/docker_engine/tasks/main.yaml",
"chars": 2489,
"preview": "- name: Uninstall old versions\n become: true\n ansible.builtin.apt:\n name:\n - docker\n - docker-engine\n "
},
{
"path": "ansible/roles/gdown/README.md",
"chars": 153,
"preview": "# Role: gdown\n\nThis role installs gdown to download files from CMakeLists.txt.\n\n## Inputs\n\nNone.\n\n## Manual Installation"
},
{
"path": "ansible/roles/gdown/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/gdown/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/gdown/tasks/main.yaml",
"chars": 248,
"preview": "- name: Install pipx\n become: true\n ansible.builtin.apt:\n name: pipx\n state: latest\n update_cache: true\n\n- na"
},
{
"path": "ansible/roles/geographiclib/README.md",
"chars": 210,
"preview": "# geographiclib\n\n## Inputs\n\nNone.\n\n## Manual Installation\n\n```bash\nsudo apt update\nsudo apt install -y geographiclib-too"
},
{
"path": "ansible/roles/geographiclib/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/geographiclib/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/geographiclib/tasks/main.yaml",
"chars": 317,
"preview": "- name: Install geographiclib-tools\n become: true\n ansible.builtin.apt:\n name: geographiclib-tools\n state: lates"
},
{
"path": "ansible/roles/kisak_mesa/README.md",
"chars": 824,
"preview": "# Kisak Mesa Fix for Ubuntu 22.04 for Rviz2 (Not mandatory)\n\nIf you are using Ubuntu 22.04 and Rviz2 (especially inside "
},
{
"path": "ansible/roles/kisak_mesa/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/kisak_mesa/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/kisak_mesa/tasks/main.yaml",
"chars": 513,
"preview": "- name: Install additional dependencies\n become: true\n ansible.builtin.apt:\n name: software-properties-common\n s"
},
{
"path": "ansible/roles/nvidia_container_toolkit/README.md",
"chars": 3937,
"preview": "# nvidia_container_toolkit\n\nThis role installs [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-container-too"
},
{
"path": "ansible/roles/nvidia_container_toolkit/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/nvidia_container_toolkit/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/nvidia_container_toolkit/tasks/main.yaml",
"chars": 1009,
"preview": "- name: Add NVIDIA container toolkit GPG key\n become: true\n ansible.builtin.apt_key:\n url: https://nvidia.github.io"
},
{
"path": "ansible/roles/qt5ct_setup/README.md",
"chars": 2107,
"preview": "# qt5ct_setup Ansible role\n\n## Overview\n\nThe `qt5ct_setup` Ansible role automates the configuration of the `qt5ct` envir"
},
{
"path": "ansible/roles/qt5ct_setup/defaults/main.yml",
"chars": 32,
"preview": "# defaults file for qt5ct_setup\n"
},
{
"path": "ansible/roles/qt5ct_setup/files/autoware.qss",
"chars": 30017,
"preview": "/* ------------------------------------------------------------------------ */\n/* QtMaterial - https://github.com/UN-G"
},
{
"path": "ansible/roles/qt5ct_setup/files/qt5ct.conf",
"chars": 1157,
"preview": "[Appearance]\ncolor_scheme_path=/usr/share/qt5ct/colors/darker.conf\ncustom_palette=true\nicon_theme=ubuntu-mono-dark\nstand"
},
{
"path": "ansible/roles/qt5ct_setup/meta/main.yml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/qt5ct_setup/tasks/main.yml",
"chars": 2293,
"preview": "- name: Install qt5ct\n ansible.builtin.apt:\n name: qt5ct\n state: present\n become: true\n\n- name: Install rsync\n "
},
{
"path": "ansible/roles/rmw_implementation/README.md",
"chars": 1268,
"preview": "# rmw_implementation\n\nThis role sets up ROS 2 RMW implementation following [this page](https://docs.ros.org/en/humble/Ho"
},
{
"path": "ansible/roles/rmw_implementation/defaults/main.yaml",
"chars": 67,
"preview": "rmw_implementation__rosdistro: null\nrmw_implementation__name: null\n"
},
{
"path": "ansible/roles/rmw_implementation/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/rmw_implementation/tasks/main.yaml",
"chars": 1296,
"preview": "- name: Validate inputs\n ansible.builtin.assert:\n that:\n - rmw_implementation__rosdistro | length > 0\n - r"
},
{
"path": "ansible/roles/ros2/README.md",
"chars": 3105,
"preview": "# ros2\n\nThis role installs [ROS 2](http://www.ros2.org/) following [this page](https://docs.ros.org/en/humble/Installati"
},
{
"path": "ansible/roles/ros2/defaults/main.yaml",
"chars": 32,
"preview": "ros2_installation_type: desktop\n"
},
{
"path": "ansible/roles/ros2/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/ros2/tasks/main.yaml",
"chars": 2236,
"preview": "- name: Get latest release information of ros-apt-source package\n ansible.builtin.uri:\n url: https://api.github.com/"
},
{
"path": "ansible/roles/ros2_dev_tools/README.md",
"chars": 910,
"preview": "# ros2_dev_tools\n\nThis role installs ROS 2 development tools following [this page](https://docs.ros.org/en/humble/Instal"
},
{
"path": "ansible/roles/ros2_dev_tools/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/ros2_dev_tools/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/ros2_dev_tools/tasks/main.yaml",
"chars": 1024,
"preview": "- name: Install apt packages\n become: true\n ansible.builtin.apt:\n name:\n - python3-colcon-mixin\n - python"
},
{
"path": "ansible/roles/spconv/README.md",
"chars": 1498,
"preview": "# spconv\n\nThis role install the `cumm` and `spconv` libraries needed to perform sparse convolutions.\nThe [original imple"
},
{
"path": "ansible/roles/spconv/defaults/main.yaml",
"chars": 24,
"preview": "spconv_is_jetson: false\n"
},
{
"path": "ansible/roles/spconv/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/spconv/tasks/main.yaml",
"chars": 1332,
"preview": "# cspell:ignore Bcumm\n- name: Normalize dpkg architecture\n ansible.builtin.set_fact:\n spconv_normalized_arch: \"{{ an"
},
{
"path": "ansible/roles/telegraf/README.md",
"chars": 1050,
"preview": "# telegraf\n\nThis role install [InfluxDB v2](https://docs.influxdata.com/influxdb/v2/get-started/) and [Telegraf](https:/"
},
{
"path": "ansible/roles/telegraf/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/telegraf/files/get_telegraf_proccpu_json.sh",
"chars": 421,
"preview": "#!/bin/bash\n\nSAMPLING_SEC=5\n\necho \"{\"\npidstat -u -h -l \"${SAMPLING_SEC}\" 1 |\n tail -n +4 |\n awk '{ cpu=$8; $1=$2=$"
},
{
"path": "ansible/roles/telegraf/files/get_telegraf_procmem_json.sh",
"chars": 297,
"preview": "#!/bin/bash\n\necho \"{\"\nps -ax --format \"rss command\" |\n while read -r rss cmd; do\n if [[ $rss -lt 30000 ]]; the"
},
{
"path": "ansible/roles/telegraf/files/telegraf.conf",
"chars": 1246,
"preview": "[global_tags]\n\n[agent]\n interval = \"10s\"\n round_interval = true\n metric_batch_size = 1000\n metric_buffer_limit = 100"
},
{
"path": "ansible/roles/telegraf/handlers/main.yaml",
"chars": 92,
"preview": "- name: Restart telegraf\n ansible.builtin.systemd:\n name: telegraf\n state: restarted\n"
},
{
"path": "ansible/roles/telegraf/meta/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/telegraf/tasks/main.yaml",
"chars": 3799,
"preview": "- name: Download influxdata-archive_compat.key\n become: true\n ansible.builtin.get_url:\n url: https://repos.influxda"
},
{
"path": "ansible/roles/tensorrt/README.md",
"chars": 1423,
"preview": "# tensorrt\n\nThis role installs TensorRT following [the official NVIDIA TensorRT Installation Guide](https://docs.nvidia."
},
{
"path": "ansible/roles/tensorrt/defaults/main.yaml",
"chars": 0,
"preview": ""
},
{
"path": "ansible/roles/tensorrt/meta/main.yaml",
"chars": 46,
"preview": "dependencies:\n - role: autoware.dev_env.cuda\n"
},
{
"path": "ansible/roles/tensorrt/tasks/main.yaml",
"chars": 1345,
"preview": "- name: Install TensorRT\n become: true\n ansible.builtin.apt:\n name:\n - libnvinfer10={{ tensorrt_version }}\n "
},
{
"path": "ansible-galaxy-requirements.yaml",
"chars": 49,
"preview": "collections:\n - source: ./ansible\n type: dir\n"
},
{
"path": "arm64.env",
"chars": 66,
"preview": "# Override amd64's settings\ntensorrt_version=10.3.0.26-1+cuda12.5\n"
},
{
"path": "docker/Dockerfile",
"chars": 45161,
"preview": "ARG AUTOWARE_BASE_IMAGE=ghcr.io/autowarefoundation/autoware-base:latest\nARG AUTOWARE_BASE_CUDA_IMAGE=ghcr.io/autowarefou"
},
{
"path": "docker/Dockerfile.base",
"chars": 2199,
"preview": "ARG BASE_IMAGE\n\n# hadolint ignore=DL3006\nFROM $BASE_IMAGE AS base\nSHELL [\"/bin/bash\", \"-o\", \"pipefail\", \"-c\"]\nARG ROS_DI"
},
{
"path": "docker/README.md",
"chars": 11083,
"preview": "# Open AD Kit: containerized workloads for Autoware\n\n[Open AD Kit](https://autoware.org/open-ad-kit/) offers containers "
},
{
"path": "docker/build.sh",
"chars": 7016,
"preview": "#!/usr/bin/env bash\n\nset -e\n\n# Function to print help message\nprint_help() {\n echo \"Usage: build.sh [OPTIONS]\"\n ec"
},
{
"path": "docker/docker-bake-base.hcl",
"chars": 441,
"preview": "group \"default\" {\n targets = [\n \"base\",\n \"base-cuda\"\n ]\n}\n\n// For docker/metadata-action\ntarget \"docker-metadata"
},
{
"path": "docker/docker-bake-cuda.hcl",
"chars": 1453,
"preview": "group \"default\" {\n targets = [\n \"universe-common-devel-cuda\",\n \"universe-sensing-perception-devel-cuda\",\n \"uni"
},
{
"path": "docker/docker-bake.hcl",
"chars": 4680,
"preview": "group \"default\" {\n targets = [\n \"core-common-devel\",\n \"core\",\n \"core-devel\",\n \"universe-common-devel\",\n "
},
{
"path": "docker/docker-compose.gpu.yaml",
"chars": 190,
"preview": "services:\n sensing-perception:\n deploy:\n resources:\n reservations:\n devices:\n - driv"
},
{
"path": "docker/docker-compose.yaml",
"chars": 8955,
"preview": "services:\n map:\n image: ghcr.io/autowarefoundation/autoware:universe-localization-mapping\n container_name: autowa"
},
{
"path": "docker/etc/.bash_aliases",
"chars": 1542,
"preview": "#!/bin/bash\n\n# planning simulation\nfunction download_planning_map() {\n if [ ! -f ~/autoware_map/sample-map-planning.z"
},
{
"path": "docker/etc/ros_entrypoint.sh",
"chars": 1214,
"preview": "#!/usr/bin/env bash\n# shellcheck disable=SC1090,SC1091\n\n# Get the user ID and group ID of the local user\nUSER_ID=${LOCAL"
},
{
"path": "docker/logging-simulation.env",
"chars": 1788,
"preview": "# ROS settings\nROS_DOMAIN_ID=1\nUSE_SIM_TIME=true\n\n# Common settings\nPOINTCLOUD_CONTAINER_NAME=pointcloud_container\nSCENA"
},
{
"path": "docker/logging-simulation.gpu.env",
"chars": 327,
"preview": "# Perception settings\nSENSING_PERCEPTION_IMAGE=ghcr.io/autowarefoundation/autoware:universe-sensing-perception-cuda\nLIDA"
},
{
"path": "docker/planning-simulation.env",
"chars": 1655,
"preview": "# ROS settings\nROS_DOMAIN_ID=1\nUSE_SIM_TIME=false\n\n# Common settings\nPOINTCLOUD_CONTAINER_NAME=pointcloud_container\nSCEN"
},
{
"path": "docker/run.sh",
"chars": 6783,
"preview": "#!/usr/bin/env bash\n# shellcheck disable=SC2086,SC2124\n\nset -e\n\n# Define terminal colors\nRED='\\033[0;31m'\nGREEN='\\033[0;"
},
{
"path": "docker/scripts/build_and_clean.sh",
"chars": 591,
"preview": "#!/bin/bash\nset -eo pipefail\n\nfunction build_and_clean() {\n local ccache_dir=$1\n local install_base=$2\n local c"
},
{
"path": "docker/scripts/cleanup_apt.sh",
"chars": 237,
"preview": "#!/bin/bash\nset -eo pipefail\n\nfunction cleanup_apt() {\n local apt_clean=$1\n apt-get autoremove -y && rm -rf /var/l"
},
{
"path": "docker/scripts/cleanup_system.sh",
"chars": 769,
"preview": "#!/bin/bash\nset -eo pipefail\n\nfunction cleanup_system() {\n local lib_dir=$1\n local ros_distro=$2\n\n find /usr/li"
},
{
"path": "docker/scripts/resolve_rosdep_keys.sh",
"chars": 394,
"preview": "#!/bin/bash\nset -eo pipefail\n\nfunction resolve_rosdep_keys() {\n local src_path=$1\n local ros_distro=$2\n local r"
},
{
"path": "docker/tools/README.md",
"chars": 316,
"preview": "# Autoware Tools\n\nThis directory offers container-based tools for Autoware to make development and deployment easier.\n\n-"
},
{
"path": "docker/tools/docker-bake.hcl",
"chars": 549,
"preview": "group \"default\" {\n targets = [\n \"visualizer\",\n \"scenario-simulator\",\n ]\n}\n\n// For docker/metadata-action\ntarget "
},
{
"path": "docker/tools/scenario-simulator/Dockerfile",
"chars": 2307,
"preview": "### Builder\nFROM ghcr.io/autowarefoundation/autoware:universe-devel AS builder\nSHELL [\"/bin/bash\", \"-o\", \"pipefail\", \"-c"
},
{
"path": "docker/tools/scenario-simulator/README.md",
"chars": 5260,
"preview": "# Autoware Tools - Scenario Simulator\n\nRuns Scenario Simulator in a container.\n\n## Standalone Run\n\n```bash\ndocker run --"
},
{
"path": "docker/tools/scenario-simulator/entrypoint.sh",
"chars": 2389,
"preview": "#!/usr/bin/env bash\n# cspell:ignore\n# shellcheck disable=SC1090,SC1091\n\nrun_scenario_simulator() {\n echo -e \"\\e[32mRu"
},
{
"path": "docker/tools/visualizer/Dockerfile",
"chars": 1746,
"preview": "# cspell:ignore openbox, VNC, tigervnc, novnc, websockify, newkey, xstartup, keyout\nFROM ghcr.io/autowarefoundation/auto"
},
{
"path": "docker/tools/visualizer/README.md",
"chars": 1526,
"preview": "# Autoware Tools - Visualizer\n\nOpens a remote RViz display for Autoware.\n\n## Standalone Run\n\n```bash\ndocker run --rm --n"
},
{
"path": "docker/tools/visualizer/entrypoint.sh",
"chars": 3669,
"preview": "#!/usr/bin/env bash\n# cspell:ignore openbox, VNC, tigervnc, novnc, websockify, newkey, xstartup, pixelformat, AUTHTOKEN,"
},
{
"path": "docker/tools/visualizer/xstartup",
"chars": 386,
"preview": "#!/bin/sh\n# cspell:ignore openbox, VNC, xstartup, DBUS, Xresources, xrdb\n\nunset SESSION_MANAGER\nunset DBUS_SESSION_BUS_A"
},
{
"path": "repositories/autoware-nightly.repos",
"chars": 1333,
"preview": "repositories:\n core/autoware_adapi_msgs:\n type: git\n url: https://github.com/autowarefoundation/autoware_adapi_ms"
},
{
"path": "repositories/autoware.repos",
"chars": 5017,
"preview": "repositories:\n # core\n core/autoware_msgs:\n type: git\n url: https://github.com/autowarefoundation/autoware_msgs."
}
]
// ... and 9 more files (download for full content)
About this extraction
This page contains the full source code of the autowarefoundation/autoware GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 209 files (437.2 KB), approximately 127.0k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.