feat/ros gateway #481
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |