From 4c92ed410f89ba398b8762384bae395ff1d344c9 Mon Sep 17 00:00:00 2001 From: Reinhold Gschweicher Date: Tue, 1 Feb 2022 21:48:56 +0100 Subject: [PATCH] CI: add lv_sim workflow and upload 'infinisim' executable use InfiniSim repo to build simulator in CI --- .github/workflows/lv_sim.yml | 74 ++++++++++++++++++++++++++++++++++++ README.md | 4 ++ 2 files changed, 78 insertions(+) create mode 100644 .github/workflows/lv_sim.yml diff --git a/.github/workflows/lv_sim.yml b/.github/workflows/lv_sim.yml new file mode 100644 index 00000000..a3479f05 --- /dev/null +++ b/.github/workflows/lv_sim.yml @@ -0,0 +1,74 @@ +# GitHub Actions Workflow to build Simulator for PineTime Smart Watch LVGL Interface + +# Name of this Workflow +name: Build PineTime LVGL Simulator + +# When to run this Workflow... +on: + + # Run on all branches + push: + branches: [] + + # Also run this Workflow when a Pull Request is created or updated in the "master" and "develop" Branch + pull_request: + branches: [ master, develop ] + +# Steps to run for the Workflow +jobs: + build: + + # Run these steps on Ubuntu + runs-on: ubuntu-latest + + steps: + + ######################################################################################### + # Download and Install Dependencies + + - name: Install cmake + uses: lukka/get-cmake@v3.18.3 + + - name: Install SDL2 development package + run: | + sudo apt-get update + sudo apt-get -y install libsdl2-dev + + ######################################################################################### + # Checkout + + - name: Checkout source files + uses: actions/checkout@v2 + with: + submodules: recursive + + ######################################################################################### + # get InfiniSim repo + + - name: Get InfiniSim repo + run: | + git clone https://github.com/InfiniTimeOrg/InfiniSim.git --depth 1 --branch main + git -C InfiniSim submodule update --init lv_drivers + + ######################################################################################### + # CMake + + - name: CMake + run: | + cmake -G Ninja -S InfiniSim -B build_lv_sim -DInfiniTime_DIR="${PWD}" + + ######################################################################################### + # Build and Upload simulator + + # For Debugging Builds: Remove "make" option "-j" for clearer output. Add "--trace" to see details. + # For Faster Builds: Add "make" option "-j" + + - name: Build simulator executable + run: | + cmake --build build_lv_sim + + - name: Upload simulator executable + uses: actions/upload-artifact@v2 + with: + name: infinisim + path: build_lv_sim/infinisim diff --git a/README.md b/README.md index 524f510e..8443e43e 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,10 @@ Fast open-source firmware for the [PineTime smartwatch](https://www.pine64.org/p - [Creating a stopwatch in Pinetime(article)](https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html) - [Tips on designing an app UI](doc/ui_guidelines.md) +### InfiniSim Simulator +Use the [InfiniSim Simulator](https://github.com/InfiniTimeOrg/InfiniSim) to experience the `InfiniTime` user interface directly on your PC, to shorten the time until you get your hands on a real [PineTime smartwatch](https://www.pine64.org/pinetime/). +Or use it to develop new Watchfaces, new Screens, or quickly iterate on the user interface. + ### Contributing - [How to contribute?](/doc/contribute.md) - [Coding conventions](/doc/coding-convention.md)