Remove: [CI] Linux Legacy support (#11882)
Although created not long ago, you battled to be relevant. Sadly, GitHub Runners didn't agree with you. You can't run node20. And that makes you a broken legacy. So many potential. But here we are. Bye Linux Legacy. Thank you for being.pull/661/head
parent
09b66751cf
commit
37fd69b604
@ -1,222 +0,0 @@
|
|||||||
name: Release (Linux, Legacy)
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
survey_key:
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
linux:
|
|
||||||
name: Linux (Legacy)
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
# manylinux2014 is based on CentOS 7, and already has a lot of things
|
|
||||||
# installed and preconfigured. It makes it easier to build OpenTTD.
|
|
||||||
# This distro is based on glibc 2.17, released in 2012.
|
|
||||||
image: quay.io/pypa/manylinux2014_x86_64
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Download source
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: internal-source
|
|
||||||
|
|
||||||
- name: Unpack source
|
|
||||||
run: |
|
|
||||||
tar -xf source.tar.gz --strip-components=1
|
|
||||||
|
|
||||||
# curl is too old for most of the tools to work properly. For example,
|
|
||||||
# rust-toolchain doesn't work properly, neither vcpkg caching.
|
|
||||||
# The easier solution here is to upgrade curl.
|
|
||||||
- name: Update curl
|
|
||||||
run: |
|
|
||||||
yum install -y \
|
|
||||||
openssl-devel \
|
|
||||||
# EOF
|
|
||||||
|
|
||||||
mkdir /curl
|
|
||||||
cd /curl
|
|
||||||
curl -o curl-7.81.0.zip https://curl.se/download/curl-7.81.0.zip
|
|
||||||
unzip curl-7.81.0.zip
|
|
||||||
cd curl-7.81.0
|
|
||||||
./configure --with-ssl --with-zlib --prefix=/usr --libdir=/usr/lib64
|
|
||||||
make -j $(nproc)
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Install Rust toolchain
|
|
||||||
uses: dtolnay/rust-toolchain@stable
|
|
||||||
|
|
||||||
- name: Enable Rust cache
|
|
||||||
uses: Swatinem/rust-cache@v2.7.0
|
|
||||||
with:
|
|
||||||
key: legacy
|
|
||||||
|
|
||||||
- name: Setup vcpkg caching
|
|
||||||
uses: actions/github-script@v7
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
|
||||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
|
||||||
core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;x-gha,readwrite')
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
echo "::group::Install system dependencies"
|
|
||||||
# perl-IPC-Cmd, wget, and zip are needed to run vcpkg.
|
|
||||||
# autoconf-archive is needed to build ICU.
|
|
||||||
yum install -y \
|
|
||||||
autoconf-archive \
|
|
||||||
perl-IPC-Cmd \
|
|
||||||
wget \
|
|
||||||
zip \
|
|
||||||
# EOF
|
|
||||||
|
|
||||||
# aclocal looks first in /usr/local/share/aclocal, and if that doesn't
|
|
||||||
# exist only looks in /usr/share/aclocal. We have files in both that
|
|
||||||
# are important. So copy the latter to the first, and we are good to
|
|
||||||
# go.
|
|
||||||
cp /usr/share/aclocal/* /usr/local/share/aclocal/
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# The yum variant of fluidsynth depends on all possible audio drivers,
|
|
||||||
# like jack, ALSA, pulseaudio, etc. This is not really useful for us,
|
|
||||||
# as we route the output of fluidsynth back via our sound driver, and
|
|
||||||
# as such do not use these audio driver outputs at all.
|
|
||||||
# The vcpkg variant of fluidsynth depends on ALSA. Similar issue here.
|
|
||||||
# So instead, we compile fluidsynth ourselves, with as few
|
|
||||||
# dependencies as possible. We do it before anything else is installed,
|
|
||||||
# to make sure it doesn't pick up on any of the drivers.
|
|
||||||
echo "::group::Install fluidsynth"
|
|
||||||
wget https://github.com/FluidSynth/fluidsynth/archive/v2.3.3.tar.gz
|
|
||||||
tar xf v2.3.3.tar.gz
|
|
||||||
(
|
|
||||||
cd fluidsynth-2.3.3
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr
|
|
||||||
cmake --build . -j $(nproc)
|
|
||||||
cmake --install .
|
|
||||||
)
|
|
||||||
|
|
||||||
# The container we use is old enough, that it doesn't know SHF_COMPRESSED.
|
|
||||||
# But, breakpad needs this symbol to exist. So we patch it in our system
|
|
||||||
# libraries.
|
|
||||||
(
|
|
||||||
cd /
|
|
||||||
patch -p1 < ${GITHUB_WORKSPACE}/os/linux/shf-compressed.patch
|
|
||||||
)
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::Install audio drivers"
|
|
||||||
# These audio libs are to make sure the SDL version of vcpkg adds
|
|
||||||
# sound-support; these libraries are not added to the resulting
|
|
||||||
# binary, but the headers are used to enable them in SDL.
|
|
||||||
yum install -y \
|
|
||||||
alsa-lib-devel \
|
|
||||||
jack-audio-connection-kit-devel \
|
|
||||||
pulseaudio-libs-devel \
|
|
||||||
# EOF
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::Install video drivers"
|
|
||||||
# These video libs are to make sure the SDL version of vcpkg adds
|
|
||||||
# video-support; these libraries are not added to the resulting
|
|
||||||
# binary, but the headers are used to enable them in SDL.
|
|
||||||
yum install -y \
|
|
||||||
libX11-devel \
|
|
||||||
libXcursor-devel \
|
|
||||||
libXext-devel \
|
|
||||||
libXfixes-devel \
|
|
||||||
libXi-devel \
|
|
||||||
libxkbcommon-devel \
|
|
||||||
libXrandr-devel \
|
|
||||||
libXScrnSaver-devel \
|
|
||||||
# EOF
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# We use vcpkg for our dependencies, to get more up-to-date version.
|
|
||||||
echo "::group::Install vcpkg and dependencies"
|
|
||||||
|
|
||||||
git clone https://github.com/microsoft/vcpkg /vcpkg
|
|
||||||
|
|
||||||
(
|
|
||||||
cd /vcpkg
|
|
||||||
./bootstrap-vcpkg.sh -disableMetrics
|
|
||||||
)
|
|
||||||
|
|
||||||
# Make Python3 available for other packages. This needs to be done
|
|
||||||
# first, as otherwise dependencies fail to build because Python3 is
|
|
||||||
# not available.
|
|
||||||
(
|
|
||||||
cd /
|
|
||||||
|
|
||||||
/vcpkg/vcpkg install python3
|
|
||||||
ln -sf /vcpkg/installed/x64-linux/tools/python3/python3.[0-9][0-9] /usr/bin/python3
|
|
||||||
)
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::Install breakpad dependencies"
|
|
||||||
cargo install dump_syms
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
- name: Patch bundle name
|
|
||||||
run: |
|
|
||||||
sed -i 's/generic/legacy/g' cmake/InstallAndPackage.cmake
|
|
||||||
|
|
||||||
- name: Install GCC problem matcher
|
|
||||||
uses: ammaraskar/gcc-problem-matcher@master
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
mkdir -p build
|
|
||||||
cd build
|
|
||||||
|
|
||||||
echo "::group::CMake"
|
|
||||||
cmake ${GITHUB_WORKSPACE} \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake \
|
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-DOPTION_SURVEY_KEY=${{ inputs.survey_key }} \
|
|
||||||
-DOPTION_PACKAGE_DEPENDENCIES=ON \
|
|
||||||
# EOF
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::Build"
|
|
||||||
echo "Running on $(nproc) cores"
|
|
||||||
cmake --build . -j $(nproc) --target openttd
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
- name: Create breakpad symbols
|
|
||||||
run: |
|
|
||||||
cd build
|
|
||||||
dump_syms ./openttd --inlines --store symbols
|
|
||||||
|
|
||||||
- name: Create bundles
|
|
||||||
run: |
|
|
||||||
cd ${GITHUB_WORKSPACE}/build
|
|
||||||
echo "::group::Run CPack"
|
|
||||||
cpack
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "::group::Cleanup"
|
|
||||||
# Remove the sha256 files CPack generates; we will do this ourself at
|
|
||||||
# the end of this workflow.
|
|
||||||
rm -f bundles/*.sha256
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
- name: Store bundles
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: openttd-linux-legacy
|
|
||||||
path: build/bundles
|
|
||||||
retention-days: 5
|
|
||||||
|
|
||||||
- name: Store symbols
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: symbols-linux-legacy
|
|
||||||
path: build/symbols
|
|
||||||
retention-days: 5
|
|
Loading…
Reference in New Issue