Skip to content

Commit b96b877

Browse files
committed
ci: initial version of build scripts
1 parent a8289ff commit b96b877

File tree

3 files changed

+122
-0
lines changed

3 files changed

+122
-0
lines changed

.github/workflows/build.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Build
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
board:
7+
description: 'Board to build for'
8+
required: true
9+
default: 'all'
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
strategy:
15+
matrix:
16+
board:
17+
- esp-box-3
18+
- esp-box
19+
- esp32_p4_function_ev_board
20+
- m5stack_core_s3
21+
if: ${{ github.event.inputs.board == 'all' || github.event.inputs.board == matrix.board }}
22+
23+
steps:
24+
- name: Checkout code
25+
uses: actions/checkout@v3
26+
27+
- name: Set up ESP-IDF
28+
uses: espressif/esp-idf-ci-action@v2
29+
with:
30+
version: '5.3'
31+
32+
- name: Install Python dependencies
33+
run: python -m pip install --upgrade pip setuptools wheel
34+
35+
- name: Build for ${{ matrix.board }}
36+
run: |
37+
idf.py @boards/${{ matrix.board }}.cfg set-target ${{ matrix.board }}
38+
idf.py build
39+
env:
40+
BUILD_BOARD: ${{ matrix.board }}
41+
42+
- name: Upload build artifacts
43+
uses: actions/upload-artifact@v3
44+
with:
45+
name: ${{ matrix.board }}-build
46+
path: build/

.github/workflows/release.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Create Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release_name:
7+
description: 'Name of the release'
8+
required: true
9+
board:
10+
description: 'Board to release'
11+
required: true
12+
default: 'all'
13+
14+
jobs:
15+
create-release:
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v3
21+
22+
- name: Create GitHub Release
23+
id: create_release
24+
uses: actions/create-release@v1
25+
with:
26+
tag_name: ${{ github.event.inputs.release_name }}
27+
release_name: ${{ github.event.inputs.release_name }}
28+
body: 'Release for ${{ github.event.inputs.release_name }}'
29+
draft: true
30+
prerelease: false
31+
32+
- name: Download build artifacts
33+
uses: actions/download-artifact@v3
34+
with:
35+
name: ${{ matrix.board }}-build
36+
path: build/
37+
38+
- name: Upload assets to release
39+
uses: actions/upload-release-asset@v1
40+
with:
41+
upload_url: ${{ steps.create_release.outputs.upload_url }}
42+
asset_path: build/
43+
asset_name: ${{ matrix.board }}-artifacts.zip
44+
asset_content_type: application/zip

.github/workflows/test.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Test
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
board:
7+
description: 'Board to test'
8+
required: true
9+
default: 'esp-box-3'
10+
11+
jobs:
12+
test:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v3
17+
18+
- name: Download build artifacts
19+
uses: actions/download-artifact@v3
20+
with:
21+
name: ${{ github.event.inputs.board }}-build
22+
path: build/
23+
24+
- name: Setup Wokwi CLI
25+
uses: wokwi/wokwi-ci-action@v1
26+
with:
27+
token: ${{ secrets.WOKWI_CLI_TOKEN }}
28+
path: . # assumes wokwi.toml is in the root directory
29+
timeout: 30000
30+
expect_text: 'Boot successful'
31+
fail_text: 'Error'
32+
serial_log_file: 'wokwi-logs.txt'

0 commit comments

Comments
 (0)