Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 6 additions & 1 deletion .github/workflows/format-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@ name: Format Check

# Run on all push and pull requests
on:
push:
branches:
- dev
- main
pull_request:
types:
- opened
- reopened
- synchronize
workflow_dispatch:

jobs:
format-check:
name: Run format check
uses: nasa/cFS/.github/workflows/format-check.yml@main
uses: arielswalker/cFS/.github/workflows/format-check.yml@fix-cfs/workflows#177
52 changes: 13 additions & 39 deletions .github/workflows/standalone-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,53 +22,34 @@ env:
allowed_ncov_functions: 0

jobs:

build-and-test:
name: Build and Execute Tests
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
build-type: [Debug, Release]
base-os: [ubuntu-22.04]

runs-on: ${{ matrix.base-os }}

steps:

- name: Checkout OSAL
uses: actions/checkout@v4
with:
path: source

- name: Install Coverage Analysis Tools
if: ${{ matrix.build-type == 'Debug' }}
run: sudo apt-get update && sudo apt-get install -y lcov xsltproc && echo "run_lcov=TRUE" >> $GITHUB_ENV

- name: Set up debug environment
if: ${{ matrix.build-type == 'Debug' }}
run: |
echo "is_debug=TRUE" >> $GITHUB_ENV
echo "is_release=FALSE" >> $GITHUB_ENV
echo "build_tgt=all" >> $GITHUB_ENV
echo "DESTDIR=${{ github.workspace }}/staging-debug" >> $GITHUB_ENV

- name: Set up release environment
if: ${{ matrix.build-type == 'Release' }}
run: |
echo "is_debug=FALSE" >> $GITHUB_ENV
echo "is_release=TRUE" >> $GITHUB_ENV
echo "build_tgt=install" >> $GITHUB_ENV
echo "DESTDIR=${{ github.workspace }}/staging-release" >> $GITHUB_ENV

- name: Set up build
run: cmake
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
-DENABLE_UNIT_TESTS=${{ env.is_debug }}
-DOSAL_OMIT_DEPRECATED=${{ env.is_debug }}
-DOSAL_VALIDATE_API=${{ env.is_release }}
-DOSAL_INSTALL_LIBRARIES=${{ env.is_release }}
-DOSAL_CONFIG_DEBUG_PERMISSIVE_MODE=${{ env.is_debug }}
-DCMAKE_BUILD_TYPE=Debug
-DENABLE_UNIT_TESTS=TRUE
-DOSAL_OMIT_DEPRECATED=FALSE
-DOSAL_VALIDATE_API=FALSE
-DOSAL_INSTALL_LIBRARIES=FALSE
-DOSAL_CONFIG_DEBUG_PERMISSIVE_MODE=TRUE
-DOSAL_SYSTEM_BSPTYPE=generic-linux
-DCMAKE_PREFIX_PATH=/usr/lib/cmake
-DCMAKE_INSTALL_PREFIX=/usr
Expand All @@ -79,57 +60,50 @@ jobs:
working-directory: build
run: make ${{ env.build_tgt }} -j2

- name: Validate API
if: ${{ matrix.build-type == 'Release' }}
working-directory: build
run: make osal_apicheck

- name: Execute Tests
if: ${{ matrix.build-type == 'Debug' }}
working-directory: build
run: ctest --output-on-failure -j4 2>&1 | tee ../ctest.log

- name: Check Coverage
id: stats
if: ${{ env.run_lcov == 'TRUE' }}
uses: ./source/.github/actions/check-coverage
with:
binary-dir: build

- name: Enforce coverage function minimum
if: ${{ env.run_lcov == 'TRUE' && always() && steps.stats.outputs.ncov_functions > env.allowed_ncov_functions }}
if: ${{ always() && steps.stats.outputs.ncov_functions > env.allowed_ncov_functions }}
run: |
echo "::error::Too many uncovered functions (${{ steps.stats.outputs.ncov_functions }})"
/bin/false

- name: Enforce coverage line minimum
if: ${{ env.run_lcov == 'TRUE' && always() && steps.stats.outputs.ncov_lines > env.allowed_ncov_lines }}
if: ${{ always() && steps.stats.outputs.ncov_lines > env.allowed_ncov_lines }}
run: |
echo "::error::Too many uncovered lines (${{ steps.stats.outputs.ncov_lines }})"
/bin/false

- name: Enforce coverage branch minimum
if: ${{ env.run_lcov == 'TRUE' && always() && steps.stats.outputs.ncov_branches > env.allowed_ncov_branches }}
if: ${{ always() && steps.stats.outputs.ncov_branches > env.allowed_ncov_branches }}
run: |
echo "::error::Too many uncovered branches (${{ steps.stats.outputs.ncov_branches }})"
/bin/false

- name: Enforce keeping coverage function minimum up-to-date
if: ${{ env.run_lcov == 'TRUE' && always() && steps.stats.outputs.ncov_functions < env.allowed_ncov_functions }}
if: ${{ always() && steps.stats.outputs.ncov_functions < env.allowed_ncov_functions }}
run: |
echo "::error::${{ steps.stats.outputs.ncov_functions }} uncovered function${{ steps.stats.outputs.ncov_functions == 1 && '' || 's' }} reported, but ${{ env.allowed_ncov_functions }} ${{ env.allowed_ncov_functions == 1 && 'is' || 'are' }} allowed."
echo "::error::Please update the 'allowed_ncov_functions' variable to ${{ steps.stats.outputs.ncov_functions }} in order to match the new coverage level."
/bin/false

- name: Enforce keeping coverage line minimum up-to-date
if: ${{ env.run_lcov == 'TRUE' && always() && steps.stats.outputs.ncov_lines < env.allowed_ncov_lines }}
if: ${{ always() && steps.stats.outputs.ncov_lines < env.allowed_ncov_lines }}
run: |
echo "::error::${{ steps.stats.outputs.ncov_lines }} uncovered line${{ steps.stats.outputs.ncov_lines == 1 && '' || 's' }} reported, but ${{ env.allowed_ncov_lines }} ${{ env.allowed_ncov_lines == 1 && 'is' || 'are' }} allowed."
echo "::error::Please update the 'allowed_ncov_lines' variable to ${{ steps.stats.outputs.ncov_lines }} in order to match the new coverage level."
/bin/false

- name: Enforce keeping coverage branch minimum up-to-date
if: ${{ env.run_lcov == 'TRUE' && always() && steps.stats.outputs.ncov_branches < env.allowed_ncov_branches }}
if: ${{ always() && steps.stats.outputs.ncov_branches < env.allowed_ncov_branches }}
run: |
echo "::error::${{ steps.stats.outputs.ncov_branches }} uncovered branch${{ steps.stats.outputs.ncov_branches == 1 && '' || 'es' }} reported, but ${{ env.allowed_ncov_branches }} ${{ env.allowed_ncov_branches == 1 && 'is' || 'are' }} allowed."
echo "::error::Please update the 'allowed_ncov_branches' variable to ${{ steps.stats.outputs.ncov_branches }} in order to match the new coverage level."
Expand Down
Loading