Files
Crosspoint/.github/workflows/release.yml
T

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