63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
name: Compile Release
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*'
|
|
|
|
jobs:
|
|
build-release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
submodules: recursive
|
|
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.14'
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v7
|
|
with:
|
|
version: "latest"
|
|
enable-cache: false
|
|
|
|
- name: Install PlatformIO Core
|
|
run: uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.19.zip
|
|
|
|
- name: Build CrossPoint
|
|
run: pio run -e gh_release
|
|
|
|
- name: Patch min_chip_rev_full to 0
|
|
run: |
|
|
python3 - <<'EOF'
|
|
import struct, sys
|
|
# esp_image_header_t (8 bytes) + extended header:
|
|
# offset 0: wp_pin (B)
|
|
# offset 1: clk/q drv (B)
|
|
# offset 2: d/cs drv (B)
|
|
# offset 3: hd/wp drv (B)
|
|
# offset 4: chip_id (H, 2 bytes)
|
|
# offset 6: min_rev (B)
|
|
# offset 7: min_rev_full (H, 2 bytes) <-- patch target
|
|
MIN_REV_FULL_OFFSET = 8 + 7
|
|
path = ".pio/build/gh_release/firmware.bin"
|
|
with open(path, "r+b") as f:
|
|
f.seek(MIN_REV_FULL_OFFSET)
|
|
old = struct.unpack("<H", f.read(2))[0]
|
|
print(f"min_chip_rev_full: {old // 100}.{old % 100} -> 0.0")
|
|
f.seek(MIN_REV_FULL_OFFSET)
|
|
f.write(struct.pack("<H", 0))
|
|
EOF
|
|
|
|
- name: Upload Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: CrossPoint-${{ github.ref_name }}
|
|
path: |
|
|
.pio/build/gh_release/bootloader.bin
|
|
.pio/build/gh_release/firmware.bin
|
|
.pio/build/gh_release/firmware.elf
|
|
.pio/build/gh_release/firmware.map
|
|
.pio/build/gh_release/partitions.bin
|