Skip to content

Commit

Permalink
[CI] Github Action for lint, build and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
yparitcher authored and Frenzie committed Jan 2, 2022
1 parent e7c842d commit ab2fa6f
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 2 deletions.
1 change: 0 additions & 1 deletion .ci/test_script.sh
Expand Up @@ -10,7 +10,6 @@ if [ "$TARGET" = "android" ]; then
exit 1
fi
elif [ "$EMULATE_READER" = "1" ]; then
cp build/*/luajit "${HOME}/.luarocks/bin"
# install tesseract trained language data for testing OCR functionality
travis_retry wget https://src.fedoraproject.org/repo/pkgs/tesseract/tesseract-ocr-3.02.eng.tar.gz/3562250fe6f4e76229a329166b8ae853/tesseract-ocr-3.02.eng.tar.gz
tar zxf tesseract-ocr-3.02.eng.tar.gz
Expand Down
123 changes: 123 additions & 0 deletions .github/workflows/ci.yml
@@ -0,0 +1,123 @@
name: CI tests

defaults:
run:
shell: bash

on: [push, pull_request]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: "Path: ~/local/bin"
run: echo ~/local/bin >> $GITHUB_PATH

- name: Install luarocks
run: curl -sSL "https://raw.githubusercontent.com/koreader/virdevenv/master/docker/ubuntu/baseimage/install_luarocks.sh" | sudo bash

- name: Install Lint
run: curl -sSL "https://raw.githubusercontent.com/koreader/virdevenv/master/docker/ubuntu/baseimage/install_lint.sh" | bash -s ~

- name: Check out Git repository
uses: actions/checkout@v2

- name: lint
run: source .ci/lint_script.sh

emulator:
name: ${{ matrix.name }} ${{ (contains(matrix.os, 'ubuntu-18.04') && '(ubuntu-18.04)') || '' }}
runs-on: ${{ matrix.os }}
continue-on-error: true
env:
EMULATE_READER: "1"
CC: ${{ matrix.CC }}
CXX: ${{ matrix.CXX }}

steps:
- name: KODEBUG
if: contains(matrix.name, 'debug')
run: echo "KODEBUG=1" >> $GITHUB_ENV

- name: USE_MAKE
if: contains(matrix.name, 'make')
run: echo "USE_MAKE=1" >> $GITHUB_ENV

- name: CLANG
if: contains(matrix.name, 'clang')
run: echo "CC=clang-12" >> $GITHUB_ENV && echo "Cxx=clang++-12" >> $GITHUB_ENV

- name: Install deps
run: sudo apt-get install gettext ccache ninja-build libtool-bin

- name: Install luarocks
run: curl -sSL "https://raw.githubusercontent.com/koreader/virdevenv/master/docker/ubuntu/baseimage/install_luarocks.sh" | sudo bash

- name: Cache
uses: actions/cache@v2
with:
path: ~/.ccache
key: ${{ matrix.os }}-build-${{ matrix.name }}

- name: Check out Git repository
uses: actions/checkout@v2

- name: fetchthirdparty
run: make fetchthirdparty

- name: Build
run: make all

- name: Test
run: source .ci/test_script.sh
strategy:
matrix:
os: [ubuntu-latest]
name: [ emu_gcc_ninja, emu_gcc_ninja_debug, emu_gcc_make, emu_clang_ninja]
# The test currently segfault on ubuntu 18.04. If fixed this can be enabled.
#include:
# - name: emu_gcc_ninja
# os: ubuntu-18.04

xcompile:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Download toolchain
run: wget -q https://github.com/koreader/koxtoolchain/releases/latest/download/${{ matrix.name }}.zip && unzip -p ${{ matrix.name }}.zip | tar -C ~ -xz

- name: export toolchain
run: echo ~/x-tools/arm-${{ matrix.name }}-linux-gnueabi${{ matrix.toolchain }}/bin >> $GITHUB_PATH

- name: Install deps
run: sudo apt-get install gettext ccache ninja-build gcc-multilib luarocks

- name: Cache
uses: actions/cache@v2
with:
path: ~/.ccache
key: ${{ runner.os }}-build-${{ matrix.name }}

- name: Check out Git repository
uses: actions/checkout@v2

- name: fetchthirdparty
run: make fetchthirdparty

- name: Build
run: make TARGET=${{ matrix.target || matrix.name }} all
strategy:
fail-fast: false
matrix:
name: [ cervantes, kindlepw2, pocketbook]
include:
- name: kindle
target: kindle-legacy
- name: kindle5
target: kindle
- name: kobo
toolchain: hf
- name: remarkable
toolchain: hf

2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -273,7 +273,7 @@ $(OUTPUT_DIR)/spec/base:

test: $(OUTPUT_DIR)/spec $(OUTPUT_DIR)/.busted
cd $(OUTPUT_DIR) && \
./luajit $(shell which busted) \
$(shell which busted) --lua=./luajit \
--exclude-tags=notest \
-o gtest ./spec/base/unit

Expand Down

0 comments on commit ab2fa6f

Please sign in to comment.