# Based on https://github.com/lupyuen/pinetime-lab/blob/master/doc/buildAndProgram.md name: C/C++ CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - name: Install cmake uses: lukka/get-cmake@v3.18.0 - name: Cache Embedded Arm Toolchain uses: actions/cache@v2 env: cache-name: cache-toolchain with: path: ~/arm-none-eabi key: ${{ runner.os }}-build-${{ env.cache-name }}- restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install Embedded Arm Toolchain arm-none-eabi-gcc uses: fiam/arm-none-eabi-gcc@v1.0.2 with: # GNU Embedded Toolchain for Arm release name, in the V-YYYY-qZ format (e.g. "9-2019-q4") release: 8-2019-q3 # Directory to unpack GCC to. Defaults to a temporary directory. directory: ~/arm-none-eabi - name: Cache nRF5 SDK uses: actions/cache@v2 env: cache-name: cache-nrf5sdk with: path: ~/nrf5_sdk key: ${{ runner.os }}-build-${{ env.cache-name }}- restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install nRF5 SDK run: cd ~ && curl https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/nRF5_SDK_15.3.0_59ac345.zip -o nrf5_sdk.zip && unzip nrf5_sdk.zip && mv nRF5_SDK_15.3.0_59ac345 nrf5_sdk - name: Checkout source files uses: actions/checkout@v2 - name: Show Files run: set ; pwd ; ls -l ~ - name: cmake run: mkdir -p build && cd build && cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=~/arm-none-eabi -DNRF5_SDK_PATH=~/nrf5_sdk -DUSE_OPENOCD=1 ../ - name: make run: cd build && make -j pinetime-app