-
Notifications
You must be signed in to change notification settings - Fork 0
95 lines (79 loc) · 4.23 KB
/
Copy pathcompile-check.yaml
File metadata and controls
95 lines (79 loc) · 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
name: 🔧 Compile Check
on:
pull_request:
branches:
- main
concurrency:
group: compile-check-${{ github.event.pull_request.number }}
cancel-in-progress: true
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
compile:
name: Compile Firmware
runs-on: ubuntu-24.04
permissions:
contents: read
steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- name: Read build variables
run: |
echo "VERSION_ESP_Core=$(yq -r '.cores[] | select(.name == "esp32:esp32") | .version' libraries.yaml)" >> $GITHUB_ENV
FIRST_DEVICE=$(yq -o=json '.devices[] | select(.status == "ACTIVE")' devices.yaml | jq -rs '.[0]')
echo "PRODUCT_HEX=$(echo "$FIRST_DEVICE" | jq -r '.product_hex')" >> $GITHUB_ENV
echo "BOOTLOADER_ADDR=$(echo "$FIRST_DEVICE" | jq -r '.bootloader_addr')" >> $GITHUB_ENV
echo "PARTITION_SIZE_APP=$(echo "$FIRST_DEVICE" | jq -r '.partition_scheme[] | select(.label == "app0") | .size')" >> $GITHUB_ENV
echo "BURN_VDD_SDIO_EFUSE=$(echo "$FIRST_DEVICE" | jq -r '.burn_vdd_sdio_efuse // false')" >> $GITHUB_ENV
- name: Generate boards.local.txt
run: |
APP_SIZE_DEC=$(( ${{ env.PARTITION_SIZE_APP }} ))
sed \
-e "s|{{BOOTLOADER_ADDR}}|${{ env.BOOTLOADER_ADDR }}|g" \
-e "s|{{APP_PARTITION_MAX_SIZE}}|${APP_SIZE_DEC}|g" \
-e "s|{{FLASH_MODE}}|dio|g" \
-e "s|{{BOOT_MODE}}|qio|g" \
-e "s|{{FLASH_FREQ}}|80m|g" \
boards.local.txt.template \
> boards.local.txt
- name: Install Arduino CLI
uses: arduino/setup-arduino-cli@81d310742121c928ea9c8bbd407b4217b432ae02 # v2
with:
version: 1.4.1
- name: Configure Arduino CLI
run: |
arduino-cli config init
arduino-cli config set board_manager.additional_urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
arduino-cli core update-index
- name: Install ESP32 core
run: arduino-cli core install esp32:esp32@${{ env.VERSION_ESP_Core }}
- name: Create symlink for boards.local.txt
run: |
ARDUINO_DIR=$(arduino-cli config get directories.data)
ln -s ${{ github.workspace }}/boards.local.txt ${ARDUINO_DIR}/packages/esp32/hardware/esp32/${{ env.VERSION_ESP_Core }}/boards.local.txt
- name: Enable unsafe library install
run: arduino-cli config set library.enable_unsafe_install true
- name: Install libraries
run: |
yq -r '.libraries[] | .url + ".git#" + (.sha // .version)' libraries.yaml | \
xargs -I{} arduino-cli lib install --git-url {}
- name: Compile Controller
run: |
COMMIT_HASH="${GITHUB_SHA::7}"
PSRAM_FLAGS="-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw"
arduino-cli compile \
-b esp32:esp32:firefly_controller ./Controller \
--warnings more --clean \
--build-property "build.extra_flags=-DASYNCWEBSERVER_REGEX -DPRODUCT_HEX=${{ env.PRODUCT_HEX }} -DESP32 -DDISABLE_ALL_LIBRARY_WARNINGS -DCORE_DEBUG_LEVEL=4 -DVERSION=\"9999.99.99\" -DCOMMIT_HASH=\"${COMMIT_HASH}\" -DFIREFLY_CLOUD_API_ROOT=\"https://api.fireflylx.com\" -I${{ github.workspace }} ${PSRAM_FLAGS}"
- name: Compile Hardware-Registration-and-Configuration
run: |
COMMIT_HASH="${GITHUB_SHA::7}"
PSRAM_FLAGS="-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw"
EFUSE_FLAG=""
if [ "${{ env.BURN_VDD_SDIO_EFUSE }}" = "true" ]; then
EFUSE_FLAG=" -DBURN_VDD_SDIO_EFUSE=1"
fi
arduino-cli compile \
-b esp32:esp32:firefly_controller ./Hardware-Registration-and-Configuration \
--warnings more --clean \
--build-property "build.extra_flags=-DASYNCWEBSERVER_REGEX -DPRODUCT_HEX=${{ env.PRODUCT_HEX }} -DESP32 -DDISABLE_ALL_LIBRARY_WARNINGS -DCORE_DEBUG_LEVEL=4 -DVERSION=\"9999.99.99\" -DCOMMIT_HASH=\"${COMMIT_HASH}\"${EFUSE_FLAG} -DFIREFLY_CLOUD_API_ROOT=\"https://api.fireflylx.com\" -I${{ github.workspace }} ${PSRAM_FLAGS}"