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
|
name: Ubuntu-valgrind
# https://www.jeffgeerling.com/blog/2020/running-github-actions-workflow-on-schedule-and-other-events
on:
pull_request:
types: [opened, reopened, synchronize]
schedule:
- cron: '0 2 * * SUN'
# https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre#comment133398800_72408109
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
# https://github.com/orgs/community/discussions/28474#discussioncomment-3350256
check_skip_flags:
name: Check skip flags
runs-on: ubuntu-latest
outputs:
head-commit-message: ${{ steps.get_head_commit_message.outputs.headCommitMsg }}
steps:
- name: Get repo
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Print head git commit message
id: get_head_commit_message
run: echo "headCommitMsg=$(git show -s --format=%s)" >> $GITHUB_OUTPUT
build-ubuntu-valgrind:
runs-on: ubuntu-latest
needs: check_skip_flags
if: >-
${{
(!contains(needs.check_skip_flags.outputs.head-commit-message, '[SKIP-CI ALL]') &&
!contains(needs.check_skip_flags.outputs.head-commit-message, '[SKIP-CI UBUNTU-VALGRIND]')) ||
contains(needs.check_skip_flags.outputs.head-commit-message, '[ENABLE-CI UBUNTU-VALGRIND]')
}}
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Print system information
run: lscpu
- name: Print OS information
run: lsb_release -a
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y libx11-dev libdc1394-dev libv4l-dev liblapack-dev libopenblas-dev libeigen3-dev libopencv-dev nlohmann-json3-dev valgrind
- name: Clone visp-images
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
# https://remarkablemark.org/blog/2022/09/25/check-git-branch-exists-in-remote-repository/
run: |
git clone --depth 1 https://github.com/lagadic/visp-images ${HOME}/visp-images
echo "VISP_INPUT_IMAGE_PATH=$HOME/visp-images" >> $GITHUB_ENV
echo ${VISP_INPUT_IMAGE_PATH}
- name: Configure CMake
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
cat ViSP-third-party.txt
- name: Compile
working-directory: build
run: make -j$(nproc)
- name: Run unit tests with Valgrind
working-directory: build
# Increase timeout to avoid the following error
# 290/308 MemCheck #181: photometricMappingDCTVisualServoing ...............................***Timeout 1500.01 sec
run: |
TIMEOUT=2500
ctest -j$(nproc) --output-on-failure -T memcheck --timeout $TIMEOUT
tail -v -n +1 Testing/Temporary/MemoryChecker*.log
|