Need help from Experts on Meowbit!

hey there. I’m trying to make custom firmware on Meowbit, and the first thing i have done is comment out an image from the images folder. By the way, the repo im using is here: HomeAssistantTycoon/Meowbit-Firmware: UF2 bootloader for STM32F4 Its based off of the Meowbit v 2.8.2 bootloader. When I try to run make via this GitHub workflow: name: Build Meowbit Firmware

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:

jobs:
build-firmware:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
  uses: actions/checkout@v4
  with:
    submodules: true

- name: Install ARM GCC
  run: |
    sudo apt-get update
    sudo apt-get install -y gcc-arm-none-eabi make

- name: Patch libopencm3 Makefile
  run: |
    echo "Patching libopencm3 Makefile for GitHub Actions..."
    # Force bash as shell globally
    sed -i '1s|^|SHELL := /bin/bash\n|' libopencm3/Makefile

- name: Build libopencm3
  run: |
    echo "Building libopencm3 single-threaded..."
    make -C libopencm3 -j1

- name: Build Meowbit firmware
  run: |
    echo "Building Meowbit firmware..."
    make build-bl -j1

- name: Upload firmware artifact
  uses: actions/upload-artifact@v4
  with:
    name: meowbit-firmware
    path: |
      build/*.hex
      build/*.bin

I keep getting an error when it tries building the submodule libopencm3. It fails with: /bin/bash: -c: line 1: unexpected EOF while looking for matching '"' I’m wondering if I’ve done something wrong and I should be doing it differently? (I would rather do it online than locally) Or is there an issue with the libopencm3 repo itself? The libopencm3 repo is here: mmoskal/libopencm3 at 364ee72d0c05844c703c86e0bf4f407443a7370a If any more information is needed I can provide it to the best of my ability. I’m curious to know if @richard @mmoskal @AqeeAqee or even @EpicKitty (who tried messing with the firmware unsuccessfully like I did as well) have any idea what the issue is or what I am doing wrong. Any and all help is appreciated. Thank you!

Ahhh yeah, I see the post — this is actually a GitHub Actions + Makefile issue, not MakeCode directly. That unexpected EOF while looking for matching '"' error usually means that somewhere in your script, a quote (") is unmatched or the shell is interpreting it incorrectly.

Looking at their workflow:

sed -i '1s|^|SHELL := /bin/bash\n|' libopencm3/Makefile

That part should be fine, but the problem might happen later in the make commands, especially if any filenames or commands have quotes that the shell thinks are unclosed. Online CI (GitHub Actions) is more picky than local shells.

Some tips you could give them:

  1. Check for stray quotes in the Makefiles: Even one missing " can break the workflow.
  2. Try escaping quotes properly: If any path or variable has spaces or quotes, wrap it in double quotes " and escape inner quotes.
  3. Run the commands locally first: Sometimes debugging locally is easier because you can see the full error context.
  4. Use single-threaded make: They already did -j1 which is good — avoids race conditions.
  5. Check line endings: If the repo has Windows CRLF endings, GitHub Actions can choke. Run dos2unix on Makefiles.

Honestly, unless they want to get super deep, the main thing is that the CI shell sees an unclosed `" somewhere, likely in the Makefile or a command they added.

Yeah, i figured out a workflow that fixed it, thank you!