Skip to content
69 changes: 50 additions & 19 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@ _commands:
- restore_cache:
name: Restore Cache << parameters.key >>
keys:
- "<< parameters.key >>-v13\
- "<< parameters.key >>-v14\
-{{ arch }}\
-{{ .Branch }}\
-{{ .Environment.CIRCLE_PR_NUMBER }}\
-{{ checksum \"<< parameters.workspace >>/lockfile.txt\" }}"
- "<< parameters.key >>-v13\
- "<< parameters.key >>-v14\
-{{ arch }}\
-main\
-<no value>\
Expand All @@ -58,7 +58,7 @@ _commands:
steps:
- save_cache:
name: Save Cache << parameters.key >>
key: "<< parameters.key >>-v13\
key: "<< parameters.key >>-v14\
-{{ arch }}\
-{{ .Branch }}\
-{{ .Environment.CIRCLE_PR_NUMBER }}\
Expand Down Expand Up @@ -123,7 +123,7 @@ _commands:
type: string
mixins:
type: string
skip:
packages_skip_regex:
default: ""
type: string
restore:
Expand Down Expand Up @@ -185,6 +185,7 @@ _commands:
BUILD_PACKAGES=$(
colcon list \
--names-only \
--packages-skip-regex << parameters.packages_skip_regex >> \
--packages-above \
$BUILD_UNFINISHED \
$BUILD_FAILED \
Expand All @@ -200,7 +201,6 @@ _commands:
. << parameters.underlay >>/install/setup.sh
colcon build \
--packages-select ${BUILD_PACKAGES} \
--packages-skip << parameters.skip >> \
--mixin << parameters.mixins >>
- ccache_stats:
workspace: << parameters.workspace >>
Expand All @@ -226,6 +226,9 @@ _commands:
type: string
cache_test:
type: boolean
packages_skip_regex:
type: string
default: ""
steps:
- run:
name: Test Workspace | << parameters.workspace >>
Expand Down Expand Up @@ -261,6 +264,7 @@ _commands:
TEST_PACKAGES=$(
colcon list \
--names-only \
--packages-skip-regex << parameters.packages_skip_regex >> \
--packages-above \
$TEST_UNPASSED \
$TEST_FAILURES \
Expand All @@ -270,7 +274,8 @@ _commands:
then
TEST_PACKAGES=$(
colcon list \
--names-only)
--names-only) \
--packages-skip-regex << parameters.packages_skip_regex >>
fi
TEST_PACKAGES=$(
echo $TEST_PACKAGES \
Expand Down Expand Up @@ -380,14 +385,10 @@ _steps:
underlay: /opt/underlay_ws
workspace: /opt/overlay_ws
mixins: ${OVERLAY_MIXINS}
setup_workspace_overlay_1: &setup_workspace_overlay_1
setup_workspace:
<<: *setup_workspace_overlay
skip: nav2_system_tests
setup_workspace_overlay_2: &setup_workspace_overlay_2
build_workspace_overlay: &build_workspace_overlay
setup_workspace:
<<: *setup_workspace_overlay
restore: false
packages_skip_regex: << parameters.packages_skip_regex >>
restore_overlay_workspace: &restore_overlay_workspace
setup_workspace:
<<: *setup_workspace_overlay
Expand All @@ -397,6 +398,7 @@ _steps:
key: overlay_ws
workspace: /opt/overlay_ws
cache_test: << parameters.cache_test >>
packages_skip_regex: << parameters.packages_skip_regex >>
collect_overlay_coverage: &collect_overlay_coverage
run:
name: Collect Code Coverage
Expand Down Expand Up @@ -434,9 +436,11 @@ commands:
- *install_overlay_dependencies
build_source:
description: "Build Source"
parameters:
packages_skip_regex:
type: string
steps:
- *setup_workspace_overlay_1
- *setup_workspace_overlay_2
- *build_workspace_overlay
restore_build:
description: "Restore Build"
steps:
Expand All @@ -450,6 +454,8 @@ commands:
parameters:
cache_test:
type: boolean
packages_skip_regex:
type: string
steps:
- *test_overlay_workspace
report_coverage:
Expand Down Expand Up @@ -485,8 +491,14 @@ executors:
OVERLAY_MIXINS: "release ccache coverage-gcc lld"

_jobs:
job_build: &job_build
parameters: &job_build_parameters
packages_skip_regex:
type: string
default: ""
job_test: &job_test
parameters:
<<: *job_build_parameters
cache_test:
type: boolean
default: false
Expand All @@ -499,36 +511,55 @@ _jobs:

jobs:
release_build: &release_build
<<: *job_build
executor: release_exec
steps:
- checkout_source
- setup_dependencies
- build_source
- build_source:
packages_skip_regex: << parameters.packages_skip_regex >>
system_build: &system_build
<<: *release_build
release_test: &release_test
<<: *job_test
executor: release_exec
steps:
- restore_build
- test_build:
cache_test: << parameters.cache_test >>
packages_skip_regex: << parameters.packages_skip_regex >>
- report_coverage

_parameters:
release_parameters: &release_parameters
packages_skip_regex: "nav2_system_tests"

workflows:
version: 2
build_and_test:
jobs:
- release_build
- release_test:
- release_build:
<<: *release_parameters
- system_build:
requires:
- release_build
- release_test:
requires:
- system_build
cache_test: true
nightly:
jobs:
- release_build
- release_test:
- release_build:
<<: *release_parameters
- system_build:
requires:
- release_build
- release_test:
requires:
- system_build
<<: *release_parameters
matrix:
alias: release_test
parameters:
rmw:
- rmw_connextdds
Expand Down