Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
8877324
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
4d0452d
Update publish_jsr.yml
Mqxx Jan 30, 2026
e332654
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
972cac5
Update build_binary.yml
Mqxx Jan 30, 2026
89d7095
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
dd79599
Update build_binary.yml
Mqxx Jan 30, 2026
b5833c9
Update build_binary.yml
Mqxx Jan 30, 2026
ffc0045
fix: sudo
Mqxx Jan 30, 2026
4818535
fix: Change CMake for using prebuild
Mqxx Jan 30, 2026
f6fada6
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
4bea539
fix: env
Mqxx Jan 30, 2026
b0fedd1
fix: missing \
Mqxx Jan 30, 2026
11c79fa
fix: revert
Mqxx Jan 30, 2026
83ea45b
fix: upload test artifacts
Mqxx Jan 30, 2026
2f08872
fix: Remove build step
Mqxx Jan 30, 2026
ff7ac9c
fix: error if no files
Mqxx Jan 30, 2026
5801764
Update build_binary.yml
Mqxx Jan 30, 2026
6e00b85
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
7e7569e
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
28da40c
fix: artifacts
Mqxx Jan 30, 2026
cb2c125
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
a79183d
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
4135d28
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
cf037c6
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
86fa530
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
ac2b77b
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
b3fc9a2
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
275a404
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
3c9ebcb
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
11778d7
Update build_binary.yml
Mqxx Jan 30, 2026
66a89df
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
cb46822
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
956ae95
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
09913d5
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
0cc87d0
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
e2f2285
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
8d7a7d8
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
5002721
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
f6c49d3
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
fe86433
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
ef11778
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
60fb1d7
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
1e766e2
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
8d8bc72
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
cb59b80
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
771141c
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
8a50f3b
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
3a7a1c7
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
4a53362
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
e1d443b
Update test_unit_cpp.yml
Mqxx Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 29 additions & 8 deletions .github/workflows/build_binary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,26 @@ jobs:
- name: 'Build'
id: 'build'
run: |
cmake --build build --config Release
cmake --build build --config Release --target all

. build/env.sh
echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_OUTPUT

- name: 'Upload artifacts'
- name: 'Upload artifacts (lib)'
uses: actions/upload-artifact@v4
with:
name: libcpp_bindings_linux_x86_64
path: build/libcpp_bindings_linux.so*
if-no-files-found: error
name: libcpp_bindings_linux
path: build/libcpp_bindings_linux.so

- name: 'Upload artifacts (tests)'
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: cpp_bindings_linux_tests
path: |
build/libcpp_bindings_linux.so*
build/cpp_bindings_linux_tests

- name: 'Check tag'
id: 'check-tag'
Expand All @@ -71,14 +81,25 @@ jobs:
package_version: ${{ steps.build.outputs.PACKAGE_VERSION }}
is_valid_package_version: ${{ steps.check-tag.outputs.IS_VALID_PACKAGE_VERSION }}

trigger-publish:
name: 'Trigger Publish'
test-unit-cpp:
name: 'Run: Test Unit C++'
needs: ['build-binary']
uses: ./.github/workflows/publish_jsr.yml
uses: './.github/workflows/test_unit_cpp.yml'
with:
artifact-name: cpp_bindings_linux_tests

permissions:
contents: read
checks: write

publish-jsr:
name: 'Run: Publish JSR'
needs: ['build-binary', 'test-unit-cpp']
uses: './.github/workflows/publish_jsr.yml'
with:
publish: ${{ needs.build-binary.outputs.is_valid_package_version == 'true' }}
version: ${{ needs.build-binary.outputs.package_version }}
artifact-name: libcpp_bindings_linux_x86_64
artifact-name: libcpp_bindings_linux

permissions:
contents: read
Expand Down
52 changes: 0 additions & 52 deletions .github/workflows/cpp_tests.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/publish_jsr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ permissions:

jobs:
publish-jsr:
name: 'Publish JSR'
runs-on: ubuntu-latest

steps:
- name: 'Checkout repository'
uses: actions/checkout@v4
Expand Down
75 changes: 75 additions & 0 deletions .github/workflows/test_unit_cpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: 'Test Unit C++'
description: |
This workflow runs the unit tests.

on:
workflow_call:
inputs:
artifact-name:
required: true
type: string

jobs:
test-unit-cpp:
name: 'Test Unit C++'
runs-on: ubuntu-latest
env:
SERIAL_TEST_PORT_IN: /tmp/ttyCI_IN
SERIAL_TEST_PORT_OUT: /tmp/ttyCI_OUT
TEST_REPORT_NAME: 'test_report.xml'

steps:
- name: 'Checkout repository'
uses: actions/checkout@v4

- name: 'Download artifact'
uses: actions/download-artifact@v4
with:
name: ${{ inputs.artifact-name }}
path: 'artifacts'

- name: 'Install test dependencies'
run: |
sudo apt-get install -y socat

- name: Start virtual serial echo (socat)
run: |
socat -d -d pty,raw,echo=0,link=$SERIAL_TEST_PORT_IN,mode=666 pty,raw,echo=0,link=$SERIAL_TEST_PORT_OUT,mode=666 &
sleep 2
stdbuf -i0 -o0 cat < $SERIAL_TEST_PORT_OUT > $SERIAL_TEST_PORT_OUT &
sleep 1

- name: 'Run tests'
working-directory: 'artifacts'
env:
LD_LIBRARY_PATH: '${{ github.workspace }}/artifacts'
SERIAL_TEST_PORT: '${{ env.SERIAL_TEST_PORT_IN }}'

run: |
chmod +x ./cpp_bindings_linux_tests

./cpp_bindings_linux_tests \
--gtest_color=yes \
--gtest_output=xml:$TEST_REPORT_NAME

- name: 'Upload test report'
if: always()
uses: actions/upload-artifact@v4
with:
name: 'test_reports'
path: 'artifacts/${{ env.TEST_REPORT_NAME }}'

- name: 'Publish test report'
if: always()
uses: mikepenz/action-junit-report@v5
with:
report_paths: 'artifacts/${{ env.TEST_REPORT_NAME }}'
detailed_summary: true
group_suite: true
include_passed: true
annotate_notice: true
transformers: '[{"searchValue": "${{ github.workspace }}", "replaceValue": ""}]'
check_title_template: '{{FILE_NAME}} | {{TEST_NAME}}'



Loading