Skip to content

Merge pull request #2582 from bobrippling/typescript/menuoptions #1323

Merge pull request #2582 from bobrippling/typescript/menuoptions

Merge pull request #2582 from bobrippling/typescript/menuoptions #1323

Workflow file for this run

name: Firmware build
on:
push:
branches: [ '*' ]
pull_request:
branches: [ '*' ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
enable_main:
description: Build default boards (linux, ESP, Microbit)
type: boolean
default: true
enable_dfu:
description: Build boards with DFU (puckjs, pixljs, banglejs)
type: boolean
default: true
enable_padded:
description: Build boards with bootloader padding (espruinoboard, -wifi, pico)
type: boolean
default: true
enable_emulator:
description: Build emulator for banglejs
type: boolean
default: true
permissions:
contents: read
jobs:
# normal builds
build_main:
if: ${{ github.event_name != 'workflow_dispatch' || inputs.enable_main }}
runs-on: ubuntu-20.04
strategy:
# devices to build for
matrix:
board: [LINUX, ESP32, ESP8266_BOARD, ESP8266_4MB, MICROBIT1, MICROBIT2, ESP32C3_IDF4]
# try and build for all devices even if one fails
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: make ${{ matrix.board }}
env:
TRAVIS: 1
RELEASE: 1
BOARD: ${{ matrix.board }}
UPLOADTOKEN: ${{ secrets.UPLOADTOKEN }}
run: |
source ./scripts/provision.sh ${{ matrix.board }}
make
./scripts/ci_upload.sh
- name: Upload ${{ matrix.board }} build artifact
uses: actions/[email protected]
with:
name: ${{ matrix.board }}
path: |
bin/*.bin
bin/*.hex
bin/*.tgz
bin/*.zip
# Builds with DFU_UPDATE_BUILD=1
build_dfu:
if: ${{ github.event_name != 'workflow_dispatch' || inputs.enable_dfu }}
runs-on: ubuntu-20.04
strategy:
# devices to build for
matrix:
board: [PUCKJS, PIXLJS, JOLTJS, MDBT42Q, BANGLEJS, BANGLEJS2, PUCKJS_MINIMAL, PUCKJS_NETWORK, PIXLJS_WIZ]
# try and build for all devices even if one fails
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: make ${{ matrix.board }}
env:
TRAVIS: 1
RELEASE: 1
DFU_UPDATE_BUILD: 1
BOARD: ${{ matrix.board }}
UPLOADTOKEN: ${{ secrets.UPLOADTOKEN }}
run: |
source ./scripts/provision.sh ${{ matrix.board }}
make
./scripts/ci_upload.sh
- name: Upload ${{ matrix.board }} build artifact
uses: actions/[email protected]
with:
name: ${{ matrix.board }}
path: |
bin/*.bin
bin/*.hex
bin/*.tgz
bin/*.zip
# Builds with PAD_FOR_BOOTLOADER=1
build_padded:
if: ${{ github.event_name != 'workflow_dispatch' || inputs.enable_padded }}
runs-on: ubuntu-20.04
strategy:
# devices to build for
matrix:
board: [ESPRUINOBOARD, PICO_R1_3, ESPRUINOWIFI]
# try and build for all devices even if one fails
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: make ${{ matrix.board }}
env:
TRAVIS: 1
RELEASE: 1
PAD_FOR_BOOTLOADER: 1
BOARD: ${{ matrix.board }}
UPLOADTOKEN: ${{ secrets.UPLOADTOKEN }}
run: |
source ./scripts/provision.sh ${{ matrix.board }}
make
./scripts/ci_upload.sh
- name: Upload ${{ matrix.board }} build artifact
uses: actions/[email protected]
with:
name: ${{ matrix.board }}
path: |
bin/*.bin
bin/*.hex
bin/*.tgz
bin/*.zip
# emulator builds
build_emulator:
if: ${{ github.event_name != 'workflow_dispatch' || inputs.enable_emulator }}
runs-on: ubuntu-20.04
strategy:
# devices to build for
matrix: # banglejs, banglejs2
board: [EMSCRIPTEN, EMSCRIPTEN2]
# try and build for all devices even if one fails
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: make ${{ matrix.board }}
env:
TRAVIS: 1
RELEASE: 1
BOARD: ${{ matrix.board }}
UPLOADTOKEN: ${{ secrets.UPLOADTOKEN }}
run: |
source ./scripts/provision.sh ${{ matrix.board }}
make
./scripts/ci_upload.sh
- name: Upload ${{ matrix.board }} build artifact
uses: actions/[email protected]
with:
name: ${{ matrix.board }}
path: |
bin/*.js
# Disable doc building for now
# docs:
# runs-on: ubuntu-20.04
# steps:
# - name: makedocs
# run: make docs