Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/compose-oci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@ name: compose-oci
on:
push:
branches:
- '**'
- main
tags:
- '**'
- 'v[0-9]+.[0-9]+.[0-9]+'
pull_request:
branches:
- main
workflow_dispatch:

jobs:
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/ghcr-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: ghcr-cleanup

on:
schedule:
- cron: "0 0 * * *" # every day at 00:00
workflow_dispatch:

jobs:
ghcr-cleanup:
uses: openads-project/openads-dev-environment/.github/workflows/ghcr-cleanup.yml@main
secrets: inherit
17 changes: 17 additions & 0 deletions .github/workflows/helm-oci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: helm-oci

on:
push:
branches:
- main
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
pull_request:
branches:
- main
workflow_dispatch:

jobs:
helm-oci:
uses: openads-project/openads-dev-environment/.github/workflows/helm-oci.yml@main
secrets: inherit
54 changes: 53 additions & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
stages:
- docker-ros
- compose-oci
- helm-oci
- consistency
- docs

Expand All @@ -18,13 +20,63 @@ docker-ros:
ENABLE_INDUSTRIAL_CI: 'true'
TARGET_CMAKE_ARGS: '-DCMAKE_EXPORT_COMPILE_COMMANDS=1'

compose-oci:
stage: compose-oci
image: docker:28-cli
rules:
- if: '$CI_COMMIT_BRANCH || $CI_COMMIT_TAG'
exists:
- deployment/compose/docker-compose.yml
variables:
COMPOSE_FILE: deployment/compose/docker-compose.yml
COMPOSE_IMAGE_NAME: $CI_REGISTRY_IMAGE/compose
COMPOSE_IMAGE_TAG: $CI_COMMIT_REF_SLUG
script:
- test -f "$COMPOSE_FILE"
- echo "$CI_REGISTRY_PASSWORD" | docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" --password-stdin
- docker compose -f "$COMPOSE_FILE" publish --yes "$COMPOSE_IMAGE_NAME:$COMPOSE_IMAGE_TAG"

helm-oci:
stage: helm-oci
image:
name: alpine/helm:3.18.4
entrypoint: [""]
rules:
- if: '$CI_COMMIT_BRANCH || $CI_COMMIT_TAG'
exists:
- deployment/helm/Chart.yaml
variables:
CHART_FOLDER: deployment/helm
HELM_OCI_REGISTRY: $CI_REGISTRY_IMAGE/helm
before_script:
- echo "$CI_REGISTRY_PASSWORD" | helm registry login "$CI_REGISTRY" --username "$CI_REGISTRY_USER" --password-stdin
script:
- test -f "$CHART_FOLDER/Chart.yaml"
- |
if [ -z "$CI_COMMIT_TAG" ]; then
chart_file="$CHART_FOLDER/Chart.yaml"
base_version=$(sed -nE 's/^version:[[:space:]]*([^[:space:]#]+).*$/\1/p' "$chart_file")
ref_name=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_REF_NAME}
ref_slug=$(echo "$ref_name" | sed -E 's/[^a-zA-Z0-9-]+/-/g; s/^-+//; s/-+$//')
if [ -z "$base_version" ] || [ -z "$ref_slug" ]; then
echo "Could not determine a valid chart version or Git ref slug" >&2
exit 1
fi
chart_version="$base_version-$ref_slug"
sed -i -E "s/^version:.*$/version: $chart_version/" "$chart_file"
echo "Publishing chart version $chart_version"
fi
- helm dependency update "$CHART_FOLDER"
- helm package "$CHART_FOLDER" --destination .
- helm push *.tgz "oci://$HELM_OCI_REGISTRY"

consistency:
stage: consistency
needs: []
image: python:3.12-bookworm
variables:
GIT_SUBMODULE_STRATEGY: recursive
CONSISTENCY_CHECKS_SKIP: "readme_generator_is_idempotent,compose_generator_is_idempotent"
CONSISTENCY_CHECKS_SKIP: "readme_generator_is_idempotent,compose_generator_is_idempotent,helm_generator_is_idempotent"
before_script:
- apt-get update && apt-get install -y doxygen
- python3 -m pip install -r .openads-dev-environment/scripts/requirements.txt
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# trajectory_optimization

<p align="center">
<a href="https://openads-project.github.io"><img src="https://img.shields.io/badge/OpenADS-f5ff01"/></a>
<a href="https://openads-project.github.io"><img src="https://img.shields.io/badge/OpenADS-45ccc6"/></a>
<a href="https://www.ros.org"><img src="https://img.shields.io/badge/ROS 2-jazzy-22314e"/></a>
<a href="https://github.com/openads-project/trajectory_optimization/releases/latest"><img src="https://img.shields.io/github/v/release/openads-project/trajectory_optimization"/></a>
<a href="https://github.com/openads-project/trajectory_optimization/blob/main/LICENSE"><img src="https://img.shields.io/github/license/openads-project/trajectory_optimization"/></a>
<br>
<a href="https://github.com/openads-project/trajectory_optimization/actions/workflows/docker-ros.yml"><img src="https://github.com/openads-project/trajectory_optimization/actions/workflows/docker-ros.yml/badge.svg"/></a>
<a href="https://github.com/openads-project/trajectory_optimization/actions/workflows/compose-oci.yml"><img src="https://github.com/openads-project/trajectory_optimization/actions/workflows/compose-oci.yml/badge.svg"/></a>
<a href="https://github.com/openads-project/trajectory_optimization/actions/workflows/helm-oci.yml"><img src="https://github.com/openads-project/trajectory_optimization/actions/workflows/helm-oci.yml/badge.svg"/></a>
<a href="https://openads-project.github.io/trajectory_optimization"><img src="https://github.com/openads-project/trajectory_optimization/actions/workflows/docs.yml/badge.svg"/></a>
<a href="https://github.com/openads-project/trajectory_optimization/actions/workflows/consistency.yml"><img src="https://github.com/openads-project/trajectory_optimization/actions/workflows/consistency.yml/badge.svg"/></a>
</p>
Expand Down
9 changes: 9 additions & 0 deletions deployment/helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v2
name: trajectory-optimization
version: 1.4.0
appVersion: 1.4.0
description: ROS 2 Trajectory Optimization for Automated Driving based on an Optimal Control Problem (OCP).
dependencies:
- repository: oci://ghcr.io/openads-project/openads-helm
name: openadservice
version: 1.0.0
45 changes: 45 additions & 0 deletions deployment/helm/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
openadservice:
name: trajectory-optimization
image: ghcr.io/openads-project/trajectory_optimization:v1.4.0
env:
# --- name ------
NAMESPACE: /
NAME: trajectory_optimization
# --- inputs ----
EGO_DATA_TOPIC: ~/ego_data
OBJECT_LIST_TOPIC: ~/object_list
REFERENCE_TRAJECTORY_TOPIC: ~/reference_trajectory
ROUTE_TOPIC: ~/route
# --- outputs ---
TRAJECTORY_TOPIC: ~/trajectory
BOUNDARY_MARKER_TOPIC: ~/visualization/boundaries
EGO_CIRCLES_TOPIC: ~/visualization/ego_circles
OBJECT_CIRCLES_TOPIC: ~/visualization/object_circles
# --- other -----
LOG_LEVEL: info
USE_SIM_TIME: false
PARAMS: /docker-ros/ws/install/trajectory_optimization/share/trajectory_optimization/config/params.yml
ROS_TRACING: false
DRIVING_MODE: ackermann
args:
- /bin/bash
- -ic
- |
ros2 launch trajectory_optimization trajectory_optimization.launch.py \
namespace:=${NAMESPACE} \
name:=${NAME} \
log_level:=${LOG_LEVEL} \
use_sim_time:=${USE_SIM_TIME} \
params:=${PARAMS} \
ros_tracing:=${ROS_TRACING} \
driving_mode:=${DRIVING_MODE} \
ego_data_topic:=${EGO_DATA_TOPIC} \
object_list_topic:=${OBJECT_LIST_TOPIC} \
reference_trajectory_topic:=${REFERENCE_TRAJECTORY_TOPIC} \
route_topic:=${ROUTE_TOPIC} \
trajectory_topic:=${TRAJECTORY_TOPIC} \
boundary_marker_topic:=${BOUNDARY_MARKER_TOPIC} \
ego_circles_topic:=${EGO_CIRCLES_TOPIC} \
object_circles_topic:=${OBJECT_CIRCLES_TOPIC}
rosParamFileMountPath: /docker-ros/ws/install/trajectory_optimization/share/trajectory_optimization/config/params.yml
rosParamFileData: null
Loading