diff --git a/.github/workflows/header-gen.yml b/.github/workflows/header-gen.yml new file mode 100644 index 0000000..712892f --- /dev/null +++ b/.github/workflows/header-gen.yml @@ -0,0 +1,32 @@ +name: Header Generator Tests + +on: + push: + branches: '*' + pull_request: + branches: '*' + +jobs: + build-and-test: + name: Build & Test TS lib + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install Dependencies + run: npm ci + working-directory: ./header-gen + + - name: Build + run: npm run build + working-directory: ./header-gen + + - name: Run Jest Tests + run: npm test + working-directory: ./header-gen diff --git a/.github/workflows/makecode.yml b/.github/workflows/makecode.yml new file mode 100644 index 0000000..09dd601 --- /dev/null +++ b/.github/workflows/makecode.yml @@ -0,0 +1,31 @@ +name: MakeCode Project + +on: + push: + branches: '*' + pull_request: + branches: '*' + +jobs: + build-makecode: + name: Build MakeCode Project + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + run: | + npm install -g pxt + pxt target microbit + pxt install + + - name: Build + run: pxt build --cloud + env: + CI: true diff --git a/README.md b/README.md index 9e6d500..0a0e981 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ -# Experimental MakeCode extension to run ML models with ML4F +# Experimental MakeCode extension to run ML4F models + +[![MakeCode Project](https://github.com/microbit-foundation/pxt-ml-runner-poc/actions/workflows/makecode.yml/badge.svg)](https://github.com/microbit-foundation/pxt-ml-runner-poc/actions/workflows/makecode.yml) +[![Header Generator Tests](https://github.com/microbit-foundation/pxt-ml-runner-poc/actions/workflows/header-gen.yml/badge.svg)](https://github.com/microbit-foundation/pxt-ml-runner-poc/actions/workflows/header-gen.yml) This project includes [ML4F](https://github.com/microsoft/ml4f) and a wrapper to invoke a known type of model. It is left slim to be able to be import it in other MakeCode extensions and a MicroPython module. + ## Developer considerations - Almost nothing implemented yet @@ -16,14 +20,16 @@ in other MakeCode extensions and a MicroPython module. contains issues that could be encountered and workarounds - Only built and tested on micro:bit V2 + ## Use as Extension This repository can be added as an **extension** in MakeCode. -* open [MakeCode beta](https://makecode.microbit.org/beta) -* click on **New Project** -* click on **Extensions** under the gearwheel menu -* search for **https://github.com/microbit-foundation/pxt-ml-runner-poc** and import +* Open [MakeCode beta](https://makecode.microbit.org/beta) +* Click on **New Project** +* Click on **Extensions** under the gearwheel menu +* Search for **https://github.com/microbit-foundation/pxt-ml-runner-poc** and import + ## Edit this project @@ -31,12 +37,11 @@ This repository can be added as an **extension** in MakeCode. To edit this repository in MakeCode. -* open [MakeCode](https://makecode.microbit.org) -* click on **Import** then click on **Import URL** -* paste **https://github.com/microbit-foundation/pxt-ml-runner-poc** and click import - +* Open [MakeCode](https://makecode.microbit.org) +* Click on **Import** then click on **Import URL** +* Paste **https://github.com/microbit-foundation/pxt-ml-runner-poc** and click import -## Building locally +### Building locally Ensure you have the required toolchain to build for V1 and V2 (arm-none-eabi-gcc, python, yotta, cmake, ninja, srec_cat) or docker. @@ -46,17 +51,10 @@ git clone https://github.com/microbit-foundation/pxt-ml-runner-poc cd pxt-ml-runner-poc npm install pxt --no-save npx pxt target microbit --no-save -cp node_modules/pxtcli.json ./pxtcli.json -npm install pxt-microbit@6.1.10 --no-save -mv ./pxtcli.json node_modules/pxtcli.json npx pxt install PXT_FORCE_LOCAL=1 PXT_NODOCKER=1 npx pxt ``` -> ![WARNING] -> Forcing microbit target at version 6.1.10 due to this issue: -> https://github.com/microsoft/pxt-microbit/pull/5481 - For the V1 build Yotta can hit the GitHub rate limits quite easily if the project is built from a clean state more than once. A V2-only build can be performed with the `PXT_COMPILE_SWITCHES=csv---mbcodal` @@ -82,6 +80,26 @@ pxt.json file: ``` +## License +This software is under the MIT open source license. + +[SPDX-License-Identifier: MIT](LICENSE) + + +## Code of Conduct + +Trust, partnership, simplicity and passion are our core values we live and +breathe in our daily work life and within our projects. Our open-source +projects are no exception. We have an active community which spans the globe +and we welcome and encourage participation and contributions to our projects +by everyone. We work to foster a positive, open, inclusive and supportive +environment and trust that our community respects the micro:bit code of +conduct. Please see our [code of conduct](https://microbit.org/safeguarding/) +which outlines our expectations for all those that participate in our +community and details on how to report any concerns and what would happen +should breaches occur. + + #### Metadata (used for search) * for PXT/microbit