This week I'm going to learn GoogleTest for c++. Goals for day 5: use the tests in a GitHub project that depends on the GPS libraries that I created the unit tests for.
In the previous 4 posts, I created unit tests for two GPS libraries: A NMEA GPS payload parser, and a driver lib for the Teseo GPS IC. In this post, I will run those unit tests in a Raspberry Pico project that relies on these libs: https://github.com/jancumps/pico_gps_teseo.
Goal: each time you create a pull request for that project's development or main branch, an action will run. That action will check out the google unit tests, and the sources of the Pico GPS project. It will then run the test cases over that project's version of the libraries. Only if that succeeds, you can approve the pull request and merge the code.
The GitHub Action
Here is the GitHub action script. It 'll
- first commission a fresh Ubuntu Linux session
- then install dependencies (such as the required gcc toolchain and CMake versions),
- then check out both unit test sources (main branch) and the code of the project (version that's contained in the pull request).
- Next step is to build the test suite, based on those two sources
- and finally execute all unit tests.
name: run unit tests of the teseo and nmea libs
on:
workflow_dispatch:
#push:
# branches:
# - 'develop'
# - 'main'
pull_request:
types: [opened, reopened]
branches:
- 'develop'
- 'main'
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Clean workspace
run: |
echo "Cleaning up previous run"
rm -rf "${{ github.workspace }}"
mkdir -p "${{ github.workspace }}"
- name: Checkout test_gps_teseo
uses: actions/checkout@v4
with:
path: test_gps_teseo
submodules: true
repository: jancumps/test_gps_teseo
- name: Checkout pico_gps_teseo
uses: actions/checkout@v4
with:
path: test_gps_teseo/pico_gps_teseo
submodules: true
- name: Install dependencies
run: |
sudo apt-get install ninja-build
sudo apt-get install cmake
sudo add-apt-repository universe
sudo apt update
sudo apt install gcc-14
gcc --version
whereis gcc
whereis gcc-14
ls -la /usr/bin | grep g++
- name: Build Project
working-directory: ${{github.workspace}}/test_gps_teseo
shell: bash
run: |
echo ${{ github.ref }}
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-gcc-14 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-g++-14 -DCMAKE_BUILD_TYPE=Release -DPATH_TO_LIBS=pico_gps_teseo
cmake --build .
cd ..
- name: Test Project
working-directory: ${{github.workspace}}/test_gps_teseo
shell: bash
run: |
cd build
chmod +x ./test_class_module
./test_class_module
cd ..
If the unit tests fail, the action run will fail too.
Test execution
If you have rights to view action logs of the GitHub repository, you can see the log of all activities. Here's part of the test job:
Raw log:
2025-02-23T18:22:28.9220715Z Current runner version: '2.322.0'
2025-02-23T18:22:28.9246979Z ##[group]Operating System
2025-02-23T18:22:28.9247780Z Ubuntu
2025-02-23T18:22:28.9248306Z 24.04.1
2025-02-23T18:22:28.9248912Z LTS
2025-02-23T18:22:28.9249403Z ##[endgroup]
2025-02-23T18:22:28.9249985Z ##[group]Runner Image
2025-02-23T18:22:28.9250618Z Image: ubuntu-24.04
2025-02-23T18:22:28.9251143Z Version: 20250209.1.0
2025-02-23T18:22:28.9252326Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20250209.1/images/ubuntu/Ubuntu2404-Readme.md
2025-02-23T18:22:28.9253835Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20250209.1
2025-02-23T18:22:28.9254716Z ##[endgroup]
2025-02-23T18:22:28.9255245Z ##[group]Runner Image Provisioner
2025-02-23T18:22:28.9255903Z 2.0.422.1
2025-02-23T18:22:28.9256401Z ##[endgroup]
2025-02-23T18:22:28.9258644Z ##[group]GITHUB_TOKEN Permissions
2025-02-23T18:22:28.9260543Z Actions: write
2025-02-23T18:22:28.9261373Z Attestations: write
2025-02-23T18:22:28.9262157Z Checks: write
2025-02-23T18:22:28.9262721Z Contents: write
2025-02-23T18:22:28.9263283Z Deployments: write
2025-02-23T18:22:28.9263822Z Discussions: write
2025-02-23T18:22:28.9264386Z Issues: write
2025-02-23T18:22:28.9264901Z Metadata: read
2025-02-23T18:22:28.9265369Z Packages: write
2025-02-23T18:22:28.9265918Z Pages: write
2025-02-23T18:22:28.9266434Z PullRequests: write
2025-02-23T18:22:28.9266957Z RepositoryProjects: write
2025-02-23T18:22:28.9267605Z SecurityEvents: write
2025-02-23T18:22:28.9268111Z Statuses: write
2025-02-23T18:22:28.9268593Z ##[endgroup]
2025-02-23T18:22:28.9271490Z Secret source: Actions
2025-02-23T18:22:28.9272352Z Prepare workflow directory
2025-02-23T18:22:28.9659425Z Prepare all required actions
2025-02-23T18:22:28.9698134Z Getting action download info
2025-02-23T18:22:29.1848196Z ##[group]Download immutable action package 'actions/checkout@v4'
2025-02-23T18:22:29.1849095Z Version: 4.2.2
2025-02-23T18:22:29.1849965Z Digest: sha256:ccb2698953eaebd21c7bf6268a94f9c26518a7e38e27e0b83c1fe1ad049819b1
2025-02-23T18:22:29.1850987Z Source commit SHA: 11bd71901bbe5b1630ceea73d27597364c9af683
2025-02-23T18:22:29.1851594Z ##[endgroup]
2025-02-23T18:22:29.3669954Z Complete job name: test
2025-02-23T18:22:29.4374523Z ##[group]Run echo "Cleaning up previous run"
2025-02-23T18:22:29.4375224Z [36;1mecho "Cleaning up previous run"[0m
2025-02-23T18:22:29.4375896Z [36;1mrm -rf "/home/runner/work/pico_gps_teseo/pico_gps_teseo"[0m
2025-02-23T18:22:29.4376744Z [36;1mmkdir -p "/home/runner/work/pico_gps_teseo/pico_gps_teseo"[0m
2025-02-23T18:22:29.4614541Z shell: /usr/bin/bash -e {0}
2025-02-23T18:22:29.4615422Z ##[endgroup]
2025-02-23T18:22:29.4767777Z Cleaning up previous run
2025-02-23T18:22:29.4942159Z ##[group]Run actions/checkout@v4
2025-02-23T18:22:29.4942704Z with:
2025-02-23T18:22:29.4943080Z path: test_gps_teseo
2025-02-23T18:22:29.4943518Z submodules: true
2025-02-23T18:22:29.4943945Z repository: jancumps/test_gps_teseo
2025-02-23T18:22:29.4944589Z token: ***
2025-02-23T18:22:29.4944994Z ssh-strict: true
2025-02-23T18:22:29.4945387Z ssh-user: git
2025-02-23T18:22:29.4945802Z persist-credentials: true
2025-02-23T18:22:29.4946262Z clean: true
2025-02-23T18:22:29.4946667Z sparse-checkout-cone-mode: true
2025-02-23T18:22:29.4947143Z fetch-depth: 1
2025-02-23T18:22:29.4947533Z fetch-tags: false
2025-02-23T18:22:29.4947934Z show-progress: true
2025-02-23T18:22:29.4948344Z lfs: false
2025-02-23T18:22:29.4948728Z set-safe-directory: true
2025-02-23T18:22:29.4949183Z ##[endgroup]
2025-02-23T18:22:29.7510886Z Syncing repository: jancumps/test_gps_teseo
2025-02-23T18:22:29.7513339Z ##[group]Getting Git version info
2025-02-23T18:22:29.7514512Z Working directory is '/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo'
2025-02-23T18:22:29.7515630Z [command]/usr/bin/git version
2025-02-23T18:22:29.7639891Z git version 2.48.1
2025-02-23T18:22:29.7669942Z ##[endgroup]
2025-02-23T18:22:29.7685174Z Temporarily overriding HOME='/home/runner/work/_temp/2c039b20-1972-4a61-a906-5bf59d32aef9' before making global git config changes
2025-02-23T18:22:29.7687901Z Adding repository directory to the temporary git global config as a safe directory
2025-02-23T18:22:29.7692174Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo
2025-02-23T18:22:29.7728838Z ##[group]Initializing the repository
2025-02-23T18:22:29.7734731Z [command]/usr/bin/git init /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo
2025-02-23T18:22:29.8000021Z hint: Using 'master' as the name for the initial branch. This default branch name
2025-02-23T18:22:29.8001064Z hint: is subject to change. To configure the initial branch name to use in all
2025-02-23T18:22:29.8002128Z hint: of your new repositories, which will suppress this warning, call:
2025-02-23T18:22:29.8002801Z hint:
2025-02-23T18:22:29.8003285Z hint: git config --global init.defaultBranch <name>
2025-02-23T18:22:29.8003853Z hint:
2025-02-23T18:22:29.8004391Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2025-02-23T18:22:29.8005294Z hint: 'development'. The just-created branch can be renamed via this command:
2025-02-23T18:22:29.8005988Z hint:
2025-02-23T18:22:29.8006371Z hint: git branch -m <name>
2025-02-23T18:22:29.8014753Z Initialized empty Git repository in /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/.git/
2025-02-23T18:22:29.8025959Z [command]/usr/bin/git remote add origin https://github.com/jancumps/test_gps_teseo
2025-02-23T18:22:29.8063742Z ##[endgroup]
2025-02-23T18:22:29.8064854Z ##[group]Disabling automatic garbage collection
2025-02-23T18:22:29.8068667Z [command]/usr/bin/git config --local gc.auto 0
2025-02-23T18:22:29.8097938Z ##[endgroup]
2025-02-23T18:22:29.8098604Z ##[group]Setting up auth
2025-02-23T18:22:29.8104813Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-02-23T18:22:29.8135752Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-02-23T18:22:29.8516457Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-02-23T18:22:29.8551404Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-02-23T18:22:29.8779491Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2025-02-23T18:22:29.8824049Z ##[endgroup]
2025-02-23T18:22:29.8825063Z ##[group]Determining the default branch
2025-02-23T18:22:29.8827397Z Retrieving the default branch name
2025-02-23T18:22:30.1562859Z Default branch 'main'
2025-02-23T18:22:30.1564334Z ##[endgroup]
2025-02-23T18:22:30.1565595Z ##[group]Fetching the repository
2025-02-23T18:22:30.1571758Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +refs/heads/main:refs/remotes/origin/main
2025-02-23T18:22:30.7022872Z From https://github.com/jancumps/test_gps_teseo
2025-02-23T18:22:30.7023959Z * [new branch] main -> origin/main
2025-02-23T18:22:30.7052348Z ##[endgroup]
2025-02-23T18:22:30.7053165Z ##[group]Determining the checkout info
2025-02-23T18:22:30.7054327Z ##[endgroup]
2025-02-23T18:22:30.7060320Z [command]/usr/bin/git sparse-checkout disable
2025-02-23T18:22:30.7104948Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2025-02-23T18:22:30.7133004Z ##[group]Checking out the ref
2025-02-23T18:22:30.7137427Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main
2025-02-23T18:22:30.7193086Z Switched to a new branch 'main'
2025-02-23T18:22:30.7196915Z branch 'main' set up to track 'origin/main'.
2025-02-23T18:22:30.7203241Z ##[endgroup]
2025-02-23T18:22:30.7204515Z ##[group]Setting up auth for fetching submodules
2025-02-23T18:22:30.7207596Z [command]/usr/bin/git config --global http.https://github.com/.extraheader AUTHORIZATION: basic ***
2025-02-23T18:22:30.7245493Z [command]/usr/bin/git config --global --unset-all url.https://github.com/.insteadOf
2025-02-23T18:22:30.7278084Z [command]/usr/bin/git config --global --add url.https://github.com/.insteadOf git@github.com:
2025-02-23T18:22:30.7311728Z [command]/usr/bin/git config --global --add url.https://github.com/.insteadOf org-5400863@github.com:
2025-02-23T18:22:30.7343205Z ##[endgroup]
2025-02-23T18:22:30.7344576Z ##[group]Fetching submodules
2025-02-23T18:22:30.7345959Z [command]/usr/bin/git submodule sync
2025-02-23T18:22:30.7598995Z [command]/usr/bin/git -c protocol.version=2 submodule update --init --force --depth=1
2025-02-23T18:22:30.7815950Z Submodule 'source/gps_nmea_lib' (https://github.com/jancumps/gps_nmea_lib) registered for path 'source/gps_nmea_lib'
2025-02-23T18:22:30.7823353Z Submodule 'source/gps_teseo_lib' (https://github.com/jancumps/gps_teseo_lib) registered for path 'source/gps_teseo_lib'
2025-02-23T18:22:30.7850896Z Cloning into '/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/source/gps_nmea_lib'...
2025-02-23T18:22:31.2764050Z Cloning into '/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/source/gps_teseo_lib'...
2025-02-23T18:22:31.7650549Z Submodule path 'source/gps_nmea_lib': checked out '033cfe411ca3df33e3b1d271d9b4c9bd72ec37b2'
2025-02-23T18:22:31.7722785Z Submodule path 'source/gps_teseo_lib': checked out 'd24ba56ba182dce68071dbc8b710988e245ed4f6'
2025-02-23T18:22:31.7738247Z [command]/usr/bin/git submodule foreach git config --local gc.auto 0
2025-02-23T18:22:31.7974291Z Entering 'source/gps_nmea_lib'
2025-02-23T18:22:31.7998233Z Entering 'source/gps_teseo_lib'
2025-02-23T18:22:31.8029231Z ##[endgroup]
2025-02-23T18:22:31.8029723Z ##[group]Persisting credentials for submodules
2025-02-23T18:22:31.8035959Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'url\.https\:\/\/github\.com\/\.insteadOf' && git config --local --unset-all 'url.https://github.com/.insteadOf' || :"
2025-02-23T18:22:31.8254953Z Entering 'source/gps_nmea_lib'
2025-02-23T18:22:31.8298215Z Entering 'source/gps_teseo_lib'
2025-02-23T18:22:31.8353319Z [command]/usr/bin/git submodule foreach sh -c "git config --local 'http.https://github.com/.extraheader' 'AUTHORIZATION: basic ***' && git config --local --show-origin --name-only --get-regexp remote.origin.url"
2025-02-23T18:22:31.8569573Z Entering 'source/gps_nmea_lib'
2025-02-23T18:22:31.8607977Z file:/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/.git/modules/source/gps_nmea_lib/config remote.origin.url
2025-02-23T18:22:31.8613192Z Entering 'source/gps_teseo_lib'
2025-02-23T18:22:31.8650861Z file:/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/.git/modules/source/gps_teseo_lib/config remote.origin.url
2025-02-23T18:22:31.8679478Z [command]/usr/bin/git submodule foreach git config --local --add 'url.https://github.com/.insteadOf' 'git@github.com:'
2025-02-23T18:22:31.8893639Z Entering 'source/gps_nmea_lib'
2025-02-23T18:22:31.8916795Z Entering 'source/gps_teseo_lib'
2025-02-23T18:22:31.8950912Z [command]/usr/bin/git submodule foreach git config --local --add 'url.https://github.com/.insteadOf' 'org-5400863@github.com:'
2025-02-23T18:22:31.9165371Z Entering 'source/gps_nmea_lib'
2025-02-23T18:22:31.9188921Z Entering 'source/gps_teseo_lib'
2025-02-23T18:22:31.9227432Z ##[endgroup]
2025-02-23T18:22:31.9264045Z [command]/usr/bin/git log -1 --format=%H
2025-02-23T18:22:31.9287970Z e2e5c531f27850724e2d4b255a779cc993aa3f4a
2025-02-23T18:22:31.9466611Z ##[group]Run actions/checkout@v4
2025-02-23T18:22:31.9466945Z with:
2025-02-23T18:22:31.9467193Z path: test_gps_teseo/pico_gps_teseo
2025-02-23T18:22:31.9467492Z submodules: true
2025-02-23T18:22:31.9467762Z repository: jancumps/pico_gps_teseo
2025-02-23T18:22:31.9468186Z token: ***
2025-02-23T18:22:31.9468416Z ssh-strict: true
2025-02-23T18:22:31.9468650Z ssh-user: git
2025-02-23T18:22:31.9469079Z persist-credentials: true
2025-02-23T18:22:31.9469340Z clean: true
2025-02-23T18:22:31.9469585Z sparse-checkout-cone-mode: true
2025-02-23T18:22:31.9469868Z fetch-depth: 1
2025-02-23T18:22:31.9470095Z fetch-tags: false
2025-02-23T18:22:31.9470340Z show-progress: true
2025-02-23T18:22:31.9470578Z lfs: false
2025-02-23T18:22:31.9470808Z set-safe-directory: true
2025-02-23T18:22:31.9471077Z ##[endgroup]
2025-02-23T18:22:32.0391270Z Syncing repository: jancumps/pico_gps_teseo
2025-02-23T18:22:32.0398648Z ##[group]Getting Git version info
2025-02-23T18:22:32.0399833Z Working directory is '/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo'
2025-02-23T18:22:32.0442492Z [command]/usr/bin/git version
2025-02-23T18:22:32.0485611Z git version 2.48.1
2025-02-23T18:22:32.0511036Z ##[endgroup]
2025-02-23T18:22:32.0524597Z Temporarily overriding HOME='/home/runner/work/_temp/bf6c3c0c-ac12-4900-af47-daebc146816f' before making global git config changes
2025-02-23T18:22:32.0526213Z Adding repository directory to the temporary git global config as a safe directory
2025-02-23T18:22:32.0531091Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo
2025-02-23T18:22:32.0561464Z ##[group]Initializing the repository
2025-02-23T18:22:32.0567233Z [command]/usr/bin/git init /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo
2025-02-23T18:22:32.0603841Z hint: Using 'master' as the name for the initial branch. This default branch name
2025-02-23T18:22:32.0604902Z hint: is subject to change. To configure the initial branch name to use in all
2025-02-23T18:22:32.0605816Z hint: of your new repositories, which will suppress this warning, call:
2025-02-23T18:22:32.0606495Z hint:
2025-02-23T18:22:32.0606841Z hint: git config --global init.defaultBranch <name>
2025-02-23T18:22:32.0607179Z hint:
2025-02-23T18:22:32.0607545Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2025-02-23T18:22:32.0608100Z hint: 'development'. The just-created branch can be renamed via this command:
2025-02-23T18:22:32.0608491Z hint:
2025-02-23T18:22:32.0608741Z hint: git branch -m <name>
2025-02-23T18:22:32.0609361Z Initialized empty Git repository in /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/.git/
2025-02-23T18:22:32.0616082Z [command]/usr/bin/git remote add origin https://github.com/jancumps/pico_gps_teseo
2025-02-23T18:22:32.0647694Z ##[endgroup]
2025-02-23T18:22:32.0648199Z ##[group]Disabling automatic garbage collection
2025-02-23T18:22:32.0652375Z [command]/usr/bin/git config --local gc.auto 0
2025-02-23T18:22:32.0683355Z ##[endgroup]
2025-02-23T18:22:32.0684311Z ##[group]Setting up auth
2025-02-23T18:22:32.0689848Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-02-23T18:22:32.0721480Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-02-23T18:22:32.0969340Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-02-23T18:22:32.1001725Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-02-23T18:22:32.1257456Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2025-02-23T18:22:32.1295232Z ##[endgroup]
2025-02-23T18:22:32.1295928Z ##[group]Fetching the repository
2025-02-23T18:22:32.1305020Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +2479ca309986927c8ff327f8d2bb2586a76162b1:refs/remotes/pull/167/merge
2025-02-23T18:22:32.6250635Z From https://github.com/jancumps/pico_gps_teseo
2025-02-23T18:22:32.6251337Z * [new ref] 2479ca309986927c8ff327f8d2bb2586a76162b1 -> pull/167/merge
2025-02-23T18:22:32.6273512Z ##[endgroup]
2025-02-23T18:22:32.6274078Z ##[group]Determining the checkout info
2025-02-23T18:22:32.6275681Z ##[endgroup]
2025-02-23T18:22:32.6280415Z [command]/usr/bin/git sparse-checkout disable
2025-02-23T18:22:32.6318246Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2025-02-23T18:22:32.6344676Z ##[group]Checking out the ref
2025-02-23T18:22:32.6349477Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/167/merge
2025-02-23T18:22:32.6400551Z Note: switching to 'refs/remotes/pull/167/merge'.
2025-02-23T18:22:32.6401076Z
2025-02-23T18:22:32.6401608Z You are in 'detached HEAD' state. You can look around, make experimental
2025-02-23T18:22:32.6402612Z changes and commit them, and you can discard any commits you make in this
2025-02-23T18:22:32.6403378Z state without impacting any branches by switching back to a branch.
2025-02-23T18:22:32.6403832Z
2025-02-23T18:22:32.6404112Z If you want to create a new branch to retain commits you create, you may
2025-02-23T18:22:32.6404838Z do so (now or later) by using -c with the switch command. Example:
2025-02-23T18:22:32.6405235Z
2025-02-23T18:22:32.6405400Z git switch -c <new-branch-name>
2025-02-23T18:22:32.6405676Z
2025-02-23T18:22:32.6405834Z Or undo this operation with:
2025-02-23T18:22:32.6406087Z
2025-02-23T18:22:32.6406212Z git switch -
2025-02-23T18:22:32.6406436Z
2025-02-23T18:22:32.6406764Z Turn off this advice by setting config variable advice.detachedHead to false
2025-02-23T18:22:32.6407115Z
2025-02-23T18:22:32.6407437Z HEAD is now at 2479ca3 Merge 8c923c286f2e88c401ba408faac1114fb58d4e29 into d334638cc9682e4fb8cb75f8f1cecea47a845f33
2025-02-23T18:22:32.6410560Z ##[endgroup]
2025-02-23T18:22:32.6410952Z ##[group]Setting up auth for fetching submodules
2025-02-23T18:22:32.6415048Z [command]/usr/bin/git config --global http.https://github.com/.extraheader AUTHORIZATION: basic ***
2025-02-23T18:22:32.6447994Z [command]/usr/bin/git config --global --unset-all url.https://github.com/.insteadOf
2025-02-23T18:22:32.6475479Z [command]/usr/bin/git config --global --add url.https://github.com/.insteadOf git@github.com:
2025-02-23T18:22:32.6504859Z [command]/usr/bin/git config --global --add url.https://github.com/.insteadOf org-5400863@github.com:
2025-02-23T18:22:32.6529109Z ##[endgroup]
2025-02-23T18:22:32.6529620Z ##[group]Fetching submodules
2025-02-23T18:22:32.6533354Z [command]/usr/bin/git submodule sync
2025-02-23T18:22:32.6763506Z [command]/usr/bin/git -c protocol.version=2 submodule update --init --force --depth=1
2025-02-23T18:22:32.6983579Z Submodule 'gps_nmea_lib' (https://github.com/jancumps/gps_nmea_lib.git) registered for path 'gps_nmea_lib'
2025-02-23T18:22:32.6987688Z Submodule 'gps_teseo_lib' (https://github.com/jancumps/gps_teseo_lib.git) registered for path 'gps_teseo_lib'
2025-02-23T18:22:32.7014696Z Cloning into '/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/gps_nmea_lib'...
2025-02-23T18:22:33.1717359Z Cloning into '/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/gps_teseo_lib'...
2025-02-23T18:22:33.6253001Z Submodule path 'gps_nmea_lib': checked out '033cfe411ca3df33e3b1d271d9b4c9bd72ec37b2'
2025-02-23T18:22:33.6318828Z Submodule path 'gps_teseo_lib': checked out 'd24ba56ba182dce68071dbc8b710988e245ed4f6'
2025-02-23T18:22:33.6332430Z [command]/usr/bin/git submodule foreach git config --local gc.auto 0
2025-02-23T18:22:33.6549424Z Entering 'gps_nmea_lib'
2025-02-23T18:22:33.6573647Z Entering 'gps_teseo_lib'
2025-02-23T18:22:33.6605086Z ##[endgroup]
2025-02-23T18:22:33.6605861Z ##[group]Persisting credentials for submodules
2025-02-23T18:22:33.6611492Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'url\.https\:\/\/github\.com\/\.insteadOf' && git config --local --unset-all 'url.https://github.com/.insteadOf' || :"
2025-02-23T18:22:33.6824244Z Entering 'gps_nmea_lib'
2025-02-23T18:22:33.6867217Z Entering 'gps_teseo_lib'
2025-02-23T18:22:33.6922063Z [command]/usr/bin/git submodule foreach sh -c "git config --local 'http.https://github.com/.extraheader' 'AUTHORIZATION: basic ***' && git config --local --show-origin --name-only --get-regexp remote.origin.url"
2025-02-23T18:22:33.7134302Z Entering 'gps_nmea_lib'
2025-02-23T18:22:33.7172786Z file:/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/.git/modules/gps_nmea_lib/config remote.origin.url
2025-02-23T18:22:33.7177405Z Entering 'gps_teseo_lib'
2025-02-23T18:22:33.7215952Z file:/home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/.git/modules/gps_teseo_lib/config remote.origin.url
2025-02-23T18:22:33.7247608Z [command]/usr/bin/git submodule foreach git config --local --add 'url.https://github.com/.insteadOf' 'git@github.com:'
2025-02-23T18:22:33.7462050Z Entering 'gps_nmea_lib'
2025-02-23T18:22:33.7485355Z Entering 'gps_teseo_lib'
2025-02-23T18:22:33.7522039Z [command]/usr/bin/git submodule foreach git config --local --add 'url.https://github.com/.insteadOf' 'org-5400863@github.com:'
2025-02-23T18:22:33.7737245Z Entering 'gps_nmea_lib'
2025-02-23T18:22:33.7760362Z Entering 'gps_teseo_lib'
2025-02-23T18:22:33.7790234Z ##[endgroup]
2025-02-23T18:22:33.7824890Z [command]/usr/bin/git log -1 --format=%H
2025-02-23T18:22:33.7846996Z 2479ca309986927c8ff327f8d2bb2586a76162b1
2025-02-23T18:22:33.7956729Z ##[group]Run sudo apt-get install ninja-build
2025-02-23T18:22:33.7957115Z [36;1msudo apt-get install ninja-build[0m
2025-02-23T18:22:33.7957372Z [36;1m[0m
2025-02-23T18:22:33.7957557Z [36;1msudo apt-get install cmake[0m
2025-02-23T18:22:33.7957813Z [36;1msudo add-apt-repository universe[0m
2025-02-23T18:22:33.7958069Z [36;1msudo apt update[0m
2025-02-23T18:22:33.7958289Z [36;1msudo apt install gcc-14[0m
2025-02-23T18:22:33.7958524Z [36;1mgcc --version[0m
2025-02-23T18:22:33.7958724Z [36;1mwhereis gcc[0m
2025-02-23T18:22:33.7958912Z [36;1mwhereis gcc-14[0m
2025-02-23T18:22:33.7959129Z [36;1mls -la /usr/bin | grep g++[0m
2025-02-23T18:22:33.8016811Z shell: /usr/bin/bash -e {0}
2025-02-23T18:22:33.8017047Z ##[endgroup]
2025-02-23T18:22:33.9552053Z Reading package lists...
2025-02-23T18:22:34.1104810Z Building dependency tree...
2025-02-23T18:22:34.1117341Z Reading state information...
2025-02-23T18:22:34.2817201Z The following NEW packages will be installed:
2025-02-23T18:22:34.2818705Z ninja-build
2025-02-23T18:22:34.2997531Z 0 upgraded, 1 newly installed, 0 to remove and 22 not upgraded.
2025-02-23T18:22:34.2997959Z Need to get 129 kB of archives.
2025-02-23T18:22:34.2998503Z After this operation, 364 kB of additional disk space will be used.
2025-02-23T18:22:34.2999329Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
2025-02-23T18:22:34.4018511Z Get:2 http://azure.archive.ubuntu.com/ubuntu noble/universe amd64 ninja-build amd64 1.11.1-2 [129 kB]
2025-02-23T18:22:34.6570877Z Fetched 129 kB in 0s (1105 kB/s)
2025-02-23T18:22:34.6813995Z Selecting previously unselected package ninja-build.
2025-02-23T18:22:34.7165691Z (Reading database ...
2025-02-23T18:22:34.7166375Z (Reading database ... 5%
2025-02-23T18:22:34.7166907Z (Reading database ... 10%
2025-02-23T18:22:34.7167266Z (Reading database ... 15%
2025-02-23T18:22:34.7167606Z (Reading database ... 20%
2025-02-23T18:22:34.7167902Z (Reading database ... 25%
2025-02-23T18:22:34.7168144Z (Reading database ... 30%
2025-02-23T18:22:34.7168357Z (Reading database ... 35%
2025-02-23T18:22:34.7168560Z (Reading database ... 40%
2025-02-23T18:22:34.7168760Z (Reading database ... 45%
2025-02-23T18:22:34.7168954Z (Reading database ... 50%
2025-02-23T18:22:34.7424706Z (Reading database ... 55%
2025-02-23T18:22:34.7863982Z (Reading database ... 60%
2025-02-23T18:22:34.8264681Z (Reading database ... 65%
2025-02-23T18:22:34.8612886Z (Reading database ... 70%
2025-02-23T18:22:34.8971252Z (Reading database ... 75%
2025-02-23T18:22:34.9497935Z (Reading database ... 80%
2025-02-23T18:22:35.0288078Z (Reading database ... 85%
2025-02-23T18:22:35.1053919Z (Reading database ... 90%
2025-02-23T18:22:35.1730709Z (Reading database ... 95%
2025-02-23T18:22:35.1731117Z (Reading database ... 100%
2025-02-23T18:22:35.1731679Z (Reading database ... 220710 files and directories currently installed.)
2025-02-23T18:22:35.1775067Z Preparing to unpack .../ninja-build_1.11.1-2_amd64.deb ...
2025-02-23T18:22:35.1812608Z Unpacking ninja-build (1.11.1-2) ...
2025-02-23T18:22:35.2517289Z Setting up ninja-build (1.11.1-2) ...
2025-02-23T18:22:35.2558334Z Processing triggers for man-db (2.12.0-4build2) ...
2025-02-23T18:23:15.6471157Z
2025-02-23T18:23:15.6471768Z Running kernel seems to be up-to-date.
2025-02-23T18:23:15.6472329Z
2025-02-23T18:23:15.6472480Z No services need to be restarted.
2025-02-23T18:23:15.6472880Z
2025-02-23T18:23:15.6475809Z No containers need to be restarted.
2025-02-23T18:23:15.6476118Z
2025-02-23T18:23:15.6476299Z No user sessions are running outdated binaries.
2025-02-23T18:23:15.6476630Z
2025-02-23T18:23:15.6476922Z No VM guests are running outdated hypervisor (qemu) binaries on this host.
2025-02-23T18:23:16.4127341Z Reading package lists...
2025-02-23T18:23:16.5427070Z Building dependency tree...
2025-02-23T18:23:16.5434508Z Reading state information...
2025-02-23T18:23:16.6757373Z The following additional packages will be installed:
2025-02-23T18:23:16.6762781Z cmake-data libjsoncpp25 librhash0
2025-02-23T18:23:16.6768328Z Suggested packages:
2025-02-23T18:23:16.6768627Z cmake-doc cmake-format elpa-cmake-mode
2025-02-23T18:23:16.6909090Z The following NEW packages will be installed:
2025-02-23T18:23:16.6915099Z cmake cmake-data libjsoncpp25 librhash0
2025-02-23T18:23:16.7078533Z 0 upgraded, 4 newly installed, 0 to remove and 22 not upgraded.
2025-02-23T18:23:16.7079000Z Need to get 13.6 MB of archives.
2025-02-23T18:23:16.7079340Z After this operation, 49.1 MB of additional disk space will be used.
2025-02-23T18:23:16.7079734Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
2025-02-23T18:23:16.8081539Z Get:2 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 libjsoncpp25 amd64 1.9.5-6build1 [82.8 kB]
2025-02-23T18:23:17.0656761Z Get:3 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 librhash0 amd64 1.4.3-3build1 [129 kB]
2025-02-23T18:23:17.2413601Z Get:4 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 cmake-data all 3.28.3-1build7 [2155 kB]
2025-02-23T18:23:17.5046146Z Get:5 http://azure.archive.ubuntu.com/ubuntu noble/main amd64 cmake amd64 3.28.3-1build7 [11.2 MB]
2025-02-23T18:23:18.3387206Z Fetched 13.6 MB in 1s (9716 kB/s)
2025-02-23T18:23:18.3584919Z Selecting previously unselected package libjsoncpp25:amd64.
2025-02-23T18:23:18.3640039Z (Reading database ...
2025-02-23T18:23:18.3640599Z (Reading database ... 5%
2025-02-23T18:23:18.3641154Z (Reading database ... 10%
2025-02-23T18:23:18.3641469Z (Reading database ... 15%
2025-02-23T18:23:18.3641697Z (Reading database ... 20%
2025-02-23T18:23:18.3642132Z (Reading database ... 25%
2025-02-23T18:23:18.3642345Z (Reading database ... 30%
2025-02-23T18:23:18.3642555Z (Reading database ... 35%
2025-02-23T18:23:18.3642791Z (Reading database ... 40%
2025-02-23T18:23:18.3642998Z (Reading database ... 45%
2025-02-23T18:23:18.3643199Z (Reading database ... 50%
2025-02-23T18:23:18.3725667Z (Reading database ... 55%
2025-02-23T18:23:18.3745750Z (Reading database ... 60%
2025-02-23T18:23:18.3777824Z (Reading database ... 65%
2025-02-23T18:23:18.3808433Z (Reading database ... 70%
2025-02-23T18:23:18.3825589Z (Reading database ... 75%
2025-02-23T18:23:18.3858243Z (Reading database ... 80%
2025-02-23T18:23:18.4022666Z (Reading database ... 85%
2025-02-23T18:23:18.4254953Z (Reading database ... 90%
2025-02-23T18:23:18.4330580Z (Reading database ... 95%
2025-02-23T18:23:18.4330950Z (Reading database ... 100%
2025-02-23T18:23:18.4331454Z (Reading database ... 220721 files and directories currently installed.)
2025-02-23T18:23:18.4372775Z Preparing to unpack .../libjsoncpp25_1.9.5-6build1_amd64.deb ...
2025-02-23T18:23:18.4400065Z Unpacking libjsoncpp25:amd64 (1.9.5-6build1) ...
2025-02-23T18:23:18.4685690Z Selecting previously unselected package librhash0:amd64.
2025-02-23T18:23:18.4819154Z Preparing to unpack .../librhash0_1.4.3-3build1_amd64.deb ...
2025-02-23T18:23:18.4833954Z Unpacking librhash0:amd64 (1.4.3-3build1) ...
2025-02-23T18:23:18.5150318Z Selecting previously unselected package cmake-data.
2025-02-23T18:23:18.5284001Z Preparing to unpack .../cmake-data_3.28.3-1build7_all.deb ...
2025-02-23T18:23:18.5426703Z Unpacking cmake-data (3.28.3-1build7) ...
2025-02-23T18:23:19.1094015Z Selecting previously unselected package cmake.
2025-02-23T18:23:19.1239816Z Preparing to unpack .../cmake_3.28.3-1build7_amd64.deb ...
2025-02-23T18:23:19.1250846Z Unpacking cmake (3.28.3-1build7) ...
2025-02-23T18:23:19.3275865Z Setting up libjsoncpp25:amd64 (1.9.5-6build1) ...
2025-02-23T18:23:19.3307552Z Setting up librhash0:amd64 (1.4.3-3build1) ...
2025-02-23T18:23:19.3337906Z Setting up cmake-data (3.28.3-1build7) ...
2025-02-23T18:23:19.3411777Z Setting up cmake (3.28.3-1build7) ...
2025-02-23T18:23:19.3447984Z Processing triggers for man-db (2.12.0-4build2) ...
2025-02-23T18:23:23.7155372Z Processing triggers for libc-bin (2.39-0ubuntu8.4) ...
2025-02-23T18:23:24.5530616Z
2025-02-23T18:23:24.5531109Z Running kernel seems to be up-to-date.
2025-02-23T18:23:24.5531471Z
2025-02-23T18:23:24.5531575Z No services need to be restarted.
2025-02-23T18:23:24.5531766Z
2025-02-23T18:23:24.5532402Z No containers need to be restarted.
2025-02-23T18:23:24.5532621Z
2025-02-23T18:23:24.5532753Z No user sessions are running outdated binaries.
2025-02-23T18:23:24.5532971Z
2025-02-23T18:23:24.5533174Z No VM guests are running outdated hypervisor (qemu) binaries on this host.
2025-02-23T18:23:25.8018416Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
2025-02-23T18:23:25.8354025Z Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease
2025-02-23T18:23:25.8355948Z Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
2025-02-23T18:23:25.8384857Z Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
2025-02-23T18:23:25.8397537Z Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B]
2025-02-23T18:23:25.8433909Z Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
2025-02-23T18:23:25.8474476Z Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
2025-02-23T18:23:25.9929819Z Get:8 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [21.5 kB]
2025-02-23T18:23:26.0041341Z Get:9 https://packages.microsoft.com/ubuntu/24.04/prod noble/main armhf Packages [6867 B]
2025-02-23T18:23:26.0069070Z Get:10 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [13.3 kB]
2025-02-23T18:23:26.0414026Z Get:11 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [866 kB]
2025-02-23T18:23:26.0473275Z Get:12 http://azure.archive.ubuntu.com/ubuntu noble-updates/main Translation-en [196 kB]
2025-02-23T18:23:26.0499596Z Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [150 kB]
2025-02-23T18:23:26.0523250Z Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1015 kB]
2025-02-23T18:23:26.0595418Z Get:15 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [254 kB]
2025-02-23T18:23:26.0628597Z Get:16 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [363 kB]
2025-02-23T18:23:26.0662329Z Get:17 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
2025-02-23T18:23:26.0679575Z Get:18 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
2025-02-23T18:23:26.0968211Z Get:19 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [208 B]
2025-02-23T18:23:26.0984240Z Get:20 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [14.2 kB]
2025-02-23T18:23:26.1491095Z Get:21 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe Translation-en [12.1 kB]
2025-02-23T18:23:26.1492418Z Get:22 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [20.0 kB]
2025-02-23T18:23:26.1493127Z Get:23 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [216 B]
2025-02-23T18:23:26.1493839Z Get:24 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
2025-02-23T18:23:26.1516971Z Get:25 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [618 kB]
2025-02-23T18:23:26.1564695Z Get:26 http://azure.archive.ubuntu.com/ubuntu noble-security/main Translation-en [118 kB]
2025-02-23T18:23:26.1582450Z Get:27 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [9008 B]
2025-02-23T18:23:26.1597252Z Get:28 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [804 kB]
2025-02-23T18:23:26.1648650Z Get:29 http://azure.archive.ubuntu.com/ubuntu noble-security/universe Translation-en [172 kB]
2025-02-23T18:23:26.1690964Z Get:30 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [51.9 kB]
2025-02-23T18:23:26.1705310Z Get:31 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B]
2025-02-23T18:23:26.1746433Z Get:32 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [212 B]
2025-02-23T18:23:30.6080611Z Fetched 5089 kB in 1s (6711 kB/s)
2025-02-23T18:23:31.2133476Z Reading package lists...
2025-02-23T18:23:31.2224008Z Adding component(s) 'universe' to all repositories.
2025-02-23T18:23:31.2600021Z
2025-02-23T18:23:31.2600462Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
2025-02-23T18:23:31.2600797Z
2025-02-23T18:23:31.3267129Z Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
2025-02-23T18:23:31.3623280Z Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease
2025-02-23T18:23:31.3624515Z Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease
2025-02-23T18:23:31.3634185Z Hit:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease
2025-02-23T18:23:31.3635809Z Hit:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease
2025-02-23T18:23:31.3654437Z Hit:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease
2025-02-23T18:23:31.3695022Z Hit:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease
2025-02-23T18:23:32.4006995Z Reading package lists...
2025-02-23T18:23:32.5321790Z Building dependency tree...
2025-02-23T18:23:32.5328331Z Reading state information...
2025-02-23T18:23:32.5457736Z 42 packages can be upgraded. Run 'apt list --upgradable' to see them.
2025-02-23T18:23:32.5570316Z
2025-02-23T18:23:32.5570750Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
2025-02-23T18:23:32.5571252Z
2025-02-23T18:23:32.5696999Z Reading package lists...
2025-02-23T18:23:32.6983132Z Building dependency tree...
2025-02-23T18:23:32.6991189Z Reading state information...
2025-02-23T18:23:32.8432676Z gcc-14 is already the newest version (14.2.0-4ubuntu2~24.04).
2025-02-23T18:23:32.8433082Z gcc-14 set to manually installed.
2025-02-23T18:23:32.8766076Z 0 upgraded, 0 newly installed, 0 to remove and 42 not upgraded.
2025-02-23T18:23:32.9100914Z gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
2025-02-23T18:23:32.9101314Z Copyright (C) 2023 Free Software Foundation, Inc.
2025-02-23T18:23:32.9102336Z This is free software; see the source for copying conditions. There is NO
2025-02-23T18:23:32.9103150Z warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2025-02-23T18:23:32.9103643Z
2025-02-23T18:23:32.9708503Z gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/gcc /usr/share/man/man1/gcc.1.gz
2025-02-23T18:23:32.9855807Z gcc-14: /usr/bin/gcc-14 /usr/share/man/man1/gcc-14.1.gz
2025-02-23T18:23:33.0088154Z lrwxrwxrwx 1 root root 25 May 27 2024 clang++ -> /etc/alternatives/clang++
2025-02-23T18:23:33.0088992Z lrwxrwxrwx 1 root root 26 Apr 14 2024 clang++-16 -> ../lib/llvm-16/bin/clang++
2025-02-23T18:23:33.0090039Z lrwxrwxrwx 1 root root 26 Apr 14 2024 clang++-17 -> ../lib/llvm-17/bin/clang++
2025-02-23T18:23:33.0090495Z lrwxrwxrwx 1 root root 26 May 27 2024 clang++-18 -> ../lib/llvm-18/bin/clang++
2025-02-23T18:23:33.0090916Z lrwxrwxrwx 1 root root 6 Jan 31 2024 g++ -> g++-13
2025-02-23T18:23:33.0091340Z lrwxrwxrwx 1 root root 23 Apr 3 2024 g++-12 -> x86_64-linux-gnu-g++-12
2025-02-23T18:23:33.0091762Z lrwxrwxrwx 1 root root 23 Sep 4 14:44 g++-13 -> x86_64-linux-gnu-g++-13
2025-02-23T18:23:33.0092647Z lrwxrwxrwx 1 root root 23 Sep 9 13:21 g++-14 -> x86_64-linux-gnu-g++-14
2025-02-23T18:23:33.0093409Z lrwxrwxrwx 1 root root 23 Jan 31 2024 x86_64-linux-gnu-g++ -> x86_64-linux-gnu-g++-13
2025-02-23T18:23:33.0093984Z -rwxr-xr-x 1 root root 1396008 Apr 3 2024 x86_64-linux-gnu-g++-12
2025-02-23T18:23:33.0094665Z -rwxr-xr-x 1 root root 1027128 Sep 4 14:44 x86_64-linux-gnu-g++-13
2025-02-23T18:23:33.0095041Z -rwxr-xr-x 1 root root 1186944 Sep 9 13:21 x86_64-linux-gnu-g++-14
2025-02-23T18:23:33.0123581Z ##[group]Run echo refs/pull/167/merge
2025-02-23T18:23:33.0123906Z [36;1mecho refs/pull/167/merge[0m
2025-02-23T18:23:33.0124145Z [36;1mmkdir build[0m
2025-02-23T18:23:33.0124339Z [36;1mcd build[0m
2025-02-23T18:23:33.0125178Z [36;1mcmake .. -G "Ninja" -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-gcc-14 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-g++-14 -DCMAKE_BUILD_TYPE=Release -DPATH_TO_LIBS=pico_gps_teseo[0m
2025-02-23T18:23:33.0126054Z [36;1mcmake --build .[0m
2025-02-23T18:23:33.0126258Z [36;1mcd ..[0m
2025-02-23T18:23:33.0184999Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2025-02-23T18:23:33.0185326Z ##[endgroup]
2025-02-23T18:23:33.0257254Z refs/pull/167/merge
2025-02-23T18:23:35.0330293Z -- The C compiler identification is GNU 14.2.0
2025-02-23T18:23:36.4251756Z -- The CXX compiler identification is GNU 14.2.0
2025-02-23T18:23:36.4457384Z -- The ASM compiler identification is GNU
2025-02-23T18:23:36.4475628Z -- Found assembler: /usr/bin/x86_64-linux-gnu-gcc-14
2025-02-23T18:23:36.5315421Z -- Detecting C compiler ABI info
2025-02-23T18:23:36.7989221Z -- Detecting C compiler ABI info - done
2025-02-23T18:23:36.8154433Z -- Check for working C compiler: /usr/bin/x86_64-linux-gnu-gcc-14 - skipped
2025-02-23T18:23:36.8206670Z -- Detecting C compile features
2025-02-23T18:23:36.8251360Z -- Detecting C compile features - done
2025-02-23T18:23:36.8521008Z -- Detecting CXX compiler ABI info
2025-02-23T18:23:37.0441747Z -- Detecting CXX compiler ABI info - done
2025-02-23T18:23:37.0611498Z -- Check for working CXX compiler: /usr/bin/x86_64-linux-gnu-g++-14 - skipped
2025-02-23T18:23:37.0615801Z -- Detecting CXX compile features
2025-02-23T18:23:37.0623833Z -- Detecting CXX compile features - done
2025-02-23T18:23:37.1012985Z library source path=pico_gps_teseo
2025-02-23T18:23:37.9806581Z CMake Deprecation Warning at build/_deps/googletest-src/CMakeLists.txt:4 (cmake_minimum_required):
2025-02-23T18:23:37.9807333Z Compatibility with CMake < 3.10 will be removed from a future version of
2025-02-23T18:23:37.9807697Z CMake.
2025-02-23T18:23:37.9807806Z
2025-02-23T18:23:37.9808122Z Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
2025-02-23T18:23:37.9808611Z to tell CMake that the project requires at least <min> but has been updated
2025-02-23T18:23:37.9809023Z to work with policies introduced by <max> or earlier.
2025-02-23T18:23:37.9809238Z
2025-02-23T18:23:37.9809242Z
2025-02-23T18:23:37.9924408Z CMake Deprecation Warning at build/_deps/googletest-src/googlemock/CMakeLists.txt:39 (cmake_minimum_required):
2025-02-23T18:23:37.9925057Z Compatibility with CMake < 3.10 will be removed from a future version of
2025-02-23T18:23:37.9925426Z CMake.
2025-02-23T18:23:37.9925524Z
2025-02-23T18:23:37.9925721Z Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
2025-02-23T18:23:37.9926414Z to tell CMake that the project requires at least <min> but has been updated
2025-02-23T18:23:37.9926823Z to work with policies introduced by <max> or earlier.
2025-02-23T18:23:37.9927033Z
2025-02-23T18:23:37.9927043Z
2025-02-23T18:23:37.9933339Z CMake Deprecation Warning at build/_deps/googletest-src/googletest/CMakeLists.txt:49 (cmake_minimum_required):
2025-02-23T18:23:37.9934148Z Compatibility with CMake < 3.10 will be removed from a future version of
2025-02-23T18:23:37.9934498Z CMake.
2025-02-23T18:23:37.9934593Z
2025-02-23T18:23:37.9934777Z Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
2025-02-23T18:23:37.9935239Z to tell CMake that the project requires at least <min> but has been updated
2025-02-23T18:23:37.9935638Z to work with policies introduced by <max> or earlier.
2025-02-23T18:23:37.9935859Z
2025-02-23T18:23:37.9935863Z
2025-02-23T18:23:38.1883726Z -- Found Python: /usr/bin/python3.12 (found version "3.12.3") found components: Interpreter
2025-02-23T18:23:38.2080922Z -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
2025-02-23T18:23:38.4971037Z -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
2025-02-23T18:23:38.4980923Z -- Found Threads: TRUE
2025-02-23T18:23:38.5533574Z -- Configuring done (5.2s)
2025-02-23T18:23:38.5742112Z -- Generating done (0.0s)
2025-02-23T18:23:38.5747429Z -- Build files have been written to: /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/build
2025-02-23T18:23:39.0799861Z [1/24] Scanning /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/gps_teseo_lib/callbackmanager/callbackmanager.cpp for CXX dependencies
2025-02-23T18:23:39.0824063Z [2/24] Scanning /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/gps_teseo_lib/teseo/teseo_iface.cpp for CXX dependencies
2025-02-23T18:23:39.0900366Z [3/24] Scanning /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/gps_teseo_lib/teseo/teseo.cpp for CXX dependencies
2025-02-23T18:23:39.2852569Z [4/24] Scanning /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/gps_nmea_lib/nmea/nmea_iface.cpp for CXX dependencies
2025-02-23T18:23:39.2878848Z [5/24] Scanning /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo/gps_nmea_lib/nmea/nmea.cpp for CXX dependencies
2025-02-23T18:23:39.5523453Z [6/24] Scanning /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/test/gps_teseo_lib/test_gps_teseo_lib.cpp for CXX dependencies
2025-02-23T18:23:39.5596466Z [7/24] Scanning /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/test/gps_nmea_lib/test_gps_nmea_lib.cpp for CXX dependencies
2025-02-23T18:23:39.5643617Z [8/24] Generating CXX dyndep file CMakeFiles/test_class_module.dir/CXX.dd
2025-02-23T18:23:40.8238654Z [9/24] Building CXX object CMakeFiles/test_class_module.dir/pico_gps_teseo/gps_teseo_lib/callbackmanager/callbackmanager.cpp.o
2025-02-23T18:23:42.0081544Z [10/24] Building CXX object CMakeFiles/test_class_module.dir/pico_gps_teseo/gps_teseo_lib/teseo/teseo_iface.cpp.o
2025-02-23T18:23:42.4294169Z [11/24] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
2025-02-23T18:23:43.0440964Z [12/24] Building CXX object _deps/googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o
2025-02-23T18:23:43.1797877Z [13/24] Building CXX object CMakeFiles/test_class_module.dir/pico_gps_teseo/gps_nmea_lib/nmea/nmea_iface.cpp.o
2025-02-23T18:23:43.9770387Z [14/24] Building CXX object CMakeFiles/test_class_module.dir/pico_gps_teseo/gps_teseo_lib/teseo/teseo.cpp.o
2025-02-23T18:23:45.6815111Z [15/24] Building CXX object CMakeFiles/test_class_module.dir/test/gps_teseo_lib/test_gps_teseo_lib.cpp.o
2025-02-23T18:23:46.5507169Z [16/24] Building CXX object CMakeFiles/test_class_module.dir/pico_gps_teseo/gps_nmea_lib/nmea/nmea.cpp.o
2025-02-23T18:23:47.2620634Z [17/24] Building CXX object _deps/googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
2025-02-23T18:23:48.5228972Z [18/24] Building CXX object CMakeFiles/test_class_module.dir/test/gps_nmea_lib/test_gps_nmea_lib.cpp.o
2025-02-23T18:23:52.6378075Z [19/24] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
2025-02-23T18:23:53.2247085Z [20/24] Linking CXX static library lib/libgtest.a
2025-02-23T18:23:53.3026525Z [21/24] Linking CXX static library lib/libgtest_main.a
2025-02-23T18:23:53.3042865Z [22/24] Linking CXX static library lib/libgmock.a
2025-02-23T18:23:53.3818693Z [23/24] Linking CXX static library lib/libgmock_main.a
2025-02-23T18:23:53.4549613Z [24/24] Linking CXX executable test_class_module
2025-02-23T18:23:53.4589695Z ##[group]Run cd build
2025-02-23T18:23:53.4589957Z [36;1mcd build[0m
2025-02-23T18:23:53.4590165Z [36;1mchmod +x ./test_class_module[0m
2025-02-23T18:23:53.4590415Z [36;1m./test_class_module[0m
2025-02-23T18:23:53.4590629Z [36;1mcd ..[0m
2025-02-23T18:23:53.4646561Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2025-02-23T18:23:53.4647084Z ##[endgroup]
2025-02-23T18:23:53.4742656Z Running main() from /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/build/_deps/googletest-src/googletest/src/gtest_main.cc
2025-02-23T18:23:53.4743629Z [==========] Running 27 tests from 6 test suites.
2025-02-23T18:23:53.4744067Z [----------] Global test environment set-up.
2025-02-23T18:23:53.4744325Z [----------] 6 tests from gllTest
2025-02-23T18:23:53.4744558Z [ RUN ] gllTest.parse
2025-02-23T18:23:53.4744814Z [ OK ] gllTest.parse (0 ms)
2025-02-23T18:23:53.4745053Z [ RUN ] gllTest.source
2025-02-23T18:23:53.4745320Z [ OK ] gllTest.source (0 ms)
2025-02-23T18:23:53.4745727Z [ RUN ] gllTest.lat
2025-02-23T18:23:53.4746084Z [ OK ] gllTest.lat (0 ms)
2025-02-23T18:23:53.4746450Z [ RUN ] gllTest.lon
2025-02-23T18:23:53.4746783Z [ OK ] gllTest.lon (0 ms)
2025-02-23T18:23:53.4747133Z [ RUN ] gllTest.time
2025-02-23T18:23:53.4747474Z [ OK ] gllTest.time (0 ms)
2025-02-23T18:23:53.4747849Z [ RUN ] gllTest.valid
2025-02-23T18:23:53.4748213Z [ OK ] gllTest.valid (0 ms)
2025-02-23T18:23:53.4748652Z [----------] 6 tests from gllTest (0 ms total)
2025-02-23T18:23:53.4748863Z
2025-02-23T18:23:53.4749009Z [----------] 9 tests from ggaTest
2025-02-23T18:23:53.4749387Z [ RUN ] ggaTest.parse
2025-02-23T18:23:53.4749741Z [ OK ] ggaTest.parse (0 ms)
2025-02-23T18:23:53.4750125Z [ RUN ] ggaTest.source
2025-02-23T18:23:53.4750384Z [ OK ] ggaTest.source (0 ms)
2025-02-23T18:23:53.4750608Z [ RUN ] ggaTest.lat
2025-02-23T18:23:53.4750810Z [ OK ] ggaTest.lat (0 ms)
2025-02-23T18:23:53.4751028Z [ RUN ] ggaTest.lon
2025-02-23T18:23:53.4751218Z [ OK ] ggaTest.lon (0 ms)
2025-02-23T18:23:53.4751424Z [ RUN ] ggaTest.time
2025-02-23T18:23:53.4751628Z [ OK ] ggaTest.time (0 ms)
2025-02-23T18:23:53.4752052Z [ RUN ] ggaTest.sats
2025-02-23T18:23:53.4752333Z [ OK ] ggaTest.sats (0 ms)
2025-02-23T18:23:53.4752539Z [ RUN ] ggaTest.qual
2025-02-23T18:23:53.4752742Z [ OK ] ggaTest.qual (0 ms)
2025-02-23T18:23:53.4752946Z [ RUN ] ggaTest.alt
2025-02-23T18:23:53.4753141Z [ OK ] ggaTest.alt (0 ms)
2025-02-23T18:23:53.4753342Z [ RUN ] ggaTest.geosep
2025-02-23T18:23:53.4753552Z [ OK ] ggaTest.geosep (0 ms)
2025-02-23T18:23:53.4753792Z [----------] 9 tests from ggaTest (0 ms total)
2025-02-23T18:23:53.4753974Z
2025-02-23T18:23:53.4754052Z [----------] 1 test from teseoTest
2025-02-23T18:23:53.4754298Z [ RUN ] teseoTest.parse_multiline_reply
2025-02-23T18:23:53.4754596Z [ OK ] teseoTest.parse_multiline_reply (0 ms)
2025-02-23T18:23:53.4754881Z [----------] 1 test from teseoTest (0 ms total)
2025-02-23T18:23:53.4755061Z
2025-02-23T18:23:53.4755170Z [----------] 4 tests from parsetest/gllParserTest
2025-02-23T18:23:53.4755469Z [ RUN ] parsetest/gllParserTest.gllparsetest/0
2025-02-23T18:23:53.4755783Z [ OK ] parsetest/gllParserTest.gllparsetest/0 (0 ms)
2025-02-23T18:23:53.4756094Z [ RUN ] parsetest/gllParserTest.gllparsetest/1
2025-02-23T18:23:53.4756593Z [ OK ] parsetest/gllParserTest.gllparsetest/1 (0 ms)
2025-02-23T18:23:53.4756891Z [ RUN ] parsetest/gllParserTest.gllparsetest/2
2025-02-23T18:23:53.4757181Z [ OK ] parsetest/gllParserTest.gllparsetest/2 (0 ms)
2025-02-23T18:23:53.4757475Z [ RUN ] parsetest/gllParserTest.gllparsetest/3
2025-02-23T18:23:53.4757764Z [ OK ] parsetest/gllParserTest.gllparsetest/3 (0 ms)
2025-02-23T18:23:53.4758083Z [----------] 4 tests from parsetest/gllParserTest (0 ms total)
2025-02-23T18:23:53.4758290Z
2025-02-23T18:23:53.4758587Z [----------] 3 tests from parsetest/ggaParserTest
2025-02-23T18:23:53.4758873Z [ RUN ] parsetest/ggaParserTest.ggaparsetest/0
2025-02-23T18:23:53.4759169Z [ OK ] parsetest/ggaParserTest.ggaparsetest/0 (0 ms)
2025-02-23T18:23:53.4759462Z [ RUN ] parsetest/ggaParserTest.ggaparsetest/1
2025-02-23T18:23:53.4759752Z [ OK ] parsetest/ggaParserTest.ggaparsetest/1 (0 ms)
2025-02-23T18:23:53.4760037Z [ RUN ] parsetest/ggaParserTest.ggaparsetest/2
2025-02-23T18:23:53.4760339Z [ OK ] parsetest/ggaParserTest.ggaparsetest/2 (0 ms)
2025-02-23T18:23:53.4760649Z [----------] 3 tests from parsetest/ggaParserTest (0 ms total)
2025-02-23T18:23:53.4760849Z
2025-02-23T18:23:53.4760953Z [----------] 4 tests from parsetest/gsaParserTest
2025-02-23T18:23:53.4761231Z [ RUN ] parsetest/gsaParserTest.gsaparsetest/0
2025-02-23T18:23:53.4761529Z [ OK ] parsetest/gsaParserTest.gsaparsetest/0 (0 ms)
2025-02-23T18:23:53.4762118Z [ RUN ] parsetest/gsaParserTest.gsaparsetest/1
2025-02-23T18:23:53.4762459Z [ OK ] parsetest/gsaParserTest.gsaparsetest/1 (0 ms)
2025-02-23T18:23:53.4762821Z [ RUN ] parsetest/gsaParserTest.gsaparsetest/2
2025-02-23T18:23:53.4763121Z [ OK ] parsetest/gsaParserTest.gsaparsetest/2 (0 ms)
2025-02-23T18:23:53.4763420Z [ RUN ] parsetest/gsaParserTest.gsaparsetest/3
2025-02-23T18:23:53.4763714Z [ OK ] parsetest/gsaParserTest.gsaparsetest/3 (0 ms)
2025-02-23T18:23:53.4764024Z [----------] 4 tests from parsetest/gsaParserTest (0 ms total)
2025-02-23T18:23:53.4764230Z
2025-02-23T18:23:53.4764330Z [----------] Global test environment tear-down
2025-02-23T18:23:53.4764605Z [==========] 27 tests from 6 test suites ran. (0 ms total)
2025-02-23T18:23:53.4764866Z [ PASSED ] 27 tests.
2025-02-23T18:23:53.4835821Z Post job cleanup.
2025-02-23T18:23:53.5759575Z [command]/usr/bin/git version
2025-02-23T18:23:53.5796227Z git version 2.48.1
2025-02-23T18:23:53.5839936Z Temporarily overriding HOME='/home/runner/work/_temp/f15bebd3-b84e-4644-8057-b070c8add181' before making global git config changes
2025-02-23T18:23:53.5841199Z Adding repository directory to the temporary git global config as a safe directory
2025-02-23T18:23:53.5853608Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo/pico_gps_teseo
2025-02-23T18:23:53.5887571Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-02-23T18:23:53.5919777Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-02-23T18:23:53.6135155Z Entering 'gps_nmea_lib'
2025-02-23T18:23:53.6178534Z Entering 'gps_teseo_lib'
2025-02-23T18:23:53.6237502Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-02-23T18:23:53.6258705Z http.https://github.com/.extraheader
2025-02-23T18:23:53.6270010Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2025-02-23T18:23:53.6299832Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-02-23T18:23:53.6512499Z Entering 'gps_nmea_lib'
2025-02-23T18:23:53.6536122Z http.https://github.com/.extraheader
2025-02-23T18:23:53.6570288Z Entering 'gps_teseo_lib'
2025-02-23T18:23:53.6596235Z http.https://github.com/.extraheader
2025-02-23T18:23:53.6775007Z Post job cleanup.
2025-02-23T18:23:53.7714337Z [command]/usr/bin/git version
2025-02-23T18:23:53.7755110Z git version 2.48.1
2025-02-23T18:23:53.7799648Z Temporarily overriding HOME='/home/runner/work/_temp/d9ecdca1-939c-4266-b6f5-8f9d95758a4d' before making global git config changes
2025-02-23T18:23:53.7800909Z Adding repository directory to the temporary git global config as a safe directory
2025-02-23T18:23:53.7814077Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/pico_gps_teseo/pico_gps_teseo/test_gps_teseo
2025-02-23T18:23:53.7850885Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-02-23T18:23:53.7885095Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-02-23T18:23:53.8123989Z Entering 'source/gps_nmea_lib'
2025-02-23T18:23:53.8169495Z Entering 'source/gps_teseo_lib'
2025-02-23T18:23:53.8229698Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-02-23T18:23:53.8252455Z http.https://github.com/.extraheader
2025-02-23T18:23:53.8264887Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2025-02-23T18:23:53.8297764Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-02-23T18:23:53.8527100Z Entering 'source/gps_nmea_lib'
2025-02-23T18:23:53.8551638Z http.https://github.com/.extraheader
2025-02-23T18:23:53.8585591Z Entering 'source/gps_teseo_lib'
2025-02-23T18:23:53.8609925Z http.https://github.com/.extraheader
2025-02-23T18:23:53.8757842Z Cleaning up orphan processes
The Badge
GitHub can create a badge for actions. They can be placed on a website, in the readme, or other places that accept markdown.
Here's an example where the badge appears on DoxyGen generated documentation pages.
Why?
Automatically run unit tests on pull requests to protected branches, allows that:
- developers can check-in their code as often as they want. even if it's broken
- they can run the unit tests on their code if they want to. Either from GitHub or from a VSCode plugin
- they can only successfully complete a pull request of their changes to the protected branches if the unit tests succeed. Failed test blocks pull requests and notifies repository followers.
- the project can publish latest pull request status using badges.
link to all posts.