Skip to content

perf: introduce stack cache #648

perf: introduce stack cache

perf: introduce stack cache #648

Workflow file for this run

name: Checks
on:
push:
branches:
- master
- devel
pull_request:
jobs:
check-manpage:
runs-on: ubuntu-20.04
name: Check manpage
steps:
- uses: actions/checkout@v3
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get -y install libunwind-dev binutils-dev libiberty-dev help2man
- name: Compile Austin
run: |
autoreconf --install
./configure
make
- name: Generate manpage
run: bash doc/genman.sh
- name: Check manpage
run: git diff -I".* DO NOT MODIFY.*" -I"[.]TH AUSTIN.*" --exit-code src/austin.1
cppcheck-linux:
runs-on: ubuntu-20.04
name: Static code analysis (Linux)
env:
cppcheck-version: 2.10.3
steps:
- uses: actions/checkout@v3
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get -y install libpcre3-dev
- name: Restore cppcheck build
id: cppcheck-build-restore
uses: actions/cache/restore@v3
with:
path: |
${{ github.workspace }}/cppcheck
key: ${{ runner.os }}-cppcheck-${{ env.cppcheck-version }}
- name: Check out cppcheck
uses: actions/checkout@v3
with:
repository: danmar/cppcheck
ref: ${{ env.cppcheck-version }}
path: ${{ github.workspace }}/cppcheck
- name: Compile cppcheck
run: |
sudo apt-get update
sudo apt-get -y install libpcre3-dev
cd cppcheck
make MATCHCOMPILER=yes FILESDIR=/usr/share/cppcheck HAVE_RULES=yes CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
cd -
- name: Save cppcheck build
id: cppcheck-build-save
uses: actions/cache/save@v3
with:
path: |
${{ github.workspace }}/cppcheck
key: ${{ runner.os }}-cppcheck-${{ env.cppcheck-version }}
- name: Check source code
run: ${{ github.workspace }}/cppcheck/cppcheck -q -f --error-exitcode=1 --inline-suppr src
cppcheck-macos:
name: Static code analysis (macOS)
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Install cppcheck
run: brew install cppcheck
- name: Check source code
run: cppcheck -q -f --error-exitcode=1 --inline-suppr src
codespell:
runs-on: ubuntu-20.04
name: Codespell
steps:
- uses: actions/checkout@v3
- uses: "actions/setup-python@v4"
with:
python-version: "3.9"
- name: Install codespell
run: pip install codespell
- name: Check source code spelling
run: codespell -I .github/workflows/wordlist.txt -S "src/python/*" src
formatting-tests:
runs-on: ubuntu-20.04
name: Formatting (tests)
steps:
- uses: actions/checkout@v3
- uses: "actions/setup-python@v4"
with:
python-version: "3.10"
- name: Install black
run: pip install black
- name: Check formatting
run: black --check --exclude=test/targets test/
linting-tests:
runs-on: ubuntu-20.04
name: Linting (tests)
steps:
- uses: actions/checkout@v3
- uses: "actions/setup-python@v4"
with:
python-version: "3.10"
- name: Install flake8
run: pip install flake8
- name: Lint code
run: flake8 --config test/.flake8 test/
coverage:
runs-on: ubuntu-20.04
name: Code coverage
steps:
- uses: actions/checkout@v3
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get -y install libunwind-dev binutils-dev libiberty-dev gcovr
- name: Install test dependencies
run: |
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get -y install \
valgrind \
python3.{8..12} \
python3.10-full python3.10-dev
python3.10 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r test/requirements.txt
- name: Compile Austin
run: |
autoreconf --install
./configure --enable-coverage
make
- name: Run tests
run: |
echo "core.%p" | sudo tee /proc/sys/kernel/core_pattern
ulimit -c unlimited
.venv/bin/pytest -sr fE -n auto || true
sudo -E env PATH="$PATH" .venv/bin/pytest -sr fE -n auto || true
- name: Generate Cobertura report
run: gcovr --xml ./cobertura.xml -r src/
- name: Upload report to Codecov
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./cobertura.xml
verbose: true
check-cog:
runs-on: ubuntu-20.04
name: Check cog output
steps:
- uses: actions/checkout@v3
- name: Install cog
run: pip install cogapp
- name: Compile Austin
run: |
autoreconf --install
./configure
make
- name: Run cog check
run: bash scripts/cog.sh --check