mirror of
https://github.com/seemoo-lab/openhaystack.git
synced 2026-08-23 21:46:15 +00:00
Supporting ESP32 as tags for OpenHaystack (#19)
* Moving microbit firmware to a subfolder in /Firmware to prepare integration of ESP32 * Add firmware for ESP32 and update workflows * Integrated ESP32 firmware from @fhessel to OpenHaystack App Co-authored-by: Frank Hessel <fhessel@seemoo.tu-darmstadt.de>
This commit is contained in:
co-authored by
Frank Hessel
parent
f88663f5e7
commit
898563ca0b
@@ -0,0 +1,38 @@
|
||||
name: 'Build Firmware with ESP-IDF'
|
||||
description: 'Builds a firmware for the ESP32 using the ESP-IDF'
|
||||
inputs:
|
||||
src-dir:
|
||||
description: 'Source directory for the ESP-IDF project'
|
||||
required: true
|
||||
out-dir:
|
||||
description: 'Directory to which bin files will be written'
|
||||
required: true
|
||||
app-name:
|
||||
description: 'Name of the IDF application/main binary'
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Prepare ESP-IDF
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
|
||||
mkdir -p /opt/esp
|
||||
cd /opt/esp
|
||||
git clone --recursive --depth 1 --branch v4.2 https://github.com/espressif/esp-idf.git
|
||||
cd /opt/esp/esp-idf
|
||||
./install.sh
|
||||
- name: Build firmware
|
||||
shell: bash
|
||||
run: |
|
||||
source /opt/esp/esp-idf/export.sh
|
||||
cd ${{ inputs.src-dir }}
|
||||
idf.py build
|
||||
- name: Bundle output files
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p "${{ inputs.out-dir }}/bootloader" "${{ inputs.out-dir }}/partition_table"
|
||||
cp "${{ inputs.src-dir }}/build/bootloader/bootloader.bin" "${{ inputs.out-dir }}/bootloader/bootloader.bin"
|
||||
cp "${{ inputs.src-dir }}/build/partition_table/partition-table.bin" "${{ inputs.out-dir }}/partition_table/partition-table.bin"
|
||||
cp "${{ inputs.src-dir }}/build/${{ inputs.app-name }}.bin" "${{ inputs.out-dir }}/${{ inputs.app-name }}.bin"
|
||||
@@ -0,0 +1,28 @@
|
||||
name: "Build firmware (ESP32)"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- Firmware/ESP32/**
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- Firmware/ESP32/**
|
||||
|
||||
jobs:
|
||||
build-firmware-esp32:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@v2
|
||||
- name: "Copy static files"
|
||||
run: |
|
||||
mkdir -p archive/build
|
||||
cp Firmware/ESP32/flash_esp32.sh archive/
|
||||
- name: "Build ESP32 firmware"
|
||||
uses: ./.github/actions/build-esp-idf
|
||||
with:
|
||||
src-dir: Firmware/ESP32
|
||||
out-dir: archive/build
|
||||
app-name: openhaystack
|
||||
@@ -4,15 +4,15 @@ on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- Firmware/**
|
||||
- Firmware/Microbit_v1/**
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- Firmware/**
|
||||
- Firmware/Microbit_v1/**
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: Firmware
|
||||
working-directory: Firmware/Microbit_v1
|
||||
|
||||
jobs:
|
||||
build-firmware:
|
||||
|
||||
@@ -6,6 +6,28 @@ on:
|
||||
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
|
||||
|
||||
jobs:
|
||||
build-firmware-esp32:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@v2
|
||||
- name: "Copy static files"
|
||||
run: |
|
||||
mkdir -p archive/build
|
||||
cp Firmware/ESP32/flash_esp32.sh archive/
|
||||
- name: "Build ESP32 firmware"
|
||||
uses: ./.github/actions/build-esp-idf
|
||||
with:
|
||||
src-dir: Firmware/ESP32
|
||||
out-dir: archive/build
|
||||
app-name: openhaystack
|
||||
- name: "Create archive"
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware-esp32
|
||||
path: archive/*
|
||||
retention-days: 1
|
||||
|
||||
build-and-release:
|
||||
name: "Create release on GitHub"
|
||||
runs-on: macos-latest
|
||||
@@ -15,6 +37,8 @@ jobs:
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ${{ env.PROJECT_DIR }}
|
||||
needs:
|
||||
- build-firmware-esp32
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
@@ -22,6 +46,11 @@ jobs:
|
||||
uses: devbotsxyz/xcode-select@v1
|
||||
with:
|
||||
version: "12"
|
||||
- name: "Add ESP32 firmware"
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: firmware-esp32
|
||||
path: "${{ env.PROJECT_DIR }}/OpenHaystack/HaystackApp/Firmwares/ESP32"
|
||||
- name: "Archive project"
|
||||
run: xcodebuild archive -scheme ${APP} -configuration release -archivePath ${APP}.xcarchive
|
||||
- name: "Create ZIP"
|
||||
|
||||
Reference in New Issue
Block a user