Skip to content

Commit

Permalink
Merge pull request ros-navigation#25 from botsandus/AUTO-910_iron_mig…
Browse files Browse the repository at this point in the history
…ration

AUTO-910 -- iron migration
  • Loading branch information
scheunemann authored Sep 28, 2023
2 parents 8576271 + 1b788be commit e59e6aa
Show file tree
Hide file tree
Showing 510 changed files with 18,709 additions and 2,196 deletions.
88 changes: 71 additions & 17 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 >>-v16\
-{{ arch }}\
-{{ .Branch }}\
-{{ .Environment.CIRCLE_PR_NUMBER }}\
-{{ checksum \"<< parameters.workspace >>/lockfile.txt\" }}"
- "<< parameters.key >>-v13\
- "<< parameters.key >>-v16\
-{{ 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 >>-v16\
-{{ arch }}\
-{{ .Branch }}\
-{{ .Environment.CIRCLE_PR_NUMBER }}\
Expand Down Expand Up @@ -123,15 +123,24 @@ _commands:
type: string
mixins:
type: string
packages_skip_regex:
default: ""
type: string
restore:
default: true
type: boolean
build:
default: true
type: boolean
steps:
- store_artifacts:
path: << parameters.workspace >>/lockfile.txt
- restore_from_cache:
key: << parameters.key >>
workspace: << parameters.workspace >>
- when:
condition: << parameters.restore >>
steps:
- restore_from_cache:
key: << parameters.key >>
workspace: << parameters.workspace >>
- when:
condition: << parameters.build >>
steps:
Expand Down Expand Up @@ -176,6 +185,7 @@ _commands:
BUILD_PACKAGES=$(
colcon list \
--names-only \
--packages-skip-regex << parameters.packages_skip_regex >> \
--packages-above \
$BUILD_UNFINISHED \
$BUILD_FAILED \
Expand Down Expand Up @@ -216,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 @@ -251,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 @@ -260,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 @@ -301,10 +316,15 @@ _commands:
when: always
- store_artifacts:
path: << parameters.workspace >>/log/test
- store_test_results:
path: << parameters.workspace >>/test_results
- store_artifacts:
path: << parameters.workspace >>/test_results
- run:
name: Prepare Test Results
working_directory: << parameters.workspace >>
command: find test_results -name "Test.xml" -type f -delete
when: always
- store_test_results:
path: << parameters.workspace >>/test_results

_steps:
pre_checkout: &pre_checkout
Expand Down Expand Up @@ -365,6 +385,10 @@ _steps:
underlay: /opt/underlay_ws
workspace: /opt/overlay_ws
mixins: ${OVERLAY_MIXINS}
build_workspace_overlay: &build_workspace_overlay
setup_workspace:
<<: *setup_workspace_overlay
packages_skip_regex: << parameters.packages_skip_regex >>
restore_overlay_workspace: &restore_overlay_workspace
setup_workspace:
<<: *setup_workspace_overlay
Expand All @@ -374,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 @@ -411,8 +436,11 @@ commands:
- *install_overlay_dependencies
build_source:
description: "Build Source"
parameters:
packages_skip_regex:
type: string
steps:
- *setup_overlay_workspace
- *build_workspace_overlay
restore_build:
description: "Restore Build"
steps:
Expand All @@ -426,6 +454,8 @@ commands:
parameters:
cache_test:
type: boolean
packages_skip_regex:
type: string
steps:
- *test_overlay_workspace
report_coverage:
Expand All @@ -442,7 +472,7 @@ _environments:
UNDERLAY_MIXINS: "release ccache lld"
CCACHE_LOGFILE: "/tmp/ccache.log"
CCACHE_MAXSIZE: "200M"
MAKEFLAGS: "-j 4 -l 4 "
MAKEFLAGS: "-j 2 -l 2 "
COLCON_DEFAULTS_FILE: "/tmp/defaults.yaml"
RCUTILS_LOGGING_BUFFERED_STREAM: "0"
RCUTILS_LOGGING_USE_STDOUT: "0"
Expand All @@ -461,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 @@ -475,39 +511,57 @@ _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
- rmw_cyclonedds_cpp
- rmw_fastrtps_cpp
triggers:
Expand Down
132 changes: 132 additions & 0 deletions .devcontainer/caddy/Caddyfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Snippet for global matchers and variables
# to logically expression request conditions
# E.g. for conditionally changing redirects
(globals) {
# Use gzip compression for all responses
encode gzip

# Matcher for http request scheme. E.g. "http" or "https"
@http_scheme {
expression {http.request.scheme}=="https" || {header.X-Forwarded-Scheme}=="https" || {header.X-Forwarded-Proto}=="https"
}
# If any http scheme is "https", then use "wss"
vars @http_scheme WsScheme "wss"
# Else default to "ws"
vars WsScheme "ws"

# Matcher for forwarded request headers
@host_forwarded {
header X-Forwarded-Host *
}
# If http headers exists, then use them
vars @host_forwarded ReqHost {header.X-Forwarded-Host}
# Else default to host in request
vars ReqHost {http.request.hostport}

# Matcher for websocket connection upgrade requests
@websockets {
# Avoid case sensitivity issues when matching field values
# E.g. when values are rewritten by Codespace port forwarding
header_regexp Connection (?i)(Upgrade)
header Upgrade websocket
}
}

# Snippet for redirect with given URL queries values
# to simplify remote development with web apps
# E.g auto redirect websocket URL to match request scheme
(redirect) {
# Configure redirect to match request scheme
vars LayoutUrl "/assets/foxglove/nav2_layout.json"
vars DataSourceUrl "{vars.WsScheme}://{vars.ReqHost}{args.0}/"
redir /autoconnect "{args.0}/?ds=foxglove-websocket&ds.url={vars.DataSourceUrl}"
redir /autolayout "{args.0}/?ds=foxglove-websocket&ds.url={vars.DataSourceUrl}&layoutUrl={vars.LayoutUrl}"
}

# Snippet for dummy imports
(dummy) {
}

# Snippet for enabling mobile web app features
# to improve user experience on small screen devices
# E.g. for enabling fullscreen mode on iOS and Android
(mobile) {
# Match for directory redirects to index.html
route / {
# Inject link to manifest just after <head> tag
# https://developer.mozilla.org/docs/Web/Manifest
replace `<head>` `<head><link rel="manifest" href="manifest.json" crossorigin="use-credentials"/>`
}
# Redirect relative handle_path'ed manifest.json to /manifests directory
redir /manifest.json /assets{http.request.orig_uri.path.dir}manifest.json
}

# Snippet for hosted web app using websockets
# to serve static files and reverse proxying connections
# E.g. for serving GzWeb and Foxglove web apps
(app) {
# handle and strip path prefix from redirect
handle_path {args.0}/* {
# Set root directory for static files
root * {http.vars.root}{args.0}
# Enable mobile web app features
import mobile
# Reverse proxy websockets to backend address
reverse_proxy @websockets {args.1}
# Import custom snippets
import {args.2} {args.0}
}
}

# Listen for http requests on port 8080
# regardless of hostname or domain address
# E.g. whatever Codespaces assigns to host
:8080 {
# Include global matchers and variables
import globals
root * {$ROOT_SRV:/srv}
file_server browse

# Handle root content
# I.e. assets internal to workspace
handle /* {
# Template manifest.json files
templates */manifest.json {
mime application/json
}
}

# Handle nav2 web app
# I.e. main landing page
handle_path /nav2/* {
root * {http.vars.root}/nav2
import mobile
# Render markdown files as html
templates
}

# Matcher for requests without browse query
@no_browse {
path /
not query browse=true
}
# Redirect to nav2 web app by default
redir @no_browse /nav2/

# Import app snippets for web apps
import app "/gzweb" "localhost:9090" "dummy"
import app "/foxglove" "localhost:8765" "redirect"

# Handle glances web app
redir /glances /glances/
handle_path /glances/* {
import mobile
# Reverse proxy to glances backend
reverse_proxy * "localhost:61208"
}

# For debugging
# log {
# output file /var/log/caddy/server.log
# }
}
Loading

0 comments on commit e59e6aa

Please sign in to comment.