@@ -11,99 +11,90 @@ jobs:
1111 runs-on : ubuntu-latest
1212 steps :
1313 - uses : actions/checkout@v4
14+
1415 - name : Lint
1516 run : |
1617 make fmt
1718
1819 build :
19- runs-on : ubuntu-latest
20+ runs-on : deathstar
21+ steps :
22+ - uses : actions/checkout@v4
2023
24+ - name : Download bin tools
25+ if : steps.cache-bin.outputs.cache-hit != 'true'
26+ run : |
27+ make download-bin
28+
29+ - name : Setup submodules
30+ if : steps.cache-submodules.outputs.cache-hit != 'true'
31+ run : |
32+ make submodules
33+
34+ - name : Create python venv
35+ run : |
36+ make fprime-venv
37+
38+ - name : Setup Zephyr
39+ if : steps.cache-zephyr-workspace.outputs.cache-hit != 'true'
40+ run : |
41+ make zephyr-workspace
42+
43+ - name : Setup Zephyr SDK
44+ if : steps.cache-zephyr-sdk.outputs.cache-hit != 'true'
45+ run : |
46+ make zephyr-sdk
47+
48+ - name : Setup Zephyr Export
49+ run : |
50+ make zephyr-export
51+
52+ - name : Install Zephyr Python Dependencies
53+ run : |
54+ make zephyr-python-deps
55+
56+ - name : Generate
57+ run : |
58+ make generate
59+
60+ - name : Build
61+ run : |
62+ make build
63+
64+ - name : Upload build artifacts
65+ uses : actions/upload-artifact@v4
66+ with :
67+ name : artifacts
68+ path : |
69+ build-artifacts/zephyr.uf2
70+ build-artifacts/zephyr/fprime-zephyr-deployment/dict/ReferenceDeploymentTopologyDictionary.json
71+ retention-days : 30
72+
73+ integration :
74+ runs-on :
75+ - integration
76+ needs : build
2177 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
27-
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-
38-
39- - name : Download bin tools
40- if : steps.cache-bin.outputs.cache-hit != 'true'
41- run : |
42- make download-bin
43-
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-
56-
57- - name : Setup submodules
58- if : steps.cache-submodules.outputs.cache-hit != 'true'
59- run : |
60- make submodules
61-
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-
71-
72- - name : Setup python venv
73- if : steps.cache-python.outputs.cache-hit != 'true'
74- run : |
75- make fprime-venv
76-
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-
89-
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
97-
98- - name : Build
99- run : |
100- make generate-ci build-ci
101-
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
78+ - uses : actions/checkout@v4
79+
80+ - uses : actions/download-artifact@v5
81+
82+ - name : Set up dependencies
83+ run : |
84+ mkdir -p build-artifacts/zephyr/fprime-zephyr-deployment/dict \
85+ && mv zephyr/fprime-zephyr-deployment/dict/ReferenceDeploymentTopologyDictionary.json build-artifacts/zephyr/fprime-zephyr-deployment/dict
86+ make submodules fprime-venv
87+
88+ - name : Trigger Bootloader
89+ run : |
90+ make bootloader
91+ sleep 10
92+
93+ - name : Copy Firmware
94+ run : |
95+ picotool load ./zephyr.uf2
96+ picotool reboot
97+
98+ - name : Run Integration Tests
99+ run : |
100+ make test-integration
0 commit comments