Skip to content

RELEASE: 0.9.5 DrPong #229

RELEASE: 0.9.5 DrPong

RELEASE: 0.9.5 DrPong #229

Workflow file for this run

name: CI
on:
push:
pull_request:
defaults:
run:
shell: bash
jobs:
build-and-test:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
# When set to true, GitHub cancels
# all in-progress jobs if any matrix job fails.
fail-fast: false
matrix:
include:
- name: linux-latest-gcc
os: ubuntu-latest
# local variables
build_mode: regular
os_name: linux
cc: gcc
cxx: g++
- name: linux-latest-clang
os: ubuntu-latest
# local variables
build_mode: regular
os_name: linux
cc: clang
cxx: clang++
# TODO: `podselect` is broken and fails as:
# Can't locate Pod/Select.pm in @INC
#- name: macos-latest-clang
# os: macos-latest
# # local variables
# build_mode: regular
# os_name: osx
# cc: clang
# cxx: clang++
steps:
- name: Checkout Code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- name: Setup apt cache (Linux)
if: startsWith(runner.os, 'Linux')
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: /var/cache/apt
key: ${{ runner.os }}-apt-cache-${{ matrix.os }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-apt-cache-${{ matrix.os }}-
${{ runner.os }}-apt-cache-
- name: Setup Prerequisites
run: |
case ${{ runner.os }} in
Linux*)
sudo apt update
packages=(
clang
cython3
doxygen
lcov
libao-dev
libasound2-dev
#libavahi-client-dev
#libavahi-glib-dev
libavcodec-dev
libboost-dev
#libcdio-cdda-dev
libcunit1-dev
libcurl4-gnutls-dev
#libdiscid0-dev
#libefl-all-dev
libexpat1-dev
libfaad-dev
libfftw3-dev
libflac-dev
libfluidsynth-dev
libglib2.0-dev
libgme-dev
libjack-dev
libmad0-dev
libmms-dev
libmodplug-dev
libmpcdec-dev
#libmpg123-dev
libofa0-dev
#libopusfile-dev
libperl-dev
libpulse-dev
libreadline-dev
libresid-builder-dev
libsamplerate0-dev
libsdl1.2-dev
libshout3-dev
libsidplay2-dev
libsmbclient-dev
libsndfile1-dev
libsqlite3-dev
libssl-dev
libvisual-0.4-dev
libvorbis-dev
libwavpack-dev
libxml2-dev
# for podselect
libpod-parser-perl
python3-dev
python3-all-dev
ruby-all-dev
# CI's valgrind can't parse dwarf output produced by clang:
# # unhandled dwarf2 abbrev form code 0x1b
# Valgrind: debuginfo reader: Possibly corrupted debuginfo file.
# Disable it for now.
#valgrind
)
sudo apt install "${packages[@]}" || for p in "${packages[@]}"; do
# Install packages one by one if the whole bundle failed.
# That should ease detection of individual problematic package
# that pulls in conflicting depend.
echo "Installing $p"
sudo apt install "$p" || exit 1
done
;;
macOS*)
# TODO
;;
esac
- name: Setup Python
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: 3.x
- name: Build
env:
BUILD_MODE: ${{ matrix.build_mode }}
TRAVIS_OS_NAME: ${{ matrix.os_name }}
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
run: utils/travis-build.sh build