Add initial build for pdcurses version #224
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Integration | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.config.shell }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: Linux (libsixel) | |
os: ubuntu-latest | |
shell: bash | |
suffix: "" | |
sixel: true | |
- name: Linux (no libsixel) | |
os: ubuntu-latest | |
shell: bash | |
suffix: "" | |
sixel: false | |
- name: Linux (pdcurses) | |
os: ubuntu-latest | |
shell: bash | |
make_opts: "-DUSE_PDCURSES=1" | |
suffix: "" | |
sixel: false | |
build_pdcurses: true | |
- name: macOS arm64 | |
os: macos-13 | |
shell: bash | |
suffix: "-macos-x86_64" | |
sixel: true | |
- name: macOS x86-64 | |
os: macos-latest | |
shell: bash | |
suffix: "-macos-arm64" | |
sixel: true | |
steps: | |
- name: Install build dependencies (Homebrew, macOS) | |
if: runner.os == 'macOS' | |
run: brew install -q libsndfile ncurses libpng pandoc | |
- name: Install build dependencies (apt, Linux) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt update | |
sudo apt -q install libsndfile1-dev libncurses-dev libpng-dev \ | |
gcc pkg-config | |
- name: Install libsixel (Homebrew, macOS) | |
if: runner.os == 'macOS' && matrix.config.sixel | |
run: brew install -q libsixel | |
- name: Install libsixel (apt, Linux) | |
if: runner.os == 'Linux' && matrix.config.sixel | |
run: sudo apt -q install libsixel-dev | |
- name: Build pdcurses | |
if: matrix.config.build_pdcurses | |
run: | | |
cd pdcurses/x11 | |
sed -i .bak "s/-lc//" Makefile.in | |
./configure --prefix=/tmp/pdcinst | |
make | |
make install | |
- uses: actions/checkout@v4 | |
- name: Find Git version | |
id: version | |
run: | | |
if git describe --exact-match --tags >/dev/null; then | |
VERSION=$(git describe --exact-match --tags) | |
VERSION=${VERSION/#wadgadget-/} | |
else | |
VERSION=$(git rev-parse --short HEAD) | |
fi | |
VERSION=$VERSION${{ matrix.config.suffix }} | |
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | |
- name: make | |
run: | | |
PATH="/tmp/pdcinst/bin:$PATH" \ | |
make -C src -j8 ${{matrix.config.make_opts}} | |
- name: Build package (macOS) | |
if: runner.os == 'macOS' | |
run: make -C pkg/macos | |
- name: Upload build (macOS) | |
if: runner.os == 'macOS' | |
uses: actions/upload-artifact@v4 | |
with: | |
path: "pkg/macos/wadgadget.dmg" | |
name: wadgadget-${{steps.version.outputs.VERSION}} |