thorvg/.github/workflows/actions.yml
JunsuChoi e0c3fafb18
infra bot: Add Memcheck bot (AddressSanitizer)
If a leak occurs in the test result, the bot notifies the PR as a comment.
This notify may not be directly related to the created current PR.
2021-11-17 18:52:15 +09:00

117 lines
3.2 KiB
YAML

name: Build Linux
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install ninja-build gcc-multilib g++-multilib
sudo apt-get install python3-pip
pip3 install meson --user
- name: Install TurboJPEG library
run: sudo apt-get install libturbojpeg0-dev libjpeg8-dev
- name: Build
run: |
meson . build -Dlog=true -Dloaders="svg, tvg, png, jpg" -Dsavers="tvg"
cd build
sudo ninja -C . install
examples:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Install Packages
run: |
sudo apt-get update
sudo add-apt-repository ppa:niko2040/e19
sudo apt-get install ninja-build gcc-multilib g++-multilib
sudo apt-get install libefl-dev
sudo apt-get install python3-pip
pip3 install meson --user
- name: Install TurboJPEG library
run: sudo apt-get install libturbojpeg0-dev libjpeg8-dev
- name: Build
run: |
meson . build -Dexamples=true -Dloaders="svg, tvg, png, jpg" -Dsavers="tvg"
cd build
sudo ninja -C . install
unit_test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install ninja-build gcc-multilib g++-multilib libgtest-dev cmake cmake-data libasan5 valgrind
sudo apt-get install curl jq
sudo apt-get install software-properties-common
sudo apt-get install python3-pip
pip3 install meson --user
- name: Install TurboJPEG library
run: sudo apt-get install libturbojpeg0-dev libjpeg8-dev
- name: Install-ThorVG
run: |
meson . build -Dloaders="svg, tvg, png, jpg" -Dsavers="tvg" -Dbindings="capi"
cd build
sudo ninja -C . install
cd ..
sudo rm -rf ./build
- name: Build
run: |
meson . build -Dtests=true -Dloaders="svg, tvg, png, jpg" -Dsavers="tvg" -Dbindings="capi" --errorlogs
cd build
sudo ninja -C . install test
- uses: actions/upload-artifact@v2
with:
name: UnitTestReport
path: build/meson-logs/testlog.txt
- name: Run memcheck Script(valgrind)
run: |
export PATH=$PATH:~/.local/bin/
chmod +x "${GITHUB_WORKSPACE}/.github/workflows/memcheck_valgrind.sh"
"${GITHUB_WORKSPACE}/.github/workflows/memcheck_valgrind.sh"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build & Run memcheck Script(ASAN)
run: |
sudo rm -rf ./build
meson . build -Db_sanitize="address,undefined" -Dloaders="all" -Dsavers="tvg" -Dtests="true" -Dbindings="capi"
cd build
sudo ninja -C . install
export PATH=$PATH:~/.local/bin/
chmod +x "${GITHUB_WORKSPACE}/.github/workflows/memcheck_asan.sh"
"${GITHUB_WORKSPACE}/.github/workflows/memcheck_asan.sh"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}