Skip to content

Commit a92ef61

Browse files
authored
Merge pull request #45 from Ddoiron-cidco/master
updated from jenkins pipeline to github pipeline
2 parents 45e902e + 8ba692b commit a92ef61

File tree

15 files changed

+290
-109
lines changed

15 files changed

+290
-109
lines changed

.github/workflows/ci.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- main
8+
pull_request:
9+
branches:
10+
- master
11+
- main
12+
workflow_dispatch:
13+
14+
jobs:
15+
linux-build-test:
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
22+
- name: Build and run tests
23+
run: make test
24+
25+
- name: Upload Linux test report
26+
uses: actions/upload-artifact@v4
27+
with:
28+
name: linux-test-report
29+
path: build/test/reports/sbet-test-linux-report.xml
30+
31+
- name: Upload Linux binaries
32+
uses: actions/upload-artifact@v4
33+
with:
34+
name: linux-binaries
35+
path: |
36+
build/bin/sbet-decoder
37+
build/bin/accuracy-decoder
38+
39+
windows-build-test:
40+
runs-on: windows-latest
41+
42+
steps:
43+
- name: Checkout
44+
uses: actions/checkout@v4
45+
46+
- name: Build and run tests
47+
shell: cmd
48+
run: |
49+
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath`) do set VS_INSTALL=%%i
50+
call "%VS_INSTALL%\Common7\Tools\VsDevCmd.bat" -arch=x64 -host_arch=x64
51+
if not exist build\bin mkdir build\bin
52+
if not exist build\test\reports mkdir build\test\reports
53+
cl /nologo /W4 /EHsc /std:c++14 /Fe:build\bin\sbet-decoder.exe src\sbet-decoder.cpp src\SbetProcessor.cpp
54+
cl /nologo /W4 /EHsc /std:c++14 /Fe:build\bin\accuracy-decoder.exe src\accuracy-decoder.cpp
55+
cl /nologo /W4 /EHsc /std:c++14 /DCATCH_CONFIG_NO_POSIX_SIGNALS /Fe:build\test\tests.exe test\CatchMain.cpp
56+
build\test\tests.exe -r junit -o build\test\reports\sbet-test-windows-report.xml
57+
58+
- name: Upload Windows test report
59+
uses: actions/upload-artifact@v4
60+
with:
61+
name: windows-test-report
62+
path: build/test/reports/sbet-test-windows-report.xml
63+
64+
- name: Upload Windows binaries
65+
uses: actions/upload-artifact@v4
66+
with:
67+
name: windows-binaries
68+
path: |
69+
build/bin/sbet-decoder.exe
70+
build/bin/accuracy-decoder.exe
71+
72+
docs:
73+
runs-on: ubuntu-latest
74+
75+
steps:
76+
- name: Checkout
77+
uses: actions/checkout@v4
78+
79+
- name: Install Doxygen
80+
run: |
81+
sudo apt-get update
82+
sudo apt-get install -y doxygen graphviz
83+
84+
- name: Generate docs
85+
run: make doc
86+
87+
- name: Upload Doxygen output
88+
uses: actions/upload-artifact@v4
89+
with:
90+
name: doxygen-output
91+
path: build/doxygen

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Changelog
2+
3+
All notable changes to this project are documented in this file.
4+
5+
## [Unreleased]
6+
7+
### Added
8+
- `CONTRIBUTING.md` with contribution workflow and quality checklist.
9+
- `doc/README.md` with SBET and accuracy output references.
10+
- `VERSION` file at repository root for the current project version.
11+
- GitHub Actions CI workflow for Linux, Windows, and documentation checks.
12+
- Additional CLI tests for usage output and missing-file behavior.
13+
14+
### Changed
15+
- Expanded `README.md` with build, test, usage, and CI documentation.
16+
- Updated test build flags for compatibility with modern Linux toolchains.
17+
18+
### Removed
19+
- Jenkins pipeline configuration (`Jenkinsfile`) in favor of GitHub Actions.

Doxyfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ PROJECT_LOGO =
5858
# entered, it will be relative to the location where doxygen was started. If
5959
# left blank the current directory will be used.
6060

61-
OUTPUT_DIRECTORY =
61+
OUTPUT_DIRECTORY = build/doxygen
6262

6363
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
6464
# directories (in 2 levels) under the output directory of each output format and
@@ -790,7 +790,7 @@ WARN_LOGFILE =
790790
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
791791
# Note: If this tag is empty the current directory is searched.
792792

793-
INPUT =
793+
INPUT = src README.md CONTRIBUTING.md CHANGELOG.md doc/README.md
794794

795795
# This tag can be used to specify the character encoding of the source files
796796
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -864,7 +864,7 @@ FILE_PATTERNS = *.c \
864864
# be searched for input files as well.
865865
# The default value is: NO.
866866

867-
RECURSIVE = NO
867+
RECURSIVE = YES
868868

869869
# The EXCLUDE tag can be used to specify files and/or directories that should be
870870
# excluded from the INPUT source files. This way you can easily exclude a
@@ -873,7 +873,7 @@ RECURSIVE = NO
873873
# Note that relative paths are relative to the directory from which doxygen is
874874
# run.
875875

876-
EXCLUDE =
876+
EXCLUDE = src/gui/build-SBET-Decoder-Desktop-Debug
877877

878878
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
879879
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -889,7 +889,7 @@ EXCLUDE_SYMLINKS = NO
889889
# Note that the wildcards are matched against the file with absolute path, so to
890890
# exclude all test directories for example use the pattern */test/*
891891

892-
EXCLUDE_PATTERNS =
892+
EXCLUDE_PATTERNS = */build-*/* *.pro.user
893893

894894
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
895895
# (namespaces, classes, functions, etc.) that should be excluded from the

Jenkinsfile

Lines changed: 0 additions & 77 deletions
This file was deleted.

Makefile

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1-
CC=g++
2-
CFLAGS=-Wall
1+
CXX ?= g++
2+
CXXFLAGS ?= -Wall -Wextra -std=c++11
3+
TEST_CPPFLAGS ?= -DCATCH_CONFIG_NO_POSIX_SIGNALS
4+
5+
.PHONY: default test clean doc deploy installation
36

47
default:
58
mkdir -p build/bin
6-
$(CC) $(CFLAGS) -o build/bin/sbet-decoder src/sbet-decoder.cpp src/SbetProcessor.cpp
7-
$(CC) $(CFLAGS) -o build/bin/accuracy-decoder src/accuracy-decoder.cpp
9+
$(CXX) $(CXXFLAGS) -o build/bin/sbet-decoder src/sbet-decoder.cpp src/SbetProcessor.cpp
10+
$(CXX) $(CXXFLAGS) -o build/bin/accuracy-decoder src/accuracy-decoder.cpp
11+
812
test: clean default
913
mkdir -p build/test/reports
10-
$(CC) $(CFLAGS) -o build/test/tests test/CatchMain.cpp
14+
$(CXX) $(CXXFLAGS) $(TEST_CPPFLAGS) -o build/test/tests test/CatchMain.cpp
1115
build/test/tests -r junit -o build/test/reports/sbet-test-linux-report.xml
16+
1217
clean:
1318
rm -rf build
1419

MakefileWindows

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11

2+
.PHONY: default test clean doc deploy
3+
24
default:
35
if not exist "build\bin" mkdir build\bin
46
call "%windows10_x64_BUILD_TOOLS_ROOT%\\VC\\Auxiliary\\Build\\vcvarsall.bat" x64 && cd build\\bin &&cl ..\\..\\src\\sbet-decoder.cpp ..\\..\\src\\SbetProcessor.cpp /EHsc /Fesbet-decoder.exe
57
call "%windows10_x64_BUILD_TOOLS_ROOT%\\VC\\Auxiliary\\Build\\vcvarsall.bat" x64 && cd build\\bin &&cl ..\\..\\src\\accuracy-decoder.cpp /EHsc /Feaccuracy-decoder.exe
68
test: clean default
79
if not exist "build\test\reports" mkdir build\test\reports
8-
call "%windows10_x64_BUILD_TOOLS_ROOT%\\VC\\Auxiliary\\Build\\vcvarsall.bat" x64 && cd build\\test &&cl ..\\..\\test\\CatchMain.cpp /EHsc /Fetests.exe
10+
call "%windows10_x64_BUILD_TOOLS_ROOT%\\VC\\Auxiliary\\Build\\vcvarsall.bat" x64 && cd build\\test &&cl ..\\..\\test\\CatchMain.cpp /EHsc /DCATCH_CONFIG_NO_POSIX_SIGNALS /Fetests.exe
911
build\test\tests.exe -r junit -o build\\test\\reports\\sbet-test-windows-x64-reports.xml
1012

1113
clean:

README.md

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,65 @@
11
# SBET-decoder
22

3-
Converts a Smoothed Best Estimated Trajectory (SBET) file to ASCII
3+
`SBET-decoder` converts binary Smoothed Best Estimated Trajectory (SBET) files
4+
and associated accuracy files into plain-text tables.
45

5-
sbet-decoder.exe input-file > output.txt
6+
The repository provides two command-line tools:
7+
- `sbet-decoder`: decodes SBET trajectory entries.
8+
- `accuracy-decoder`: decodes SBET accuracy entries.
9+
10+
Current project version is stored in `VERSION`.
11+
Versioning rules are documented in `VERSION.md`.
12+
13+
## Requirements
14+
15+
- Linux: `g++`, `make`
16+
- Optional for API docs: `doxygen`
17+
- Windows (native build): Visual Studio C++ Build Tools and `nmake`/`make`
18+
19+
## Build
20+
21+
```bash
22+
make
23+
```
24+
25+
This produces:
26+
- `build/bin/sbet-decoder`
27+
- `build/bin/accuracy-decoder`
28+
29+
## Run
30+
31+
```bash
32+
build/bin/sbet-decoder path/to/file.out > sbet.txt
33+
build/bin/accuracy-decoder path/to/file.out > accuracy.txt
34+
```
35+
36+
If no input file is provided, each binary prints usage information.
37+
38+
## Tests
39+
40+
```bash
41+
make test
42+
```
43+
44+
Test reports are written to:
45+
- `build/test/reports/sbet-test-linux-report.xml`
46+
47+
## Documentation
48+
49+
Generate Doxygen documentation:
50+
51+
```bash
52+
make doc
53+
```
54+
55+
Additional format examples are documented in `doc/README.md`.
56+
57+
## CI
58+
59+
Continuous integration is provided with GitHub Actions in
60+
`.github/workflows/ci.yml`.
61+
It uses GitHub-hosted runners only (no self-hosted runner required).
62+
The workflow validates:
63+
- Linux build and tests
64+
- Windows build and tests
65+
- Doxygen documentation generation

VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0.1.0

VERSION.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Versioning
2+
3+
Current project version: `0.1.0`
4+
5+
The canonical machine-readable version is stored in the root `VERSION` file.
6+
CI and automation scripts must read the version from `VERSION`.
7+
8+
## Push Change Log
9+
10+
Use this file to list the effective changes introduced at each push.
11+
12+
### 2026-02-19 - Version 0.1.0
13+
14+
- Added GitHub Actions CI workflow (`.github/workflows/ci.yml`) for Linux, Windows, and documentation jobs.
15+
- Removed Jenkins pipeline configuration (`Jenkinsfile`).
16+
- Expanded project documentation (`README.md`, `CONTRIBUTING.md`, `doc/README.md`).
17+
- Added version tracking files (`VERSION`, `VERSION.md`) and updated `CHANGELOG.md`.
18+
- Improved test coverage for CLI usage and missing-input behavior.
19+
- Updated build/test flags to keep test compilation compatible with modern Linux environments.
20+
21+
## Update Rule
22+
23+
For every push:
24+
1. Add a new entry in `Push Change Log` with date and version.
25+
2. List the concrete changes included in that push.
26+
3. Keep `VERSION` and the version header in this file aligned when version changes.

doc/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Data Format Notes
2+
3+
This directory contains reference material for the decoded output format.
4+
5+
## SBET Output
6+
7+
`src/SbetPrinter.hpp` prints one line per SBET entry with this header:
8+
9+
`Time Latitude Longitude Altitude SpeedX SpeedY SpeedZ Heading Pitch Roll Wander ForceX ForceY ForceZ AngularRateX AngularRateY AngularRateZ`
10+
11+
Values for latitude and longitude are converted from radians to degrees.
12+
13+
Reference image:
14+
- `doc/sbet-format.png`
15+
16+
## Accuracy Output
17+
18+
`src/AccuracyPrinter.hpp` prints one line per accuracy entry with this header:
19+
20+
`Time NorthingSD EastingSD AltitudeSD SpeedNorthSD SpeedEastSD SpeedAltitudeSD RollSd PitchSd HeadingSd`
21+
22+
Roll, pitch, and heading standard deviations are scaled by `1/60`.
23+
24+
Reference image:
25+
- `doc/accuracy-out-format.png`

0 commit comments

Comments
 (0)