Skip to content

Cleanup Code Coverage and Unit Tests #1058

Cleanup Code Coverage and Unit Tests

Cleanup Code Coverage and Unit Tests #1058

Workflow file for this run

name: Unit and Integration Tests
on:
pull_request:
branches: ["development"]
push:
branches: ["development"]
workflow_dispatch:
jobs:
build-and-test-x64:
strategy:
fail-fast: false
matrix:
type: [Unit, Integration]
concurrency:
group: "tests-x64-${{ matrix.type }}"
cancel-in-progress: false
runs-on: [self-hosted, linux, X64]
steps:
- name: Setup Action Environment
if: always()
run: |
cd /opt
if [ ! -d "Autonomy_Software" ]; then git clone --recurse-submodules -j8 https://github.com/MissouriMRDT/Autonomy_Software.git; fi
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Fix Dubious Ownership
run: git config --global --add safe.directory /opt/Autonomy_Software
- name: Extract branch name
shell: bash
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
id: extract_branch
- name: Update Branch
run: |
cd /opt/Autonomy_Software/
git fetch --force --recurse-submodules
branch=${{ steps.extract_branch.outputs.branch }}
echo $branch
git reset --hard origin/$branch
git checkout $branch
git pull --ff-only
git submodule update --force --recursive --init
git config --global --add safe.directory /opt/Autonomy_Software/external
- name: Build and Run Tests if they exist
run: |
DIRECTORY="/opt/Autonomy_Software/tests/${{ matrix.type }}/src"
# Check if the directory exists
if [ -d "$DIRECTORY" ]; then
echo "The directory $DIRECTORY exists."
# Build Tests
cd /opt/Autonomy_Software/
if [ -d "build" ]; then rm -Rf build; fi
mkdir build
cd build
cmake -DBUILD_TESTS_MODE=ON ..
make
# Check if the built test file exists
TEST_BINARY="/opt/Autonomy_Software/build/Autonomy_Software_${{ matrix.type }}Tests"
if [ -f "$TEST_BINARY" ]; then
cd /opt/Autonomy_Software/build
./Autonomy_Software_${{ matrix.type }}Tests
else
echo "No ${{ matrix.type }} Tests Exist."
fi
else
echo "The directory $DIRECTORY does not exist. Skipping the rest of the GitHub Action."
exit 0
fi
- name: Cleanup Action Environment
if: always()
run: |
cd /opt
rm -rf /opt/Autonomy_Software
build-and-test-arm64:
strategy:
fail-fast: false
matrix:
type: [Unit, Integration]
concurrency:
group: "tests-arm64-${{ matrix.type }}"
cancel-in-progress: false
runs-on: [self-hosted, linux, ARM64]
steps:
- name: Setup Action Environment
if: always()
run: |
cd /opt
if [ ! -d "Autonomy_Software" ]; then git clone --recurse-submodules -j8 https://github.com/MissouriMRDT/Autonomy_Software.git; fi
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Fix Dubious Ownership
run: git config --global --add safe.directory /opt/Autonomy_Software
- name: Extract branch name
shell: bash
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
id: extract_branch
- name: Update Branch
run: |
cd /opt/Autonomy_Software/
git fetch --force --recurse-submodules
branch=${{ steps.extract_branch.outputs.branch }}
echo $branch
git reset --hard origin/$branch
git checkout $branch
git pull --ff-only
git submodule update --force --recursive --init
git config --global --add safe.directory /opt/Autonomy_Software/external
- name: Build and Run Tests if they exist
run: |
DIRECTORY="/opt/Autonomy_Software/tests/${{ matrix.type }}/src"
# Check if the directory exists
if [ -d "$DIRECTORY" ]; then
echo "The directory $DIRECTORY exists."
# Build Tests
cd /opt/Autonomy_Software/
if [ -d "build" ]; then rm -Rf build; fi
mkdir build
cd build
cmake -DBUILD_TESTS_MODE=ON ..
make
# Check if the built test file exists
TEST_BINARY="/opt/Autonomy_Software/build/Autonomy_Software_${{ matrix.type }}Tests"
if [ -f "$TEST_BINARY" ]; then
cd /opt/Autonomy_Software/build
./Autonomy_Software_${{ matrix.type }}Tests
else
echo "No ${{ matrix.type }} Tests Exist."
fi
else
echo "The directory $DIRECTORY does not exist. Skipping the rest of the GitHub Action."
exit 0
fi
- name: Cleanup Action Environment
if: always()
run: |
cd /opt
rm -rf /opt/Autonomy_Software