forked from nasa/sample_app
-
Notifications
You must be signed in to change notification settings - Fork 0
109 lines (93 loc) · 3.66 KB
/
build-run-app.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
name: Build and Run
on:
push:
pull_request:
# need this next block?
# Force bash to apply pipefail option so pipeline failures aren't masked
# defaults:
# run:
# shell: bash
jobs:
# Checks for duplicate actions. Skips push actions if there is a matching or
# duplicate pull-request action.
# checks-for-duplicates:
# runs-on: ubuntu-latest
# # Map a step output to a job output
# outputs:
# should_skip: ${{ steps.skip_check.outputs.should_skip }}
# steps:
# - id: skip_check
# uses: fkirc/skip-duplicate-actions@master
# with:
# concurrent_skipping: 'same_content'
# skip_after_successful_duplicate: 'true'
# do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
build-and-run:
# needs: checks-for-duplicates
# if: ${{ needs.checks-for-duplicates.outputs.should_skip != 'true' || contains(github.ref, 'main') }}
name: Build and run app, confirm startup message
runs-on: ubuntu-20.04
steps:
# - name: Set up environment variables
# # Apps typically use lowercase targets and uppercase names, this logic is fragile but works
# run: |
# echo "APP_UPPER=$(echo ${{ inputs.app-name }} | sed 's/[a-z]/\U&/g')" >> $GITHUB_ENV
# echo "APP_LOWER=$(echo ${{ inputs.app-name }} | sed 's/[A-Z]/\L&/g')" >> $GITHUB_ENV
# - name: Set up start string for verification
# run: |
# if [[ "${{ inputs.startup-string }}" == '' ]]; then
# echo "START_STRING=$APP_UPPER Initialized." >> $GITHUB_ENV
# else
# echo "START_STRING=${{ inputs.startup-string }}" >> $GITHUB_ENV
# fi
- name: Checkout Bundle Main
uses: actions/checkout@v4
with:
submodules: true
repository: nasa/cFS
- name: Checkout Repo
uses: actions/checkout@v4
# with:
# path: apps/${{ env.APP_LOWER }}
- name: Copy Files
run: |
cp ./cfe/cmake/Makefile.sample Makefile
cp -r ./cfe/cmake/sample_defs sample_defs
# - name: Add To Build
# run: |
# sed -i "/list(APPEND MISSION_GLOBAL_APPLIST/a list(APPEND MISSION_GLOBAL_APPLIST $APP_LOWER)" sample_defs/targets.cmake
# - name: Add To Startup
# run: |
# sed -i "1i CFE_APP, $APP_LOWER, ${APP_UPPER}_AppMain, $APP_UPPER, 80, 16384, 0x0, 0;" sample_defs/cpu1_cfe_es_startup.scr
# cat sample_defs/cpu1_cfe_es_startup.scr
- name: Make install
run: make SIMULATION=native BUILDTYPE=release OMIT_DEPRECATED=true install
- name: Run cFS
working-directory: ./build/exe/cpu1
run: |
./core-cpu1 > ../../../cFS_startup_cpu1.txt &
sleep 30
../host/cmdUtil --endian=LE --pktid=0x1806 --cmdcode=2 --half=0x0002
- name: Archive results
uses: actions/upload-artifact@v4
with:
name: cFS_startup_log
path: cFS_startup_cpu1.txt
# - name: Confirm startup string
# run: |
# if [[ -z $(grep "$START_STRING" cFS_startup_cpu1.txt) ]]; then
# echo "Startup verification string not found in log: $START_STRING"
# echo ""
# echo "Possible related event messages:"
# grep "/$APP_UPPER " cFS_startup_cpu1.txt
# exit -1
# fi
- name: Check for cFS Warnings
if: success() || failure()
run: |
if [[ -n $(grep -i "warn\|err\|fail" cFS_startup_cpu1.txt) ]]; then
echo "cFS startup warn|err|fail:"
echo ""
grep -i 'warn\|err\|fail' cFS_startup_cpu1.txt
exit -1
fi