mirror of
https://github.com/hugsy/gef.git
synced 2026-10-12 02:15:57 +00:00
## Description Imgur is blocked in UK since September 2025 (see #1200) Move imgur hosted images to local folder instead. Fixes #1200
97 lines
2.9 KiB
YAML
97 lines
2.9 KiB
YAML
name: Tests
|
|
|
|
env:
|
|
GEF_CI_CACHE_DIR: /tmp
|
|
PY_VER: 0
|
|
GEF_CI_NB_CPU: 1
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner:
|
|
- ubuntu-24.04
|
|
- ubuntu-22.04
|
|
- ubuntu-24.04-arm
|
|
- ubuntu-22.04-arm
|
|
|
|
name: "Run Unit tests on ${{ matrix.runner }}"
|
|
runs-on: ${{ matrix.runner }}
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
steps:
|
|
- uses: actions/[email protected]
|
|
|
|
- name: Install python and toolchain
|
|
run: |
|
|
export NEEDRESTART_MODE=n
|
|
sudo apt-get update
|
|
sudo apt-get install -y gdb-multiarch python3-dev python3-pip python3-wheel python3-setuptools git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user
|
|
|
|
- name: Install python and toolchain
|
|
if: startsWith(matrix.runner, 'ubuntu-24.04')
|
|
run: |
|
|
sudo apt-get install -y python3-full
|
|
|
|
- name: Install python and toolchain
|
|
if: startsWith(matrix.runner, 'ubuntu-24.04') == false
|
|
run: |
|
|
python3 -m pip install pip -U
|
|
|
|
- name: Set runtime environment variables
|
|
run: |
|
|
echo PY_VER=`gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit` >> $GITHUB_ENV
|
|
echo GEF_CI_NB_CPU="`grep -c ^processor /proc/cpuinfo`" >> $GITHUB_ENV
|
|
echo GEF_CI_ARCH="`uname --processor`" >> $GITHUB_ENV
|
|
echo GEF_CI_CACHE_DIR="`python3 -m pip cache dir`" >> $GITHUB_ENV
|
|
|
|
- name: Cache dependencies
|
|
uses: actions/cache@v4
|
|
id: cache-deps
|
|
env:
|
|
cache-name: cache-deps
|
|
with:
|
|
key: ${{ matrix.runner }}-pip-${{ hashFiles('**/requirements.txt') }}
|
|
path: ${{ env.GEF_CI_CACHE_DIR }}
|
|
restore-keys:
|
|
${{ matrix.runner }}-pip-${{ env.cache-name }}-
|
|
${{ matrix.runner }}-pip-
|
|
${{ matrix.runner }}-${{ env.cache-name }}-
|
|
${{ matrix.runner }}-
|
|
|
|
- name: Install python and toolchain
|
|
if: startsWith(matrix.runner, 'ubuntu-24.04') == false
|
|
run: |
|
|
test "${{ env.PY_VER }}" == "0" && exit 1
|
|
mkdir -p ${{ env.GEF_CI_CACHE_DIR }}
|
|
python${{ env.PY_VER }} -m pip install --user --upgrade -r tests/requirements.txt
|
|
|
|
- name: Install Python Requirements
|
|
if: startsWith(matrix.runner, 'ubuntu-24.04')
|
|
run: |
|
|
test "${{ env.PY_VER }}" == "0" && exit 1
|
|
mkdir -p ${{ env.GEF_CI_CACHE_DIR }}
|
|
python${{ env.PY_VER }} -m pip install --break-system-packages --user --upgrade -r tests/requirements.txt
|
|
|
|
- name: Setup GEF
|
|
run: |
|
|
echo "source $(pwd)/gef.py" > ~/.gdbinit
|
|
gdb -q -ex 'gef missing' -ex 'gef help' -ex 'gef config' -ex start -ex continue -ex quit /bin/pwd
|
|
|
|
- name: Run Tests
|
|
run: |
|
|
make -C tests/binaries -j ${{ env.GEF_CI_NB_CPU }}
|
|
python${{ env.PY_VER }} -m pytest --forked -n ${{ env.GEF_CI_NB_CPU }} -v -m "not benchmark" tests/
|