2023-02-15 22:48:01 -05:00
|
|
|
name: Custom board build
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_dispatch:
|
|
|
|
inputs:
|
|
|
|
board:
|
|
|
|
description: 'Board: Found in ports/*/boards/[board_id]'
|
|
|
|
required: true
|
|
|
|
type: string
|
|
|
|
version:
|
|
|
|
description: 'Version: Can be a tag or a commit (>=8.1.0)'
|
|
|
|
required: false
|
|
|
|
default: latest
|
|
|
|
type: string
|
|
|
|
language:
|
|
|
|
description: 'Language: Found in locale/[language].po'
|
|
|
|
required: false
|
|
|
|
default: en_US
|
|
|
|
type: string
|
|
|
|
flags:
|
|
|
|
description: 'Flags: Build flags (e.g. CIRCUITPY_WIFI=1)'
|
|
|
|
required: false
|
|
|
|
type: string
|
|
|
|
debug:
|
|
|
|
description: 'Make a debug build'
|
|
|
|
required: false
|
|
|
|
default: false
|
|
|
|
type: boolean
|
|
|
|
|
|
|
|
run-name: ${{ inputs.board }}-${{ inputs.language }}-${{ inputs.version }}${{ inputs.flags != '' && '-custom' || '' }}${{ inputs.debug && '-debug' || '' }}
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
env:
|
|
|
|
PLATFORM_atmel-samd: arm
|
|
|
|
PLATFORM_broadcom: aarch
|
|
|
|
PLATFORM_cxd56: arm
|
|
|
|
PLATFORM_espressif: esp
|
|
|
|
PLATFORM_litex: riscv
|
|
|
|
PLATFORM_mimxrt10xx: arm
|
|
|
|
PLATFORM_nrf: arm
|
|
|
|
PLATFORM_raspberrypi: arm
|
|
|
|
PLATFORM_stm: arm
|
|
|
|
steps:
|
|
|
|
- name: Set up repository
|
|
|
|
run: |
|
|
|
|
git clone --filter=tree:0 https://github.com/adafruit/circuitpython.git $GITHUB_WORKSPACE
|
|
|
|
git checkout ${{ inputs.version == 'latest' && 'HEAD' || inputs.version }}
|
|
|
|
- name: Set up identifier
|
|
|
|
if: inputs.debug || inputs.flags != ''
|
|
|
|
run: |
|
|
|
|
> custom-build && git add custom-build
|
|
|
|
- name: Set up python
|
|
|
|
uses: actions/setup-python@v4
|
|
|
|
with:
|
|
|
|
python-version: 3.x
|
|
|
|
- name: Set up port
|
2023-02-22 09:41:38 -05:00
|
|
|
id: set-up-port
|
|
|
|
uses: ./.github/actions/deps/ports
|
|
|
|
with:
|
|
|
|
board: ${{ inputs.board }}
|
2023-02-15 22:48:01 -05:00
|
|
|
- name: Set up submodules
|
|
|
|
id: set-up-submodules
|
|
|
|
uses: ./.github/actions/deps/submodules
|
|
|
|
with:
|
|
|
|
action: cache
|
|
|
|
target: ${{ inputs.board }}
|
|
|
|
- name: Set up external
|
|
|
|
uses: ./.github/actions/deps/external
|
|
|
|
with:
|
|
|
|
action: cache
|
2023-02-22 09:41:38 -05:00
|
|
|
platform: ${{ env[format('PLATFORM_{0}', steps.set-up-port.outputs.port)] }}
|
2023-02-15 22:48:01 -05:00
|
|
|
- name: Set up mpy-cross
|
|
|
|
if: steps.set-up-submodules.outputs.frozen == 'True'
|
|
|
|
uses: ./.github/actions/mpy_cross
|
|
|
|
with:
|
|
|
|
download: false
|
|
|
|
- name: Versions
|
|
|
|
run: |
|
|
|
|
tools/describe
|
|
|
|
gcc --version
|
|
|
|
python3 --version
|
|
|
|
cmake --version || true
|
|
|
|
ninja --version || true
|
|
|
|
aarch64-none-elf-gcc --version || true
|
|
|
|
arm-none-eabi-gcc --version || true
|
|
|
|
xtensa-esp32-elf-gcc --version || true
|
|
|
|
riscv32-esp-elf-gcc --version || true
|
|
|
|
riscv64-unknown-elf-gcc --version || true
|
|
|
|
mkfs.fat --version || true
|
|
|
|
- name: Build board
|
|
|
|
run: make -j2 ${{ inputs.flags }} BOARD=${{ inputs.board }} DEBUG=${{ inputs.debug && '1' || '0' }} TRANSLATION=${{ inputs.language }}
|
2023-02-22 09:41:38 -05:00
|
|
|
working-directory: ports/${{ steps.set-up-port.outputs.port }}
|
2023-02-15 22:48:01 -05:00
|
|
|
- name: Upload artifact
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: ${{ inputs.board }}-${{ inputs.language }}-${{ inputs.version }}${{ inputs.flags != '' && '-custom' || '' }}${{ inputs.debug && '-debug' || '' }}
|
2023-02-22 09:41:38 -05:00
|
|
|
path: ports/${{ steps.set-up-port.outputs.port }}/build-${{ inputs.board }}/firmware.*
|