Skip to content

Commit 5eda6ab

Browse files
authored
Release Build 7.0 (#264)
**Describe the contribution** Build 7.0 Release **Testing performed** Standard integration tests run **Expected behavior changes** Clean-slate implementation of Bundle Protocol (BP) version 7 **System(s) tested on** - Ubuntu 20.04.6 LTS on an AWS EC2 instance - cFS draco-rc5 (see upcoming VDD for specific commit hashes) **Additional context** Add any other context about the contribution here. **Third party code** - https://sqlite.org/copyright.html - https://github.com/laurencelundblade/QCBOR/blob/master/LICENSE - https://github.com/nasa/cFS/blob/main/LICENSE **Contributor Info - All information REQUIRED for consideration of pull request** Sara Garcia-Beech NASA GSFC Code 582/534 DTN Project [email protected]
2 parents 08d80f6 + c231e19 commit 5eda6ab

File tree

448 files changed

+44532
-33006
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

448 files changed

+44532
-33006
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
1-
name: Install TinyCBOR
2-
description: 'Builds and installs Intel TinyCBOR into the workflow filesystem'
1+
name: Install QCBOR
2+
description: 'Builds and installs QCBOR into the workflow filesystem'
33

44
inputs:
55
upstream-ref:
66
description: 'Upstream ref to check out'
7-
default: v0.6.0
7+
default: v1.5.1
88
upstream-repo:
99
description: 'Upstream repository to use'
10-
default: intel/tinycbor
10+
default: laurencelundblade/QCBOR
1111
staging-dir:
1212
description: 'Directory to stage output'
1313
required: true
1414

1515
runs:
1616
using: 'composite'
1717
steps:
18-
- name: Checkout TinyCBOR
18+
- name: Checkout QCBOR
1919
uses: actions/checkout@v3
2020
with:
2121
repository: ${{ inputs.upstream-repo }}
2222
ref: ${{ inputs.upstream-ref }}
23-
path: tinycbor-source
23+
path: qcbor-source
2424

25-
- name: Build and Install TinyCBOR
26-
working-directory: tinycbor-source
25+
- name: Build and Install QCBOR
26+
working-directory: qcbor-source
2727
shell: bash
28-
run: make all && make DESTDIR=${{ inputs.staging-dir }} install
28+
run: cmake -DBUILD_SHARED_LIBS=ON -S . -B build &&
29+
cmake --build build &&
30+
sudo make install
Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
1-
name: Static Analysis
1+
# name: Static Analysis
22

3-
# Run on pull requests and by dispatch
4-
on:
5-
workflow_dispatch:
6-
pull_request:
3+
# Run on pull requests and by dispatch. NOTE: Commented out until errors are fixed
74

8-
jobs:
9-
static-analysis:
10-
name: Run cppcheck
11-
uses: nasa/cFS/.github/workflows/static-analysis.yml@main
12-
with:
13-
strict-dir-list:
14-
-Iinc -Icache/inc -Icommon/inc -Ilib/inc -Impool/inc -Ios/inc -Iv7/inc
15-
cache/src common/src lib/src mpool/src os/src v7/src store
5+
# on:
6+
# workflow_dispatch:
7+
# pull_request:
8+
9+
# jobs:
10+
# static-analysis:
11+
# name: Run cppcheck
12+
# uses: nasa/cFS/.github/workflows/static-analysis.yml@main
13+
# with:
14+
# strict-dir-list:
15+
# -Iaa/arp/inc -Iaa/as/inc -Iaa/fwp/inc -Iaa/nc/inc -Ibpa/bi/inc -Ibpa/ct/inc
16+
# -Ibpa/ebp/inc -Ibpa/pdb/inc -Ibpa/pi/inc -Ibpa/stor/inc -Ici/cbor/inc -Ici/em/inc
17+
# -Ici/job/inc -Ici/mem/inc -Ici/pl/inc -Ici/time/inc -Icla/inc -Iinc
18+
# aa/arp/src aa/as/src aa/fwp/src aa/nc/src bpa/bi/src bpa/ct/src
19+
# bpa/ebp/src bpa/pdc/src bpa/pi/src bpa/stor/src ci/cbor/src ci/em/src
20+
# ci/job/src ci/mem/src ci/pl/src ci/time/src cla/src

.github/workflows/unit-test-functional.yml

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ defaults:
1212
env:
1313
UPSTREAM_OSAL_REPO: nasa/osal
1414
UPSTREAM_OSAL_REF: main
15-
UPSTREAM_TINYCBOR_REPO: intel/tinycbor
16-
UPSTREAM_TINYCBOR_REF: v0.6.0
15+
UPSTREAM_QCBOR_REPO: laurencelundblade/QCBOR
16+
UPSTREAM_QCBOR_REF: v1.5.1
1717

1818
jobs:
1919

@@ -35,12 +35,12 @@ jobs:
3535
path: ${{ github.workspace }}/osal-staging
3636
key: bplib-dep-${{ env.UPSTREAM_OSAL_REPO }}@${{ env.UPSTREAM_OSAL_REF }}
3737

38-
- name: Cache TinyCBOR Dependency
38+
- name: Cache QCBOR Dependency
3939
uses: actions/cache@v3
40-
id: cache-tinycbor
40+
id: cache-qcbor
4141
with:
42-
path: ${{ github.workspace }}/tinycbor-staging
43-
key: bplib-dep-${{ env.UPSTREAM_TINYCBOR_REPO }}@${{ env.UPSTREAM_TINYCBOR_REF }}
42+
path: ${{ github.workspace }}/qcbor-source
43+
key: bplib-dep-${{ env.UPSTREAM_QCBOR_REPO }}@${{ env.UPSTREAM_QCBOR_REF }}
4444

4545
- name: Checkout BPLib
4646
if: steps.cache-bplib.outputs.cache-hit != 'True'
@@ -56,13 +56,13 @@ jobs:
5656
upstream-repo: ${{ env.UPSTREAM_OSAL_REPO }}
5757
upstream-ref: ${{ env.UPSTREAM_OSAL_REF }}
5858

59-
- name: Set up TinyCBOR
60-
if: steps.cache-tinycbor.outputs.cache-hit != 'True'
61-
uses: ./source/.github/actions/setup-tinycbor
59+
- name: Set up QCBOR
60+
if: steps.cache-qcbor.outputs.cache-hit != 'True'
61+
uses: ./source/.github/actions/setup-qcbor
6262
with:
63-
staging-dir: ${{ github.workspace }}/tinycbor-staging
64-
upstream-repo: ${{ env.UPSTREAM_TINYCBOR_REPO }}
65-
upstream-ref: ${{ env.UPSTREAM_TINYCBOR_REF }}
63+
staging-dir: ${{ github.workspace }}/qcbor-source
64+
upstream-repo: ${{ env.UPSTREAM_QCBOR_REPO }}
65+
upstream-ref: ${{ env.UPSTREAM_QCBOR_REF }}
6666

6767
build-and-test:
6868
name: Build BPLib and Execute Tests
@@ -73,7 +73,7 @@ jobs:
7373
fail-fast: false
7474
matrix:
7575
buildtype: [Debug, Release]
76-
os-layer: [OSAL, POSIX]
76+
os-layer: [OSAL]
7777

7878
env:
7979
MATRIX_ID: matrix-${{ matrix.buildtype }}-${{ matrix.os-layer }}
@@ -88,15 +88,12 @@ jobs:
8888
path: ${{ github.workspace }}/source
8989
key: bplib-source-${{ github.sha }}
9090

91-
- name: Retrieve Cached TinyCBOR Dependency
92-
id: restore-tinycbor
91+
- name: Retrieve Cached QCBOR Dependency
92+
id: restore-qcbor
9393
uses: actions/cache@v3
9494
with:
95-
path: ${{ github.workspace }}/tinycbor-staging
96-
key: bplib-dep-${{ env.UPSTREAM_TINYCBOR_REPO }}@${{ env.UPSTREAM_TINYCBOR_REF }}
97-
98-
- name: Import TinyCBOR
99-
run: sudo cp -rv -t / ${{ github.workspace }}/tinycbor-staging/*
95+
path: ${{ github.workspace }}/qcbor-source
96+
key: bplib-dep-${{ env.UPSTREAM_QCBOR_REPO }}@${{ env.UPSTREAM_QCBOR_REF }}
10097

10198
- name: Retrieve Cached OSAL Dependency
10299
if: matrix.os-layer == 'OSAL'
@@ -106,16 +103,23 @@ jobs:
106103
path: ${{ github.workspace }}/osal-staging
107104
key: bplib-dep-${{ env.UPSTREAM_OSAL_REPO }}@${{ env.UPSTREAM_OSAL_REF }}
108105

109-
- name: Install Coverage Analysis Tools
106+
- name: Install Coverage Analysis Tools and SQLite3
110107
if: env.MATRIX_ID == 'matrix-Debug-OSAL'
111-
run: sudo apt-get install -y lcov xsltproc
108+
run: sudo apt-get install -y lcov xsltproc libsqlite3-dev
112109

113110
- name: Import OSAL
114111
if: matrix.os-layer == 'OSAL'
115112
run: sudo cp -rv -t / ${{ github.workspace }}/osal-staging/*
116113

117114
- name: Refresh Dynamic Linker Cache
118115
run: sudo ldconfig
116+
117+
- name: Import QCBOR
118+
run:
119+
sudo cp -rv -t / ${{ github.workspace }}/qcbor-source/* &&
120+
pushd qcbor-source &&
121+
sudo make install &&
122+
popd
119123

120124
- name: Set up BPLib Build
121125
run: cmake

.gitlab-ci.yml

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# This file is a template, and might need editing before it works on your project.
2+
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
3+
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
4+
# it uses echo commands to simulate the pipeline execution.
5+
#
6+
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
7+
# Stages run in sequential order, but jobs within stages run in parallel.
8+
#
9+
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
10+
#
11+
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
12+
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
13+
#
14+
# To contribute improvements to CI/CD templates, please follow the Development guide at:
15+
# https://docs.gitlab.com/ee/development/cicd/templates.html
16+
# This specific template is located at:
17+
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
18+
19+
.login-prebuild-steps: &login-prebuild-steps
20+
- /usr/sbin/update-ca-certificates
21+
- echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin "${CI_REGISTRY}"
22+
23+
variables:
24+
CI_JOB_INFO_LOG: ci_job_info.log
25+
CMAKE_OSAL_DEFS: "-DCMAKE_INSTALL_PREFIX=/usr/local -DOSAL_SYSTEM_BSPTYPE=generic-linux -DCMAKE_BUILD_TYPE=Release -DOSAL_OMIT_DEPRECATED=TRUE -DENABLE_UNIT_TESTS=TRUE -DOSAL_CONFIG_DEBUG_PERMISSIVE_MODE=ON"
26+
NasaOsal_DIR: osal-staging/usr/local/lib/cmake
27+
CMAKE_BPLIB_RELEASE_DEFS: "-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -DBPLIB_OS_LAYER=OSAL -DCMAKE_PREFIX_PATH=/usr/local/lib/cmake"
28+
BPLIB_RELEASE_BUILD: bplib-build-matrix-Release-OSAL/
29+
CMAKE_BPLIB_DEBUG_DEFS: "-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Debug -DBPLIB_OS_LAYER=OSAL -DCMAKE_PREFIX_PATH=/usr/local/lib/cmake"
30+
BPLIB_DEBUG_BUILD: bplib-build-matrix-Debug-OSAL/
31+
BPLIB_DOC_BUILD: bplib-build-matrix-Doc/
32+
CMAKE_BPLIB_DOC_DEFS: "-DCMAKE_BUILD_TYPE=Debug -DBPLIB_OS_LAYER=NONE"
33+
34+
stages: # List of stages for jobs, and their order of execution
35+
- build-release
36+
- build-debug
37+
- build-docs
38+
39+
# Defaults for every job (unless overridden)
40+
default:
41+
before_script:
42+
# Log version and context information
43+
- touch ${CI_JOB_INFO_LOG}
44+
- echo "CI_PIPELINE_CREATED_AT=${CI_PIPELINE_CREATED_AT}" | tee -a ${CI_JOB_INFO_LOG}
45+
- echo "CI_PIPELINE_SOURCE=${CI_PIPELINE_SOURCE}" | tee -a ${CI_JOB_INFO_LOG}
46+
- echo "CI_PIPELINE_ID=${CI_PIPELINE_ID}" | tee -a ${CI_JOB_INFO_LOG}
47+
- echo "CI_PIPELINE_IID=${CI_PIPELINE_IID}" | tee -a ${CI_JOB_INFO_LOG}
48+
- echo "CI_JOB_STARTED_AT=${CI_JOB_STARTED_AT}" | tee -a ${CI_JOB_INFO_LOG}
49+
- echo "CI_JOB_ID=${CI_JOB_ID}" | tee -a ${CI_JOB_INFO_LOG}
50+
- echo "CI_JOB_STAGE=${CI_JOB_STAGE}" | tee -a ${CI_JOB_INFO_LOG}
51+
- echo "CI_JOB_NAME=${CI_JOB_NAME}" | tee -a ${CI_JOB_INFO_LOG}
52+
- echo "CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME}" | tee -a ${CI_JOB_INFO_LOG}
53+
- echo "CI_COMMIT_SHA=${CI_COMMIT_SHA}" | tee -a ${CI_JOB_INFO_LOG}
54+
- echo "gcc version=" | tee -a ${CI_JOB_INFO_LOG}
55+
- gcc --version | tee -a ${CI_JOB_INFO_LOG}
56+
- echo "ld version=" | tee -a ${CI_JOB_INFO_LOG}
57+
- ld --version | tee -a ${CI_JOB_INFO_LOG}
58+
- echo "cmake version=" | tee -a ${CI_JOB_INFO_LOG}
59+
- cmake --version | tee -a ${CI_JOB_INFO_LOG}
60+
- echo "git version=" | tee -a ${CI_JOB_INFO_LOG}
61+
- git --version | tee -a ${CI_JOB_INFO_LOG}
62+
63+
# Build bplib release version
64+
build-release-job:
65+
tags:
66+
- dtn-aws-plumbed-dev
67+
stage: build-release
68+
script:
69+
- git status
70+
# Clone and build osal as a standalone
71+
- git clone https://github.com/nasa/osal.git
72+
- cd osal/
73+
- cmake $CMAKE_OSAL_DEFS -B ../osal-build
74+
- cd ../osal-build
75+
- make DESTDIR=../osal-staging install
76+
# Build bplib with osal
77+
- cd ..
78+
- cmake $CMAKE_BPLIB_RELEASE_DEFS -B "${BPLIB_RELEASE_BUILD}"
79+
- cd "${BPLIB_RELEASE_BUILD}"
80+
- make all
81+
# Run unit tests
82+
- ctest --output-on-failure 2>&1 | tee ctest.log
83+
84+
artifacts:
85+
paths:
86+
- ${CI_JOB_INFO_LOG}
87+
- ${BPLIB_RELEASE_BUILD}
88+
expire_in: 1 day
89+
90+
build-debug-job:
91+
tags:
92+
- dtn-aws-plumbed-dev
93+
stage: build-debug
94+
script:
95+
- git status
96+
# Clone and build osal as a standalone
97+
- git clone https://github.com/nasa/osal.git
98+
- cd osal/
99+
- cmake $CMAKE_OSAL_DEFS -B ../osal-build
100+
- cd ../osal-build
101+
- make DESTDIR=../osal-staging install
102+
# Build bplib with osal
103+
- cd ..
104+
- cmake $CMAKE_BPLIB_DEBUG_DEFS -B "${BPLIB_DEBUG_BUILD}"
105+
- cd "${BPLIB_DEBUG_BUILD}"
106+
- make all
107+
# Run unit tests
108+
- ctest --output-on-failure 2>&1 | tee ctest.log
109+
110+
artifacts:
111+
paths:
112+
- ${CI_JOB_INFO_LOG}
113+
- ${BPLIB_DEBUG_BUILD}
114+
expire_in: 1 day
115+
116+
build-docs-job:
117+
tags:
118+
- dtn-aws-plumbed-dev
119+
stage: build-docs
120+
script:
121+
# Build the BPLib API Guide
122+
- cmake $CMAKE_BPLIB_DOC_DEFS -B ${BPLIB_DOC_BUILD}
123+
- cd ${BPLIB_DOC_BUILD}
124+
- make bplib-apiguide
125+
126+
artifacts:
127+
paths:
128+
- ${BPLIB_DOC_BUILD}/docs/doc-src/html/
129+
expire_in: 1 day
130+

0 commit comments

Comments
 (0)