libkernaux/.github/workflows/test.yml

69 lines
2.1 KiB
YAML

name: Test
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
# TODO: something is wrong with TCC, Multiboot 2 info tag struct size
#cc: ['gcc', 'clang', 'tcc']
cc: ['gcc', 'clang']
opt: ['', '-O0', '-O3']
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: dependencies
run: sudo apt-get -y install clang tcc
- name: autogen
run: ./autogen.sh
- name: configure
run: ./configure --enable-tests CC='${{matrix.cc}}' CFLAGS='${{matrix.opt}} -fPIC'
- name: make
run: make
- name: check
run: make check || (cat test-suite.log && false)
- name: install
run: sudo make install
- name: bundle
working-directory: pkgs/ruby
run: bundle install
- name: rake compile
working-directory: pkgs/ruby
run: rake compile
- name: test & lint
working-directory: pkgs/ruby
run: rake
- name: test
working-directory: pkgs/rust
run: cargo test
cppcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: dependencies
run: sudo apt-get -y install cppcheck
- name: cppcheck source code
# TODO: don't suppress "src/printf.c"
run: cppcheck --quiet --error-exitcode=1 --std=c99 --enable=warning,style,performance,portability --suppress='*:src/printf.c' include/ src/
- name: cppcheck examples
run: cppcheck --quiet --error-exitcode=1 --std=c99 --enable=warning,style,performance,portability --suppress=duplicateExpression --suppress=staticStringCompare examples/
- name: cppcheck tests
run: cppcheck --quiet --error-exitcode=1 --std=c99 --enable=warning,style,performance,portability --suppress=unusedStructMember tests/
- name: cppcheck ruby
run: cppcheck --quiet --error-exitcode=1 --std=c99 --enable=warning,style,performance,portability pkgs/ruby/