-
Notifications
You must be signed in to change notification settings - Fork 60
105 lines (92 loc) · 3.23 KB
/
BuildAndRun.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
name: Build and run
on:
workflow_dispatch:
schedule:
- cron: 0 0 * * *
pull_request:
paths:
- "**"
- "!docs/**"
- "!README.md"
- "!CONTRIBUTING.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 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 '*'
- name: Setup workspace
run: mkdir -p src/scenario_simulator_v2
- uses: actions/checkout@v4
with:
fetch-depth: 0
path: src/scenario_simulator_v2
- uses: actions/checkout@v4
with:
repository: RobotecAI/scenario_simulator_v2_scenarios
path: src/scenario_simulator_v2_scenarios
- 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: Install dependencies
run: |
vcs import src < src/scenario_simulator_v2/dependency_${{ matrix.rosdistro }}.repos
- name: Resolve rosdep
run: |
apt-get update
apt-get 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
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
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
source install/local_setup.bash
colcon test-result --verbose
shell: bash
- name: Scenario test
run: |
source install/setup.bash
source install/local_setup.bash
./src/scenario_simulator_v2/.github/workflows/workflow.sh ./src/scenario_simulator_v2/test_runner/scenario_test_runner/config/workflow.txt global_frame_rate:=20
shell: bash
# - name: Basic test
# run: |
# source install/setup.bash
# source install/local_setup.bash
# ./src/scenario_simulator_v2/.github/workflows/workflow.sh ./src/scenario_simulator_v2_scenarios/workflow/basic.txt
# shell: bash