Compare commits

...
Author SHA1 Message Date
Julia Nguyen af9d262097 ci: update release artifacts 2026-08-05 11:02:21 -04:00
4 changed files with 69 additions and 28 deletions

No files matched your search

+21 -7
View File
@@ -7,6 +7,13 @@ on:
jobs:
build-release:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- pio_env: gh_release
artifact_name: firmware-x4_x3
- pio_env: sticky
artifact_name: firmware-sticky
steps:
- uses: actions/checkout@v6
with:
@@ -33,15 +40,22 @@ jobs:
restore-keys: pio-${{ runner.os }}-
- name: Build CrossPoint
run: pio run -e gh_release
env:
CROSSPOINT_RELEASE_BUILD: "1"
run: pio run -e ${{ matrix.pio_env }} -j1
- name: Name Release Firmware
run: |
cp ".pio/build/${{ matrix.pio_env }}/firmware.bin" \
".pio/build/${{ matrix.pio_env }}/${{ matrix.artifact_name }}.bin"
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: CrossPoint-${{ github.ref_name }}
name: ${{ matrix.artifact_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
.pio/build/${{ matrix.pio_env }}/bootloader.bin
.pio/build/${{ matrix.pio_env }}/${{ matrix.artifact_name }}.bin
.pio/build/${{ matrix.pio_env }}/firmware.elf
.pio/build/${{ matrix.pio_env }}/firmware.map
.pio/build/${{ matrix.pio_env }}/partitions.bin
+20 -9
View File
@@ -7,6 +7,13 @@ jobs:
build-release-candidate:
if: startsWith(github.ref_name, 'release/')
runs-on: ubuntu-latest
strategy:
matrix:
include:
- pio_env: gh_release_rc
artifact_name: firmware-x4_x3
- pio_env: sticky
artifact_name: firmware-sticky
steps:
- uses: actions/checkout@v6
with:
@@ -32,23 +39,27 @@ jobs:
key: pio-${{ runner.os }}-${{ hashFiles('platformio.ini') }}
restore-keys: pio-${{ runner.os }}-
- name: Extract env
- name: Extract short SHA
run: |
echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
echo "BRANCH_SUFFIX=${GITHUB_REF_NAME#release/}" >> $GITHUB_ENV
- name: Build CrossPoint Release Candidate
env:
CROSSPOINT_RC_HASH: ${{ env.SHORT_SHA }}
run: pio run -e gh_release_rc
run: pio run -e ${{ matrix.pio_env }} -j1
- name: Name Release Candidate Firmware
run: |
cp ".pio/build/${{ matrix.pio_env }}/firmware.bin" \
".pio/build/${{ matrix.pio_env }}/${{ matrix.artifact_name }}-rc+${{ env.SHORT_SHA }}.bin"
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: CrossPoint-RC-${{ env.BRANCH_SUFFIX }}
name: ${{ matrix.artifact_name }}-rc+${{ env.SHORT_SHA }}
path: |
.pio/build/gh_release_rc/bootloader.bin
.pio/build/gh_release_rc/firmware.bin
.pio/build/gh_release_rc/firmware.elf
.pio/build/gh_release_rc/firmware.map
.pio/build/gh_release_rc/partitions.bin
.pio/build/${{ matrix.pio_env }}/bootloader.bin
.pio/build/${{ matrix.pio_env }}/${{ matrix.artifact_name }}-rc+${{ env.SHORT_SHA }}.bin
.pio/build/${{ matrix.pio_env }}/firmware.elf
.pio/build/${{ matrix.pio_env }}/firmware.map
.pio/build/${{ matrix.pio_env }}/partitions.bin
+1 -2
View File
@@ -200,7 +200,6 @@ board_build.mcu = esp32s3
build_flags =
${base.build_flags}
-DFREEINK_DEVICE_STICKY=1
; git_branch.py only injects CROSSPOINT_VERSION for the default env; set it here.
-DCROSSPOINT_VERSION=\"${crosspoint.version}-sticky\"
; CROSSPOINT_VERSION is set by scripts/git_branch.py.
-DENABLE_SERIAL_LOG
-DLOG_LEVEL=2
+27 -10
View File
@@ -1,9 +1,20 @@
"""
PlatformIO pre-build script: inject git branch and short SHA into
CROSSPOINT_VERSION for the default (dev) environment.
PlatformIO pre-build script: set the embedded CROSSPOINT_VERSION.
Results in a version string like: 1.1.0-dev-feat-kosync-xpath-05c6cf8
Release environments are unaffected; they set CROSSPOINT_VERSION in the ini.
Version schema by device and build type:
X3/X4 development: <base>-dev-<branch>-<git-sha>
X3/X4 production: <base>
X3/X4 RC: <base>-rc+<git-sha>
Sticky development: <base>-dev-<branch>-<git-sha>
Sticky production: <base>
Sticky RC: <base>-rc+<git-sha>
This script injects the X3/X4 development and all Sticky versions. The
dedicated X3/X4 production and RC environments set their versions in
platformio.ini. CI marks production builds with CROSSPOINT_RELEASE_BUILD and
supplies the seven-character RC SHA through CROSSPOINT_RC_HASH.
"""
import configparser
@@ -77,16 +88,22 @@ def get_base_version(project_dir):
def inject_version(env):
# Only applies to the dev (default) environment; release envs set the
# version via build_flags in platformio.ini and are unaffected.
if env['PIOENV'] != 'default':
pioenv = env['PIOENV']
if pioenv not in ('default', 'sticky'):
return
project_dir = env['PROJECT_DIR']
base_version = get_base_version(project_dir)
branch = get_git_branch(project_dir)
short_sha = get_git_short_sha(project_dir)
version_string = f'{base_version}-dev-{branch}-{short_sha}'
rc_hash = os.environ.get('CROSSPOINT_RC_HASH')
if pioenv == 'sticky' and rc_hash:
version_string = f'{base_version}-rc+{rc_hash}'
elif pioenv == 'sticky' and os.environ.get('CROSSPOINT_RELEASE_BUILD'):
version_string = base_version
else:
branch = get_git_branch(project_dir)
short_sha = get_git_short_sha(project_dir)
version_string = f'{base_version}-dev-{branch}-{short_sha}'
env.Append(CPPDEFINES=[('CROSSPOINT_VERSION', f'\\"{version_string}\\"')])
print(f'CrossPoint build version: {version_string}')