Skip to content

feat/ros gateway

feat/ros gateway #481

Workflow file for this run

name: CI
on:
push:
branches: ["main"]
pull_request:
jobs:
build-firmware:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Cache python venv
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('requirements.txt') }}
- name: Cache meson subprojects
uses: actions/cache@v4
with:
path: subprojects
key: meson-${{ runner.os }}-${{ hashFiles('subprojects/*.wrap') }}-${{ hashFiles('subprojects/packagefiles/**') }}
# Will run pip
- name: Bootstrap build
run: ./scripts/bootstrap.sh
- name: Activate python venv
run: |
source .venv/bin/activate
echo "$VIRTUAL_ENV/bin" >> $GITHUB_PATH
echo "VIRTUAL_ENV=$VIRTUAL_ENV" >> $GITHUB_ENV
- name: Build source
run: meson compile -C build
- name: Run tests
run: meson test -v -C build
- name: Check source
run: meson compile -C build check
- name: Build documentation
run: meson compile -C build docs
build-gateway:
strategy:
matrix:
ros_distro: [humble, jazzy]
runs-on: ubuntu-24.04
env:
package: ghcr.io/${{ github.repository }}/ros-gateway-${{ matrix.ros_distro }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build docker image
uses: docker/build-push-action@v6
with:
context: .
file: ros-gateway/Dockerfile
platforms: linux/amd64,linux/arm64
outputs: type=cacheonly
build-args: ROS_VERSION=${{ matrix.ros_distro }}
tags: ${{ env.package }}:latest
cache-from: type=registry,ref=${{ env.package }}:buildcache
cache-to: type=registry,ref=${{ env.package }}:buildcache,mode=max