Feature/arm_build_test #1553
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: BuildAndRun | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: 0 0 * * * | |
pull_request: | |
paths: | |
- '**' | |
- '!docs/**' | |
- '!README.md' | |
- '!.github/**' | |
- '.github/workflows/BuildAndRun.yaml' | |
- '!mkdocs.yml' | |
- '!pyproject.toml' | |
- '!poetry.lock' | |
push: | |
branches: | |
- master | |
jobs: | |
job1: | |
name: BuildAndRun | |
runs-on: ${{ matrix.runs_on }} | |
timeout-minutes: 180 | |
container: ros:${{ matrix.rosdistro }} | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
strategy: | |
fail-fast: false | |
matrix: | |
rosdistro: [humble] | |
runs_on: [ubuntu-22.04, macos-14] # macos-14 is added for arm support. See also https://x.com/github/status/1752458943245189120?s=20 | |
steps: | |
- name: suppress warnings | |
run: | | |
git config --global --add safe.directory '*' | |
- uses: actions/checkout@v2-beta | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- run: git clone https://github.com/RobotecAI/scenario_simulator_v2_scenarios.git | |
- name: Search packages in this repository | |
id: list_packages | |
run: | | |
echo package_list=$(colcon list --names-only | tr '\n' ' ') >> $GITHUB_OUTPUT | |
- name: Show target packages | |
run: | | |
echo "Target packages: ${{ steps.list_packages.outputs.package_list }}" | |
- name: Copy repository | |
run: | | |
mkdir -p ~/ros2_ws/src/scenario_simulator_v2 | |
cp -rf . ~/ros2_ws/src/scenario_simulator_v2 | |
shell: bash | |
- name: Install dependencies | |
run: | | |
cd ~/ros2_ws | |
vcs import src < src/scenario_simulator_v2/dependency_${{ matrix.rosdistro }}.repos | |
- name: Resolve rosdep | |
run: | | |
cd ~/ros2_ws | |
apt update | |
apt install -y python3-pip | |
rosdep update --include-eol-distros | |
rosdep install -iy --from-paths src --rosdistro ${{ matrix.rosdistro }} | |
shell: bash | |
- name: Build packages | |
run: | | |
source /opt/ros/${{ matrix.rosdistro }}/setup.bash | |
cd ~/ros2_ws | |
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_CPP_MOCK_SCENARIOS=ON --packages-up-to ${{ steps.list_packages.outputs.package_list }} | |
shell: bash | |
- name: Colcon test | |
run: | | |
source /opt/ros/${{ matrix.rosdistro }}/setup.bash | |
cd ~/ros2_ws | |
source install/local_setup.bash | |
colcon test --packages-select ${{ steps.list_packages.outputs.package_list }} | |
shell: bash | |
- name: Show test result | |
if: always() | |
run: | | |
source /opt/ros/${{ matrix.rosdistro }}/setup.bash | |
cd ~/ros2_ws | |
source install/local_setup.bash | |
colcon test-result --verbose | |
shell: bash | |
- name: Scenario test | |
run: | | |
source ~/ros2_ws/install/setup.bash | |
source ~/ros2_ws/install/local_setup.bash | |
ros2 launch scenario_test_runner scenario_test_runner.launch.py workflow:='$(find-pkg-share scenario_test_runner)/config/workflow_example.yaml' global_frame_rate:=20 | |
ros2 run scenario_test_runner result_checker.py /tmp/scenario_test_runner/result.junit.xml | |
shell: bash | |
- name: Basic test | |
run: | | |
source ~/ros2_ws/install/setup.bash | |
source ~/ros2_ws/install/local_setup.bash | |
ros2 launch scenario_test_runner scenario_test_runner.launch.py workflow:='$(find-pkg-share scenario_simulator_v2_scenarios)/workflow/basic.yaml' | |
ros2 run scenario_test_runner result_checker.py /tmp/scenario_test_runner/result.junit.xml | |
shell: bash |