Skip to content

palettes: add "Hotdog Stand" palette #5

palettes: add "Hotdog Stand" palette

palettes: add "Hotdog Stand" palette #5

Workflow file for this run

name: Ubuntu
on:
push:
pull_request:
workflow_dispatch:
jobs:
test:
# TODO test more variants; we should be regularly testing
# - dynamic load / linked variants, for libraries
# - maybe others as well; possibly we can force-disable
# stuff like avx2 to be able to test MOAR variants
# ALSO for the test suite, we need to have a public API
# that tests whether each given backend works as it
# should (as long as it initializes fine). we should also
# have a test that does a sanity check for the C time
# library, e.g. time() -> localtime() -> mktime() should
# ALWAYS return the same value as was returned by time().
# ALSO ALSO, we need to test video blitters; in the case
# of asan it would also be nice to do a full render of
# a song (or multiple songs) to make sure we don't
# overstep any memory boundaries
strategy:
fail-fast: false
matrix:
threads: [
{ flag: '--disable-threads', name: '' },
{ flag: '--enable-threads', name: '-threaded' },
]
asan: [
# We want two builds, one with asan on and the other with it off
{ flag: '', name: '' },
{ flag: '-fsanitize=address', name: '-asan' },
]
sys: [
# TODO add more hosts
{ host: ubuntu-22.04 },
]
concurrency:
group: ${{github.ref}}-${{github.workflow}}-${{matrix.sys.host}}-${{matrix.sys.compiler}}${{matrix.threads.name}}${{matrix.asan.name}}
cancel-in-progress: true
runs-on: ${{matrix.sys.host}}
steps:
- name: 'Install dependencies'
run: |
sudo apt-get update
sudo apt-get install --fix-missing libutf8proc-dev libjack-jackd2-dev build-essential automake autoconf autoconf-archive libxxf86vm-dev libsdl2-dev libsdl1.2-dev libasound2-dev libflac-dev git libtool zip wget
- name: 'Checkout'
uses: actions/checkout@v4
- name: 'autoreconf -i'
run: autoreconf -i
- name: 'Build Schism'
env:
THREAD_FLAG: ${{ matrix.threads.flags }}
CFLAGS: '${{ matrix.asan.flag }} -g -O2'
LDFLAGS: '${{ matrix.asan.flag }}'
run: |
mkdir -p build
cd build
../configure --with-flac --with-alsa --with-jack --enable-tests
make
cd ..
- name: 'Run test suite'
run: |
# this should fail with an error code if any of the tests fail.
cd build
./schismtrackertest
cd ..
ubuntu:
# TODO for release variants, it would be nice to link against
# either a very old glibc (backwards compatibility is a fuck)
# OR we can static link against musl libc. or we could not
# care and just build an AppImage. Not sure, but either way
# it would be better than the ./run.sh hack --paper
runs-on: ubuntu-22.04
steps:
- name: 'Install dependencies'
run: |
sudo apt-get update
sudo apt-get install --fix-missing libutf8proc-dev libjack-jackd2-dev build-essential automake autoconf autoconf-archive libxxf86vm-dev libsdl2-dev libsdl1.2-dev libasound2-dev libflac-dev git libtool zip wget
- name: 'Checkout'
uses: actions/checkout@v4
- name: 'Get date of latest commit'
id: date
run: echo "date=$(git log -n 1 --date=short --format=format:%cd | sed 's/\(....\)-\(..\)-\(..\).*/\1\2\3/')" >> $GITHUB_OUTPUT
- name: 'autoreconf -i'
run: autoreconf -i
- name: 'Build Schism binaries'
run: |
mkdir -p build
cd build
../configure --with-flac --with-alsa --with-jack
make
cd ..
- name: 'Create package'
run: |
cd build
strip -S schismtracker
cd ..
cp build/schismtracker .
cp docs/configuration.md .
cp sys/posix/schismtracker.1 .
cp /usr/lib/x86_64-linux-gnu/libutf8proc.so.2 /usr/lib/x86_64-linux-gnu/libFLAC.so.8 /usr/lib/x86_64-linux-gnu/libogg.so.0 .
cp sys/fd.org/schism.desktop .
cp icons/schism-icon-128.png .
wget https://raw.githubusercontent.com/xiph/flac/master/COPYING.Xiph
cp .github/scripts/run.sh .github/scripts/install.sh .
chmod +x run.sh
chmod +x install.sh
zip schismtracker.zip configuration.md COPYING COPYING.Xiph README.md schismtracker.1 schismtracker schism.desktop schism-icon-128.png libFLAC.so.8 libogg.so.0 libutf8proc.so.2 run.sh install.sh
- name: 'Upload artifact'
uses: actions/upload-artifact@v4
with:
name: schismtracker-${{ steps.date.outputs.date }}-linux
path: schismtracker.zip
- name: 'Create source tarball'
env:
SCHISM_VERSION: ${{ steps.date.outputs.date }}
run: |
cd build
make distcheck
make dist-gzip
mv "schismtracker-$SCHISM_VERSION.tar.gz" "../schismtracker-$SCHISM_VERSION.source.tar.gz"
- name: 'Upload source tarball'
uses: actions/upload-artifact@v4
with:
name: schismtracker-${{ steps.date.outputs.date }}.source
path: schismtracker-${{ steps.date.outputs.date }}.source.tar.gz