@@ -14,96 +14,116 @@ jobs:
1414 - name : Lint
1515 run : |
1616 make fmt
17-
1817 build :
1918 runs-on : ubuntu-latest
20-
2119 steps :
22- - name : Checkout repository
23- uses : actions/checkout@v4
24- with :
25- submodules : false # We'll handle submodules with smart caching
26- fetch-depth : 0
20+ - name : Checkout repository
21+ uses : actions/checkout@v4
22+ with :
23+ submodules : false # We'll handle submodules with smart caching
24+ fetch-depth : 0
2725
28- # - name: Cache bin
29- # id: cache-bin
30- # uses: actions/cache@v4
31- # with:
32- # path: |
33- # bin
34- # key: bin-${{ hashFiles('Makefile') }}-v3
35- # restore-keys: |
36- # bin-${{ hashFiles('Makefile') }}-
37- # bin-
26+ # - name: Cache bin
27+ # id: cache-bin
28+ # uses: actions/cache@v4
29+ # with:
30+ # path: |
31+ # bin
32+ # key: bin-${{ hashFiles('Makefile') }}-v3
33+ # restore-keys: |
34+ # bin-${{ hashFiles('Makefile') }}-
35+ # bin-
3836
39- - name : Download bin tools
40- if : steps.cache-bin.outputs.cache-hit != 'true'
41- run : |
42- make download-bin
37+ - name : Download bin tools
38+ if : steps.cache-bin.outputs.cache-hit != 'true'
39+ run : |
40+ make download-bin
4341
44- # - name: Cache submodules
45- # id: cache-submodules
46- # uses: actions/cache@v4
47- # with:
48- # path: |
49- # lib/fprime
50- # lib/fprime-zephyr
51- # lib/zephyr-workspace/zephyr
52- # key: submodules-${{ hashFiles('.gitmodules') }}-v3
53- # restore-keys: |
54- # submodules-${{ hashFiles('.gitmodules') }}-
55- # submodules-
42+ # - name: Cache submodules
43+ # id: cache-submodules
44+ # uses: actions/cache@v4
45+ # with:
46+ # path: |
47+ # lib/fprime
48+ # lib/fprime-zephyr
49+ # lib/zephyr-workspace/zephyr
50+ # key: submodules-${{ hashFiles('.gitmodules') }}-v3
51+ # restore-keys: |
52+ # submodules-${{ hashFiles('.gitmodules') }}-
53+ # submodules-
5654
57- - name : Setup submodules
58- if : steps.cache-submodules.outputs.cache-hit != 'true'
59- run : |
60- make submodules
55+ - name : Setup submodules
56+ if : steps.cache-submodules.outputs.cache-hit != 'true'
57+ run : |
58+ make submodules
6159
62- # - name: Cache python venv
63- # id: cache-python
64- # uses: actions/cache@v4
65- # with:
66- # path: fprime-venv
67- # key: python-venv-${{ runner.os }}-${{ hashFiles('requirements.txt') }}-v3
68- # restore-keys: |
69- # python-venv-${{ runner.os }}-
70- # python-venv-
60+ # - name: Cache python venv
61+ # id: cache-python
62+ # uses: actions/cache@v4
63+ # with:
64+ # path: fprime-venv
65+ # key: python-venv-${{ runner.os }}-${{ hashFiles('requirements.txt') }}-v3
66+ # restore-keys: |
67+ # python-venv-${{ runner.os }}-
68+ # python-venv-
7169
72- - name : Setup python venv
73- if : steps.cache-python.outputs.cache-hit != 'true'
74- run : |
75- make fprime-venv
70+ - name : Setup python venv
71+ if : steps.cache-python.outputs.cache-hit != 'true'
72+ run : |
73+ make fprime-venv
7674
77- # - name: Cache Zephyr workspace and SDK
78- # id: cache-zephyr
79- # uses: actions/cache@v4
80- # with:
81- # path: |
82- # lib/zephyr-workspace/modules
83- # lib/zephyr-workspace/bootloader
84- # ~/zephyr-sdk-0.17.2
85- # key: zephyr-${{ hashFiles('west.yml') }}-${{ runner.os }}-v3
86- # restore-keys: |
87- # zephyr-${{ hashFiles('west.yml') }}-${{ runner.os }}-
88- # zephyr-
75+ # - name: Cache Zephyr workspace and SDK
76+ # id: cache-zephyr
77+ # uses: actions/cache@v4
78+ # with:
79+ # path: |
80+ # lib/zephyr-workspace/modules
81+ # lib/zephyr-workspace/bootloader
82+ # ~/zephyr-sdk-0.17.2
83+ # key: zephyr-${{ hashFiles('west.yml') }}-${{ runner.os }}-v3
84+ # restore-keys: |
85+ # zephyr-${{ hashFiles('west.yml') }}-${{ runner.os }}-
86+ # zephyr-
8987
90- - name : Setup Zephyr
91- if : steps.cache-zephyr.outputs.cache-hit != 'true'
92- run : |
93- make zephyr-setup
94- env :
95- PIP_DISABLE_PIP_VERSION_CHECK : 1
96- PIP_NO_COMPILE : 1
88+ - name : Setup Zephyr
89+ if : steps.cache-zephyr.outputs.cache-hit != 'true'
90+ run : |
91+ make zephyr-setup
92+ env :
93+ PIP_DISABLE_PIP_VERSION_CHECK : 1
94+ PIP_NO_COMPILE : 1
9795
98- - name : Build
99- run : |
100- make generate-ci build-ci
96+ - name : Build
97+ run : |
98+ make generate-ci build-ci
10199
102- - name : Upload build artifacts
103- uses : actions/upload-artifact@v4
104- with :
105- name : artifacts
106- path : |
107- build-artifacts/zephyr.uf2
108- build-artifacts/zephyr/fprime-zephyr-deployment/dict/ReferenceDeploymentTopologyDictionary.json
109- retention-days : 30
100+ - name : Upload build artifacts
101+ uses : actions/upload-artifact@v4
102+ with :
103+ name : artifacts
104+ path : |
105+ build-artifacts/zephyr.uf2
106+ build-artifacts/zephyr/fprime-zephyr-deployment/dict/ReferenceDeploymentTopologyDictionary.json
107+ retention-days : 30
108+ integration :
109+ runs-on : [self-hosted, integration]
110+ needs : build
111+ steps :
112+ - uses : actions/checkout@v4
113+ - uses : actions/download-artifact@v5
114+ - name : Set up dependencies
115+ run : |
116+ mkdir -p build-artifacts/zephyr/fprime-zephyr-deployment/dict && mv zephyr/fprime-zephyr-deployment/dict/ReferenceDeploymentTopologyDictionary.json build-artifacts/zephyr/fprime-zephyr-deployment/dict
117+ make submodules
118+ make fprime-venv
119+ - name : Trigger Bootloader
120+ run : |
121+ make bootloader
122+ sleep 10
123+ - name : Copy Firmware
124+ run : |
125+ picotool load ./zephyr.uf2
126+ picotool reboot
127+ - name : Run Integration Tests
128+ run : |
129+ make test-integration
0 commit comments