Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 27 additions & 22 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ permissions:

jobs:
prepare:
name: Determine boards to build
name: Determine variants to build
runs-on: ubuntu-latest
outputs:
boards: ${{ steps.select.outputs.boards }}
variants: ${{ steps.select.outputs.variants }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -28,30 +28,30 @@ jobs:
run: sudo apt-get update && sudo apt-get install -y jq

- id: list
name: Get all board list
name: Get all variant list
run: |
echo "all_boards=$(python scripts/release.py --list-boards --json)" >> $GITHUB_OUTPUT
echo "all_variants=$(python scripts/release.py --list-boards --json)" >> $GITHUB_OUTPUT

- id: select
name: Select boards based on changes
name: Select variants based on changes
env:
ALL_BOARDS: ${{ steps.list.outputs.all_boards }}
ALL_VARIANTS: ${{ steps.list.outputs.all_variants }}
run: |
EVENT_NAME="${{ github.event_name }}"

# For push to main branch, build all boards
# push main 分支,编译全部变体
if [[ "$EVENT_NAME" == "push" ]]; then
echo "boards=$ALL_BOARDS" >> $GITHUB_OUTPUT
echo "variants=$ALL_VARIANTS" >> $GITHUB_OUTPUT
exit 0
fi

# For pull_request
# pull_request 场景
BASE_SHA="${{ github.event.pull_request.base.sha }}"
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
echo "Base: $BASE_SHA, Head: $HEAD_SHA"

CHANGED=$(git diff --name-only $BASE_SHA $HEAD_SHA || true)
echo "Changed files:\n$CHANGED"
echo -e "Changed files:\n$CHANGED"

NEED_ALL=0
declare -A AFFECTED
Expand All @@ -60,47 +60,52 @@ jobs:
NEED_ALL=1
fi

if [[ "$file" == main/boards/common/* ]]; then
NEED_ALL=1
fi

if [[ "$file" == main/boards/* ]]; then
board=$(echo "$file" | cut -d '/' -f3)
AFFECTED[$board]=1
fi
done <<< "$CHANGED"

if [[ "$NEED_ALL" -eq 1 ]]; then
echo "boards=$ALL_BOARDS" >> $GITHUB_OUTPUT
echo "variants=$ALL_VARIANTS" >> $GITHUB_OUTPUT
else
if [[ ${#AFFECTED[@]} -eq 0 ]]; then
echo "boards=[]" >> $GITHUB_OUTPUT
echo "variants=[]" >> $GITHUB_OUTPUT
else
JSON=$(printf '%s\n' "${!AFFECTED[@]}" | sort -u | jq -R -s -c 'split("\n")[:-1]')
echo "boards=$JSON" >> $GITHUB_OUTPUT
BOARDS_JSON=$(printf '%s\n' "${!AFFECTED[@]}" | sort -u | jq -R -s -c 'split("\n")[:-1]')
FILTERED=$(echo "$ALL_VARIANTS" | jq -c --argjson boards "$BOARDS_JSON" 'map(select(.board as $b | $boards | index($b)))')
echo "variants=$FILTERED" >> $GITHUB_OUTPUT
fi
fi

build:
name: Build ${{ matrix.board }}
name: Build ${{ matrix.name }}
needs: prepare
if: ${{ needs.prepare.outputs.boards != '[]' }}
if: ${{ needs.prepare.outputs.variants != '[]' }}
strategy:
fail-fast: false # 单个 board 失败不影响其它 board
fail-fast: false # 单个变体失败不影响其它变体
matrix:
board: ${{ fromJson(needs.prepare.outputs.boards) }}
include: ${{ fromJson(needs.prepare.outputs.variants) }}
runs-on: ubuntu-latest
container:
image: espressif/idf:release-v5.4
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Build current board
- name: Build current variant
shell: bash
run: |
source $IDF_PATH/export.sh
python scripts/release.py ${{ matrix.board }}
python scripts/release.py ${{ matrix.board }} --name ${{ matrix.name }}

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: xiaozhi_${{ matrix.board }}_${{ github.sha }}.bin
name: xiaozhi_${{ matrix.name }}_${{ github.sha }}.bin
path: build/merged-binary.bin
if-no-files-found: error
if-no-files-found: error
5 changes: 3 additions & 2 deletions main/boards/atk-dnesp32s3-box/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
{
"name": "atk-dnesp32s3-box",
"sdkconfig_append": [
"CONFIG_USE_WECHAT_MESSAGE_STYLE=y"
"CONFIG_USE_WECHAT_MESSAGE_STYLE=y",
"CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX=y"
]
}
]
}
}
6 changes: 4 additions & 2 deletions main/boards/atk-dnesp32s3-box0/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"builds": [
{
"name": "atk-dnesp32s3-box0",
"sdkconfig_append": []
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX0=y"
]
}
]
}
}
6 changes: 4 additions & 2 deletions main/boards/atk-dnesp32s3-box2-4g/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"builds": [
{
"name": "atk-dnesp32s3-box2-4g",
"sdkconfig_append": []
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX2_4G=y"
]
}
]
}
}
6 changes: 4 additions & 2 deletions main/boards/atk-dnesp32s3-box2-wifi/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"builds": [
{
"name": "atk-dnesp32s3-box2-wifi",
"sdkconfig_append": []
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX2_WIFI=y"
]
}
]
}
}
6 changes: 4 additions & 2 deletions main/boards/atk-dnesp32s3/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"builds": [
{
"name": "atk-dnesp32s3",
"sdkconfig_append": []
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_ATK_DNESP32S3=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/atommatrix-echo-base/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
"name": "atommatrix-echo-base",
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/4m.csv\""
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/4m.csv\"",
"CONFIG_BOARD_TYPE_ATOMMATRIX_ECHO_BASE=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/atoms3-echo-base/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
"CONFIG_SPIRAM=n",
"CONFIG_USE_AFE=n",
"CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/8m.csv\""
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/8m.csv\"",
"CONFIG_BOARD_TYPE_ATOMS3_ECHO_BASE=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/atoms3r-cam-m12-echo-base/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
"name": "atoms3r-cam-m12-echo-base",
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/8m.csv\""
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/8m.csv\"",
"CONFIG_BOARD_TYPE_ATOMS3R_CAM_M12_ECHO_BASE=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/atoms3r-echo-base/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
"name": "atoms3r-echo-base",
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/8m.csv\""
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/8m.csv\"",
"CONFIG_BOARD_TYPE_ATOMS3R_ECHO_BASE=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/bread-compact-esp32-lcd/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/4m.csv\"",
"LCD_ST7789_240X240_7PIN=y"
"LCD_ST7789_240X240_7PIN=y",
"CONFIG_BOARD_TYPE_BREAD_COMPACT_ESP32_LCD=y"
]
}
]
}
}
8 changes: 5 additions & 3 deletions main/boards/bread-compact-esp32/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,18 @@
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/4m.csv\"",
"CONFIG_OLED_SSD1306_128X64=y"
"CONFIG_OLED_SSD1306_128X64=y",
"CONFIG_BOARD_TYPE_BREAD_COMPACT_ESP32=y"
]
},
{
"name": "bread-compact-esp32-128x32",
"sdkconfig_append": [
"CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/4m.csv\"",
"CONFIG_OLED_SSD1306_128X32=y"
"CONFIG_OLED_SSD1306_128X32=y",
"CONFIG_BOARD_TYPE_BREAD_COMPACT_ESP32=y"
]
}
]
}
}
8 changes: 5 additions & 3 deletions main/boards/bread-compact-ml307/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@
{
"name": "bread-compact-ml307",
"sdkconfig_append": [
"CONFIG_OLED_SSD1306_128X32=y"
"CONFIG_OLED_SSD1306_128X32=y",
"CONFIG_BOARD_TYPE_BREAD_COMPACT_ML307=y"
]
},
{
"name": "bread-compact-ml307-128x64",
"sdkconfig_append": [
"CONFIG_OLED_SSD1306_128X64=y"
"CONFIG_OLED_SSD1306_128X64=y",
"CONFIG_BOARD_TYPE_BREAD_COMPACT_ML307=y"
]
}
]
}
}
8 changes: 5 additions & 3 deletions main/boards/bread-compact-wifi/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@
{
"name": "bread-compact-wifi",
"sdkconfig_append": [
"CONFIG_OLED_SSD1306_128X32=y"
"CONFIG_OLED_SSD1306_128X32=y",
"CONFIG_BOARD_TYPE_BREAD_COMPACT_WIFI=y"
]
},
{
"name": "bread-compact-wifi-128x64",
"sdkconfig_append": [
"CONFIG_OLED_SSD1306_128X64=y"
"CONFIG_OLED_SSD1306_128X64=y",
"CONFIG_BOARD_TYPE_BREAD_COMPACT_WIFI=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/df-k10/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
{
"name": "df-k10",
"sdkconfig_append": [
"CONFIG_SPIRAM_MODE_OCT=y"
"CONFIG_SPIRAM_MODE_OCT=y",
"CONFIG_BOARD_TYPE_DF_K10=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/df-s3-ai-cam/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
"sdkconfig_append": [
"CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=10",
"CONFIG_ESP_PHY_MAX_TX_POWER=10",
"CONFIG_SPIRAM_MODE_OCT=y"
"CONFIG_SPIRAM_MODE_OCT=y",
"CONFIG_BOARD_TYPE_DF_S3_AI_CAM=y"
]
}
]
}
}
3 changes: 2 additions & 1 deletion main/boards/doit-s3-aibox/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
{
"name": "doit-s3-aibox",
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_DOIT_S3_AIBOX=y"
]
}
]
}
}
6 changes: 4 additions & 2 deletions main/boards/du-chatx/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"builds": [
{
"name": "du-chatx",
"sdkconfig_append": []
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_DU_CHATX=y"
]
}
]
}
}
3 changes: 2 additions & 1 deletion main/boards/echoear/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
{
"name": "echoear",
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_ECHOEAR=y",
"CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v1/16m_echoear.csv\""
]
}
]
}
}
3 changes: 2 additions & 1 deletion main/boards/electron-bot/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
{
"name": "electron-bot",
"sdkconfig_append": [
"CONFIG_BOARD_TYPE_ELECTRON_BOT=y"
]
}
]
}
}
5 changes: 3 additions & 2 deletions main/boards/esp-box-3/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
{
"name": "esp-box-3",
"sdkconfig_append": [
"CONFIG_USE_DEVICE_AEC=y"
"CONFIG_USE_DEVICE_AEC=y",
"CONFIG_BOARD_TYPE_ESP_BOX_3=y"
]
}
]
}
}
Loading
Loading