acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

ccpp.yml (3117B)

      1 name: C/C++ CI
      2 
      3 on:
      4   push:
      5     branches: [ master, release/v8.* ]
      6   pull_request:
      7     branches: [ master, release/v8.* ]
      8 
      9 jobs:
     10   build:
     11     if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }}
     12     runs-on: ubuntu-latest
     13     strategy:
     14       matrix:
     15         # A valid option parameter to the cmake file.
     16         # See BUILD_OPTIONS in tests/CMakeLists.txt.
     17         build_option: ['OPTIONS_MINIMAL_MONOCHROME',
     18                        'OPTIONS_NORMAL_8BIT',
     19                        'OPTIONS_16BIT',
     20                        'OPTIONS_16BIT_SWAP',
     21                        'OPTIONS_FULL_32BIT']
     22     name: Build ${{ matrix.build_option }}
     23     steps:
     24     - uses: actions/checkout@v2
     25     - uses: ammaraskar/gcc-problem-matcher@master
     26     - name: Install prerequisites
     27       run: scripts/install-prerequisites.sh
     28     - name: Building ${{ matrix.build_option }}
     29       run: python tests/main.py --build-option=${{ matrix.build_option }} build
     30 
     31   test-native:
     32     runs-on: ubuntu-latest
     33     name: amd64 Executable Tests
     34     steps:
     35     - uses: actions/checkout@v2
     36     - uses: ammaraskar/gcc-problem-matcher@master
     37     - name: Install prerequisites
     38       run: scripts/install-prerequisites.sh
     39     - name: Run tests
     40       run: python tests/main.py --report test
     41     - name: Upload coverage to Codecov
     42       uses: codecov/codecov-action@v2
     43       if: github.event_name == 'push'
     44       with:
     45         fail_ci_if_error: true
     46         verbose: true
     47   test-cross:
     48     # The host should always be linux
     49     runs-on: ubuntu-latest
     50     name: ${{ matrix.arch }} Executable Tests
     51 
     52     # Run steps on a matrix of 3 arch/distro combinations
     53     strategy:
     54       matrix:
     55         arch: [ 'aarch64', 'armv6', 'armv7' ]
     56 
     57     steps:
     58       - uses: actions/checkout@v2.1.0
     59       - uses: ammaraskar/gcc-problem-matcher@master
     60       - name: Setup cache
     61         uses: actions/cache@v2
     62         with:
     63           path: |
     64             ~/.ccache
     65           key: lvgl_ci_cross_test_ccache_${{ matrix.arch }}_${{ github.sha }}
     66           restore-keys: |
     67             lvgl_ci_cross_test_ccache_${{ matrix.arch }}
     68       - uses: uraimo/run-on-arch-action@v2.1.1
     69         name: Run tests
     70         id: build
     71         with:
     72           arch: ${{ matrix.arch }}
     73           distro: bullseye
     74 
     75           # Not required, but speeds up builds
     76           githubToken: ${{ github.token }}
     77 
     78           # The shell to run commands with in the container
     79           shell: /bin/bash
     80           
     81           # Create cached/volume directories on host
     82           setup: |
     83             mkdir -p ~/.ccache
     84 
     85           # Mount cached directories in the container for faster builds
     86           dockerRunArgs: |
     87             --volume "${HOME}/.ccache:/root/.ccache"
     88 
     89           install: |
     90             apt-get update -y
     91             apt-get install build-essential ccache python3 libpng-dev ruby-full gcovr cmake -q -y
     92             /usr/sbin/update-ccache-symlinks
     93             echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
     94 
     95           run: |
     96             env PATH="/usr/lib/ccache:$PATH" ASAN_OPTIONS=detect_leaks=0 python3 tests/main.py test