-
Notifications
You must be signed in to change notification settings - Fork 0
145 lines (136 loc) · 5.13 KB
/
ci.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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
---
name: MIL2 CI
# We do not trigger on the pull_request hook because it will have already been
# triggered by the push hook!
# yamllint disable-line rule:truthy
on:
[push, workflow_dispatch]
env:
# The version of caching we are using. This can be upgraded if we
# significantly change CI to the point where old caches become irrelevant.
CACHE_VERSION: 0
# Default Python version. Jazzy defaults to 3.12.
DEFAULT_PYTHON: 3.12
# Location of the pre-commit cache. This is set by pre-commit, not us!
PRE_COMMIT_CACHE: ~/.cache/pre-commit
# Cancels this run if a new one referring to the same object and same workflow
# is requested
concurrency:
group: >
${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
avoid-duplicate-ci:
name: Check if CI has already be ran
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.check_skip.outputs.should_skip }}
steps:
- id: check_skip
uses: fkirc/skip-duplicate-actions@v5
super-ci:
name: Run tests and build docs
needs: avoid-duplicate-ci
if: needs.avoid-duplicate-ci.outputs.should_skip != 'true'
runs-on:
group: mala-lab-noble
steps:
- name: Configure catkin workspace folder structure
run: |
mkdir -p $GITHUB_WORKSPACE/catkin_ws/src
sudo apt reinstall python3-pip
- name: Check out code from GitHub
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup ROS2 Jazzy
uses: ros-tooling/[email protected]
with:
required-ros-distributions: jazzy
- name: Install pip dependencies
run: |
python3 -m pip config set global.break-system-packages true
pip3 install -r requirements.txt
# We want to run a full test suite in CI - this includes the BlueView
# tests!
# - name: Install BlueView Sonar SDK
# run: |
# cd $GITHUB_WORKSPACE/catkin_ws/src/mil
# ./scripts/hw/install_bvtsdk --pass ${{ secrets.ZOBELISK_PASSWORD }}
# ls mil_common/drivers/mil_blueview_driver
# echo $PWD
- name: Install system dependencies and build
run: |
# Needed for /etc/update-manager/release-upgrades
sudo apt-get install -y ubuntu-release-upgrader-core
rm -rf build install log
export HOME=$GITHUB_WORKSPACE # Temporary fix for setup scripts
ALLOW_NONSTANDARD_DIR=1 ./scripts/install.sh
# - name: Run catkin_make
# run: |
# cd $GITHUB_WORKSPACE/catkin_ws
# source /opt/ros/noetic/setup.bash
# catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 \
# -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 \
# -j6
- name: Run colcon tests
run: |
export HOME=$GITHUB_WORKSPACE # Temporary fix for setup scripts
source /opt/ros/jazzy/setup.bash
source install/setup.bash
set +u
source scripts/setup.bash
set -u
echo $RMW_IMPLEMENTATION
colcon test --event-handlers console_cohesion+ \
--executor sequential \
--return-code-on-test-failure
# - name: Build docs
# run: |
# export HOME=$GITHUB_WORKSPACE # Temporary fix for setup scripts
# mkdir -p $HOME/.mil
# source /opt/ros/noetic/setup.bash
# source $GITHUB_WORKSPACE/catkin_ws/devel/setup.bash
# cd $GITHUB_WORKSPACE/catkin_ws/src/mil
# ./scripts/build_docs -s -d
# - name: Publish docs artifact
# uses: actions/upload-artifact@v3
# with:
# name: docs-ci-html-${{ github.sha }}
# path: ${{ github.workspace }}/.mil/docs/html
# deploy-docs:
# name: Deploy docs from master
# runs-on:
# group: mala-lab-main
# needs: super-ci
# # https://github.com/actions/runner/issues/491#issuecomment-850884422
# if: |
# always() &&
# (needs.super-ci.result == 'skipped'
# || needs.super-ci.result == 'success') &&
# github.ref == 'refs/heads/master'
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Make folders
# run: |
# mkdir -p $GITHUB_WORKSPACE/build/docs
# - name: Download artifact
# uses: actions/download-artifact@v3
# with:
# name: docs-ci-html-${{ github.sha }}
# path: ${{ github.workspace }}/build/docs
# # Publish the artifact to the GitHub Pages branch
# - name: Push docs to mil.ufl.edu
# run: |
# # Install sshpass
# sudo apt-get install sshpass
# # Upload contents of local folder to remote folder
# sshpass -p ${{ secrets.MIL_UFL_SFTP_PASS }} \
# sftp -o StrictHostKeyChecking=no \
# -P ${{ secrets.MIL_UFL_SFTP_PORT }} [email protected] << EOF
# cd htdocs/docs
# lcd ${{ github.workspace }}/build/docs
# put -r .
# exit
# EOF