diff --git a/.github/actions/build-firmware/action.yml b/.github/actions/build-firmware/action.yml new file mode 100644 index 00000000..0314ca74 --- /dev/null +++ b/.github/actions/build-firmware/action.yml @@ -0,0 +1,37 @@ +name: Build + +inputs: + board-name: + description: The name of the board + required: true + version: + description: The name of the board + required: true + sdkconfig: + description: The sdkconfig file to build + required: true + arch: + description: The ESP32 SOC variant + required: true + +runs: + using: "composite" + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: 'Board select' + shell: bash + run: cp ${{ inputs.sdkconfig }} sdkconfig + - name: 'Build' + uses: espressif/esp-idf-ci-action@main + with: + esp_idf_version: v5.3.1 + target: ${{ inputs.arch }} + path: './' + - name: 'Upload Artifact' + uses: actions/upload-artifact@v4 + with: + name: tactility-${{ inputs.board-name }}-${{ inputs.version }} + path: build/Tactility.bin + retention-days: 5 diff --git a/.github/workflows/build-firmware.yml b/.github/workflows/build-firmware.yml new file mode 100644 index 00000000..6ce6a855 --- /dev/null +++ b/.github/workflows/build-firmware.yml @@ -0,0 +1,50 @@ +name: Build Firmware +on: [push] + +permissions: read-all + +jobs: + yellow-board: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: "Build" + uses: ./.github/actions/build-firmware + with: + board-name: yellowboard + version: snapshot + sdkconfig: sdkconfig.board.yellow_board + arch: esp32 + lilygo-tdeck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: "Build" + uses: ./.github/actions/build-firmware + with: + board-name: lilygotdeck + version: snapshot + sdkconfig: sdkconfig.board.lilygo_tdeck + arch: esp32s3 + m5stack-core2: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: "Build" + uses: ./.github/actions/build-firmware + with: + board-name: m5stackcore2 + version: snapshot + sdkconfig: sdkconfig.board.m5stack_core2 + arch: esp32 + m5stack-cores3: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: "Build" + uses: ./.github/actions/build-firmware + with: + board-name: m5stackcores3 + version: snapshot + sdkconfig: sdkconfig.board.m5stack_cores3 + arch: esp32s3 diff --git a/.github/workflows/esp.yml b/.github/workflows/esp.yml deleted file mode 100644 index 9962d65d..00000000 --- a/.github/workflows/esp.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Build -on: [push] -jobs: - Build-Yellow-Board: - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v2 - with: - submodules: recursive - - name: Board select - run: cp sdkconfig.board.yellow_board sdkconfig - - name: build - uses: espressif/esp-idf-ci-action@main - with: - esp_idf_version: v5.3.1 - target: esp32 - path: './' - build-lilygo-t-deck: - runs-on: ubuntu-latest - steps: - - name: checkout repo - uses: actions/checkout@v2 - with: - submodules: recursive - - name: board select - run: cp sdkconfig.board.lilygo_tdeck sdkconfig - - name: build - uses: espressif/esp-idf-ci-action@main - with: - esp_idf_version: v5.3.1 - target: esp32s3 - path: './' - build-m5stack-core2: - runs-on: ubuntu-latest - steps: - - name: checkout repo - uses: actions/checkout@v2 - with: - submodules: recursive - - name: board select - run: cp sdkconfig.board.m5stack_core2 sdkconfig - - name: build - uses: espressif/esp-idf-ci-action@main - with: - esp_idf_version: v5.3.1 - target: esp32 - path: './' - build-m5stack-cores3: - runs-on: ubuntu-latest - steps: - - name: checkout repo - uses: actions/checkout@v2 - with: - submodules: recursive - - name: board select - run: cp sdkconfig.board.m5stack_cores3 sdkconfig - - name: build - uses: espressif/esp-idf-ci-action@main - with: - esp_idf_version: v5.3.1 - target: esp32s3 - path: './' diff --git a/.github/workflows/pc.yml.disabled b/.github/workflows/pc.yml.disabled index 89b6bdae..0f577b0b 100644 --- a/.github/workflows/pc.yml.disabled +++ b/.github/workflows/pc.yml.disabled @@ -1,3 +1,4 @@ +# Disabled because of issue: https://github.com/libsdl-org/setup-sdl/issues/23 name: Build on: [push] jobs: @@ -15,7 +16,7 @@ jobs: version: 2-latest version-sdl-image: 2-latest - name: Configure Project - uses: threeal/cmake-action@v1.3.0 + uses: threeal/cmake-action@v2.0.0 - name: Prepare Project run: cmake -S ./ -B build - name: Build Project diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 70384ddd..edffd713 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,20 +1,20 @@ name: Tests on: [push] jobs: - Build-PC: + Run: runs-on: ubuntu-latest env: SKIP_SDL: true steps: - - name: Checkout repo + - name: "Checkout repo" uses: actions/checkout@v2 with: submodules: recursive - - name: Configure Project + - name: "Configure Project" uses: threeal/cmake-action@v1.3.0 - - name: Prepare Project + - name: "Prepare Project" run: cmake -S ./ -B build - - name: Build Tests + - name: "Build Tests" run: cmake --build build --target build-tests - - name: Run Tests + - name: "Run Tests" run: build/Tests/TactilityCore/TactilityCoreTests --exit diff --git a/CMakeLists.txt b/CMakeLists.txt index 6dac2e46..3760dc27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,7 +48,7 @@ else() message("Building for sim target") endif() -project(TactilityRoot) +project(Tactility) # Defined as regular project for PC and component for ESP if (NOT DEFINED ENV{ESP_IDF_VERSION}) diff --git a/Documentation/ideas.md b/Documentation/ideas.md index 6ccf89f7..a4e8d932 100644 --- a/Documentation/ideas.md +++ b/Documentation/ideas.md @@ -3,6 +3,8 @@ - Bug: When closing a top level app, there's often an error "can't stop root app" - Bug: I2C Scanner is on M5Stack devices is broken - Create more unit tests for `tactility-core` and `tactility` (PC-only for now) +- WiFi on-at-boot should be a setting in its app +- Create app to edit WiFi settings (e.g. "forget" and "auto-connect" option) - Show a warning screen if firmware encryption or secure boot are off when saving WiFi credentials. - Show a warning screen when a user plugs in the SD card on a device that only supports mounting at boot. - Try out Waveshare S3 120MHz mode for PSRAM (see "enabling 120M PSRAM is necessary" in [docs](https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-4.3#Other_Notes)) @@ -23,7 +25,6 @@ - If present, use LED to show boot status - 2 wire speaker support - tt::app::start() and similar functions as proxies for Loader app start/stop/etc. -- App.setResult() for apps that need to return data to other apps (e.g. file selection) - Wi-Fi using dispatcher to dispatch its main functionality to the dedicated Wi-Fi CPU core (to avoid main loop hack) # App Ideas