Dont use shared libffi and libreadline on linux builds #172
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: build | |
on: [push, pull_request] | |
env: | |
CACHE_VERSION_LINUX: 10 | |
CACHE_VERSION_MACOS: 10 | |
CACHE_VERSION_WIN64: 10 | |
DEBIAN_FRONTEND: noninteractive | |
PAWPAW_SKIP_TESTS: 1 | |
RELEASE_OS_LINUX: ubuntu:18.04 | |
RELEASE_OS_MAC: macos-11 | |
RELEASE_OS_WIN64: ubuntu:22.04 | |
jobs: | |
linux-x86_64: | |
strategy: | |
matrix: | |
include: | |
- container: debian:12 | |
- container: ubuntu:18.04 | |
- container: ubuntu:20.04 | |
- container: ubuntu:22.04 | |
- container: ubuntu:23.10 | |
runs-on: ubuntu-latest | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: Install git | |
run: | | |
apt-get update -qq && apt-get install -yqq --no-install-recommends git | |
if [ "${{ matrix.container }}" = "ubuntu:18.04" ]; then | |
apt-get install -yqq --no-install-recommends curl libpcre2-8-0 software-properties-common | |
add-apt-repository -y ppa:ubuntu-toolchain-r/test | |
apt-get install -yqq g++-11 | |
curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git_2.34.1-1ubuntu1~bpo18.04.1~ppa1_amd64.deb | |
curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git-man_2.34.1-1ubuntu1~bpo18.04.1~ppa1_all.deb | |
dpkg -i *.deb | |
rm *.deb | |
fi | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up cache | |
id: cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: linux-x86_64-v${{ env.CACHE_VERSION_LINUX }} | |
- name: Set up dependencies | |
run: | | |
./src/PawPaw/.github/workflows/bootstrap-deps.sh linux-x86_64 | |
apt-get install -yqq p7zip-full unzip wget xdg-user-dirs zip | |
if [ "${{ matrix.container }}" = "ubuntu:18.04" ]; then | |
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 60 --slave /usr/bin/g++ g++ /usr/bin/g++-11 | |
update-alternatives --install /usr/bin/x86_64-linux-gnu-gcc x86_64-linux-gnu-gcc /usr/bin/gcc-11 60 --slave /usr/bin/x86_64-linux-gnu-g++ x86_64-linux-gnu-g++ /usr/bin/g++-11 | |
fi | |
- name: Build dependencies | |
run: | | |
./src/PawPaw/bootstrap-mod.sh linux-x86_64 && ./src/PawPaw/.cleanup.sh linux-x86_64 | |
- name: Build | |
run: | | |
make | |
- name: Validate plugins | |
run: | | |
./utils/plugin-builder/validate-plugins.sh | |
# FIXME dirty carla leaves temp folders around | |
rm -rf *.tmp | |
- name: Set sha8 | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- name: Pack | |
run: | | |
mkdir mod-app-${{ github.event.pull_request.number || env.SHA8 }}-linux-x86_64 | |
mv build mod-app-${{ github.event.pull_request.number || env.SHA8 }}-linux-x86_64/mod-app | |
cp utils/linux/mod-app.* mod-app-${{ github.event.pull_request.number || env.SHA8 }}-linux-x86_64/ | |
tar chJf mod-app-${{ github.event.pull_request.number || env.SHA8 }}-linux-x86_64.tar.xz mod-app-${{ github.event.pull_request.number || env.SHA8 }}-linux-x86_64 | |
- uses: actions/upload-artifact@v3 | |
if: ${{ matrix.container }} == ${{ env.RELEASE_OS_LINUX }} | |
with: | |
name: mod-app-${{ github.event.pull_request.number || env.SHA8 }}-linux-x86_64 | |
path: | | |
*.tar.xz | |
- uses: softprops/action-gh-release@v1 | |
if: ${{ matrix.container }} == ${{ env.RELEASE_OS_LINUX }} && startsWith(github.ref, 'refs/tags/') | |
with: | |
tag_name: ${{ github.ref_name }} | |
name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
files: | | |
*.tar.xz | |
macos: | |
strategy: | |
matrix: | |
include: | |
- os: macos-11 | |
- os: macos-12 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up cache | |
id: cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: macos-v${{ env.CACHE_VERSION_MACOS }} | |
- name: Set up dependencies | |
run: | | |
./src/PawPaw/.github/workflows/bootstrap-deps.sh macos-universal-10.15 | |
brew install p7zip wget | |
- name: Build dependencies | |
run: | | |
./src/PawPaw/bootstrap-mod.sh macos-universal-10.15 && ./src/PawPaw/.cleanup.sh macos-universal-10.15 | |
- name: Build | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
make macos | |
- name: Validate plugins | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
./utils/plugin-builder/validate-plugins.sh | |
# FIXME dirty carla leaves temp folders around | |
rm -rf *.tmp | |
- name: Set sha8 | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- name: Pack | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
./utils/macos/macos-dmg.sh | |
mv mod-app-*.dmg mod-app-${{ github.event.pull_request.number || env.SHA8 }}-macOS.dmg | |
- uses: actions/upload-artifact@v3 | |
if: ${{ matrix.os }} == ${{ env.RELEASE_OS_MAC }} | |
with: | |
name: mod-app-${{ github.event.pull_request.number || env.SHA8 }}-macOS | |
path: | | |
*.dmg | |
- uses: softprops/action-gh-release@v1 | |
if: ${{ matrix.os }} == ${{ env.RELEASE_OS_MAC }} && startsWith(github.ref, 'refs/tags/') | |
with: | |
tag_name: ${{ github.ref_name }} | |
name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
files: | | |
*.dmg | |
win64: | |
strategy: | |
matrix: | |
include: | |
# FIXME enable and use debian:12 for releases | |
#- container: debian:12 | |
- container: ubuntu:22.04 | |
#- container: ubuntu:23.10 | |
runs-on: ubuntu-latest | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: Update git | |
run: | | |
apt-get update -qq && apt-get install -yqq git | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up cache | |
id: cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: win64-v${{ env.CACHE_VERSION_WIN64 }} | |
- name: Set up dependencies | |
run: | | |
./src/PawPaw/.github/workflows/bootstrap-deps.sh win64 | |
apt-get install -yqq p7zip-full unzip wget xdg-user-dirs xvfb zip | |
- name: Build dependencies | |
run: | | |
./src/PawPaw/bootstrap-mod.sh win64 && ./src/PawPaw/.cleanup.sh win64 | |
- name: Build | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
make win64 | |
- name: Validate plugins | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
./utils/plugin-builder/validate-plugins.sh | |
# FIXME dirty carla leaves temp folders around | |
rm -rf *.tmp | |
- name: Set sha8 | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- name: Pack | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
xvfb-run ./utils/win64/win64-installer.sh | |
mv mod-app-*.exe mod-app-${{ github.event.pull_request.number || env.SHA8 }}-win64.exe | |
rm -rf build/innosetup-* | |
mv build mod-app-${{ github.event.pull_request.number || env.SHA8 }}-win64 | |
zip -r -9 mod-app-${{ github.event.pull_request.number || env.SHA8 }}-win64.zip mod-app-${{ github.event.pull_request.number || env.SHA8 }}-win64 | |
- uses: actions/upload-artifact@v3 | |
if: ${{ matrix.container }} == ${{ env.RELEASE_OS_WIN64 }} | |
with: | |
name: mod-app-${{ github.event.pull_request.number || env.SHA8 }}-win64 | |
path: | | |
*.exe | |
*.zip | |
- uses: softprops/action-gh-release@v1 | |
if: ${{ matrix.container }} == ${{ env.RELEASE_OS_WIN64 }} && startsWith(github.ref, 'refs/tags/') | |
with: | |
tag_name: ${{ github.ref_name }} | |
name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
files: | | |
*.exe |