|
8 | 8 | workflow_dispatch: |
9 | 9 |
|
10 | 10 | jobs: |
| 11 | + prepare-model-artifact: |
| 12 | + name: Prepare Edge Impulse model artifact |
| 13 | + runs-on: ubuntu-24.04 |
| 14 | + steps: |
| 15 | + - name: Checkout |
| 16 | + uses: actions/checkout@v4 |
| 17 | + |
| 18 | + - name: Build and deploy Edge Impulse model |
| 19 | + id: build-deploy |
| 20 | + uses: edgeimpulse/build-deploy@v2.0.0 |
| 21 | + with: |
| 22 | + project_id: ${{ secrets['EDGE_IMPULSE_PROJECT_ID'] }} |
| 23 | + api_key: ${{ secrets['EDGE_IMPULSE_API_KEY'] }} |
| 24 | + engine: tflite |
| 25 | + deployment_type: zip |
| 26 | + |
| 27 | + - name: Upload deployment artifact |
| 28 | + uses: actions/upload-artifact@v4 |
| 29 | + with: |
| 30 | + name: edge-impulse-deployment |
| 31 | + path: ${{ steps.build-deploy.outputs.deployment_file_name }} |
| 32 | + if-no-files-found: error |
| 33 | + |
11 | 34 | build-matrix: |
| 35 | + needs: prepare-model-artifact |
12 | 36 | name: ${{ matrix.app }} on ${{ matrix.target.name }} |
13 | 37 | runs-on: ${{ matrix.target.runner }} |
14 | 38 | strategy: |
@@ -183,31 +207,34 @@ jobs: |
183 | 207 | echo "Skipping ${{ matrix.app }} + ${{ matrix.target.name }}" |
184 | 208 | echo "Reason: ${{ steps.validate.outputs.reason }}" |
185 | 209 |
|
186 | | - - name: Build and deploy Edge Impulse model |
187 | | - if: matrix.app != 'APP_COLLECT' |
188 | | - id: build-deploy |
189 | | - uses: edgeimpulse/build-deploy@v2.0.0 |
| 210 | + - name: Download deployment artifact |
| 211 | + if: matrix.app != 'APP_COLLECT' && steps.validate.outputs.supported == 'true' |
| 212 | + uses: actions/download-artifact@v4 |
190 | 213 | with: |
191 | | - project_id: ${{ secrets['EDGE_IMPULSE_PROJECT_ID'] }} |
192 | | - api_key: ${{ secrets['EDGE_IMPULSE_API_KEY'] }} |
193 | | - engine: tflite |
194 | | - deployment_type: zip-linux |
| 214 | + name: edge-impulse-deployment |
| 215 | + path: . |
195 | 216 |
|
196 | 217 | - name: Extract model and SDK |
197 | | - if: matrix.app != 'APP_COLLECT' |
| 218 | + if: matrix.app != 'APP_COLLECT' && steps.validate.outputs.supported == 'true' |
198 | 219 | shell: bash |
199 | 220 | run: | |
200 | 221 | set -euxo pipefail |
201 | 222 |
|
202 | 223 | rm -rf edge-impulse-sdk model-parameters tflite-model temp |
203 | 224 | mkdir -p temp |
204 | 225 |
|
205 | | - unzip -q "${{ steps.build-deploy.outputs.deployment_file_name }}" -d temp |
| 226 | + deployment_file="$(find . -maxdepth 1 -type f -name '*.zip' | head -n 1)" |
| 227 | + if [[ -z "$deployment_file" ]]; then |
| 228 | + echo "No deployment zip file found after artifact download" |
| 229 | + exit 1 |
| 230 | + fi |
| 231 | +
|
| 232 | + unzip -q "$deployment_file" -d temp |
206 | 233 | mv temp/edge-impulse-sdk . |
207 | 234 | mv temp/model-parameters . |
208 | 235 | mv temp/tflite-model . |
209 | 236 |
|
210 | | - rm -rf "${{ steps.build-deploy.outputs.deployment_file_name }}" temp |
| 237 | + rm -rf "$deployment_file" temp |
211 | 238 |
|
212 | 239 | - name: Build |
213 | 240 | if: steps.validate.outputs.supported == 'true' |
|
0 commit comments