mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-01 18:29:56 +00:00
96 lines
2.6 KiB
YAML
96 lines
2.6 KiB
YAML
|
name: Setup Build Variant Composite Action
|
||
|
description: Variant build actions for Meshtastic Platform IO steps
|
||
|
|
||
|
inputs:
|
||
|
board:
|
||
|
description: The board to build for
|
||
|
required: true
|
||
|
github_token:
|
||
|
description: GitHub token
|
||
|
required: true
|
||
|
build-script-path:
|
||
|
description: Path to the build script
|
||
|
required: true
|
||
|
remove-debug-flags:
|
||
|
description: A newline separated list of files to remove debug flags from
|
||
|
required: false
|
||
|
default: ""
|
||
|
ota-firmware-source:
|
||
|
description: The OTA firmware file to pull
|
||
|
required: false
|
||
|
default: ""
|
||
|
ota-firmware-target:
|
||
|
description: The target path to store the OTA firmware file
|
||
|
required: false
|
||
|
default: ""
|
||
|
artifact-paths:
|
||
|
description: A newline separated list of paths to store as artifacts
|
||
|
required: false
|
||
|
default: ""
|
||
|
include-web-ui:
|
||
|
description: Include the web UI in the build
|
||
|
required: false
|
||
|
default: "false"
|
||
|
|
||
|
runs:
|
||
|
using: composite
|
||
|
steps:
|
||
|
- name: Build base
|
||
|
id: base
|
||
|
uses: ./.github/actions/setup-base
|
||
|
|
||
|
- name: Pull web ui
|
||
|
if: ${{ inputs.include-web-ui == "true" }}
|
||
|
uses: dsaltares/fetch-gh-release-asset@master
|
||
|
with:
|
||
|
repo: meshtastic/web
|
||
|
file: build.tar
|
||
|
target: build.tar
|
||
|
token: ${{ inputs.github_token }}
|
||
|
|
||
|
- name: Unpack web ui
|
||
|
if: ${{ inputs.include-web-ui == "true" }}
|
||
|
shell: bash
|
||
|
run: |
|
||
|
tar -xf build.tar -C data/static
|
||
|
rm build.tar
|
||
|
|
||
|
- name: Remove debug flags for release
|
||
|
shell: bash
|
||
|
if: ${{ inputs.remove-debug-flags != "" }}
|
||
|
run: |
|
||
|
for PATH in ${{ inputs.remove-debug-flags }}; do
|
||
|
sed -i '/DDEBUG_HEAP/d' ${PATH}
|
||
|
done
|
||
|
|
||
|
- name: Build ${{ inputs.board }}
|
||
|
shell: bash
|
||
|
run: ${{ inputs.build-script-path }} ${{ inputs.board }}
|
||
|
|
||
|
- name: Pull OTA Firmware
|
||
|
if: ${{ inputs.ota-firmware-source != "" && inputs.ota-firmware-target != "" }}
|
||
|
uses: dsaltares/fetch-gh-release-asset@master
|
||
|
with:
|
||
|
repo: meshtastic/firmware-ota
|
||
|
file: ${{ inputs.ota-firmware-source }}
|
||
|
target: ${{ inputs.ota-firmware-target }}
|
||
|
token: ${{ inputs.github_token }}
|
||
|
|
||
|
- name: Get release version string
|
||
|
shell: bash
|
||
|
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
||
|
id: version
|
||
|
|
||
|
- name: Store binaries as an artifact
|
||
|
uses: actions/upload-artifact@v4
|
||
|
with:
|
||
|
name: firmware-${{ inputs.board }}-${{ steps.version.outputs.version }}.zip
|
||
|
overwrite: true
|
||
|
path: |
|
||
|
${{ inputs.artifact-paths }}
|
||
|
|
||
|
- name: Clean up resources
|
||
|
shell: bash
|
||
|
run: |
|
||
|
rm -rf .
|