Skip to content

feat: unpack assimp embeded texture, add strategy for path resolve #76

feat: unpack assimp embeded texture, add strategy for path resolve

feat: unpack assimp embeded texture, add strategy for path resolve #76

Workflow file for this run

name: Linux Build
on:
push:
paths-ignore:
- 'LICENSE'
- 'README.md'
- '.github/workflows/windows.yml'
env:
FREEALUT_VERSION: 1.1.0
OPENAL_VERSION: 1.23.1
SBCL_VERSION: 2.1.9
SDL_VERSION: 2.0.12
jobs:
build:
#if: ${{ false }} # disable for now
runs-on: ubuntu-20.04 # 20.04 glibc 2.31 - 22.10 glibc 2.36
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
lfs: true
- name: APT deps
run: |
sudo apt-get update
sudo apt-get install -y libassimp5 sbcl
- name: mkdir
run: |
mkdir -pv ~/Downloads
mkdir -pv ~/sbcl
mkdir -pv ~/quicklisp
mkdir -pv ~/.cache/common-lisp
shell: bash
- name: Get Current Month
id: current-month
run: echo "::set-output name=value::$(date -u '+%Y-%m')"
- name: Cache SBCL Setup
id: cache
uses: actions/cache@v2
env:
cache-name: cache-sbcl-compressed-sdl
with:
path: |
~/Downloads/
~/quicklisp
~/.cache/common-lisp/
~/sbcl
key: "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-${{ runner.os }}"
- name: Restore Path To Cached Files
run: |
echo $HOME/sbcl/bin >> $GITHUB_PATH
if: steps.cache.outputs.cache-hit == 'true'
# I believe I do this to have it less dynlink than ubuntu's default
- name: Build SDL ${{ env.SDL_VERSION }}
run: |
cd ~/Downloads
wget https://www.libsdl.org/release/SDL2-${{ env.SDL_VERSION }}.tar.gz
tar xzf SDL2-${{ env.SDL_VERSION }}.tar.gz
cd SDL2-${{ env.SDL_VERSION }}
./configure
make
if: steps.cache.outputs.cache-hit != 'true'
- name: Install SDL ${{ env.SDL_VERSION }}
run: |
cd ~/Downloads/SDL2-${{ env.SDL_VERSION }}
sudo make install prefix=/usr
# Ubuntu's version links OpenAL with libsndio.so
- name: Build OpenAL ${{ env.OPENAL_VERSION }}
run: |
cd ~/Downloads
wget https://openal-soft.org/openal-releases/openal-soft-${{ env.OPENAL_VERSION }}.tar.bz2
tar xjf openal-soft-${{ env.OPENAL_VERSION }}.tar.bz2
cd openal-soft-${{ env.OPENAL_VERSION }}
cd build
cmake --install-prefix=/usr -DALSOFT_EXAMPLES=OFF ..
make
if: steps.cache.outputs.cache-hit != 'true'
- name: Install OpenAL ${{ env.OPENAL_VERSION }}
run: |
cd ~/Downloads/openal-soft-${{ env.OPENAL_VERSION }}/build
sudo make install
# Just building it because this builds against OpenAL
- name: Build Freealut ${{ env.FREEALUT_VERSION }}
run: |
cd ~/Downloads
wget http://deb.debian.org/debian/pool/main/f/freealut/freealut_${{ env.FREEALUT_VERSION }}.orig.tar.gz
tar xzf freealut_${{ env.FREEALUT_VERSION }}.orig.tar.gz
cd freealut-${{ env.FREEALUT_VERSION }}
sh autogen.sh
./configure
make
if: steps.cache.outputs.cache-hit != 'true'
- name: Install Freealut ${{ env.FREEALUT_VERSION }}
run: |
cd ~/Downloads/freealut-${{ env.FREEALUT_VERSION }}
sudo make install prefix=/usr
- name: Download SBCL ${{ env.SBCL_VERSION }}
run: |
cd ~/Downloads
wget http://downloads.sourceforge.net/project/sbcl/sbcl/${{ env.SBCL_VERSION }}/sbcl-${{ env.SBCL_VERSION }}-source.tar.bz2
tar xjf sbcl-${{ env.SBCL_VERSION }}-source.tar.bz2
if: steps.cache.outputs.cache-hit != 'true'
- name: Install SBCL ${{ env.SBCL_VERSION }}
run: |
cd ~/Downloads/sbcl-${{ env.SBCL_VERSION }}
sh make.sh --with-sb-core-compression
unset SBCL_HOME
INSTALL_ROOT=~/sbcl ./install.sh
if: steps.cache.outputs.cache-hit != 'true'
- name: Install quicklisp
run: |
cd ~/Downloads
export PATH="$HOME/sbcl/bin:${PATH}"
wget https://beta.quicklisp.org/quicklisp.lisp
sbcl --non-interactive \
--eval '(load "quicklisp.lisp")' \
--eval '(quicklisp-quickstart:install)' \
--eval '(ql-util:without-prompting (ql:add-to-init-file))' \
--eval '(ql:update-all-dists)'
if: steps.cache.outputs.cache-hit != 'true'
- name: Get LISP deps
run: |
cd ~/quicklisp/local-projects/
(test -d cl-openal) || git clone -b fixalut --depth=1 https://github.com/azimut/cl-openal
( cd cl-openal/ ; git pull )
(test -d nepal) || git clone --depth=1 https://github.com/azimut/nepal
( cd nepal/ ; git pull )
(test -d rocketman) || git clone --depth=1 https://github.com/azimut/rocketman
( cd rocketman/ ; git pull )
(test -d cepl) || git clone --depth=1 https://github.com/azimut/cepl
( cd cepl/ ; git pull )
(test -d glsl-spec) || git clone --depth=1 https://github.com/azimut/glsl-spec
( cd glsl-spec/ ; git pull )
(test -d cepl.fond) || git clone --depth=1 https://github.com/cbaggers/cepl.fond
( cd cepl.fond/ ; git pull )
(test -d cm) || git clone --depth=1 https://github.com/ormf/cm
( cd cm/ ; git pull )
- name: Build Binary
run: |
export PATH="$HOME/sbcl/bin:${PATH}"
cd bin/
make tar scenic.AppImage
- name: Dev Release
uses: marvinpinto/action-automatic-releases@latest
if: "!startsWith(github.ref, 'refs/tags/')"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest-linux"
prerelease: true
title: "Development Linux Build"
files: |
bin/scenic.AppImage
bin/scenic-Linux.tgz
- name: Stable Release
uses: marvinpinto/action-automatic-releases@latest
if: "startsWith(github.ref, 'refs/tags/')"
with:
prerelease: false
repo_token: "${{ secrets.GITHUB_TOKEN }}"
files: |
bin/scenic.AppImage
# - name: DEBUG SHELL
# uses: mxschmitt/action-tmate@v3
# if: ${{ failure() }}