Files
@ r27709:13454adf22b6
Branch filter:
Location: cpp/openttd-patchpack/source/.github/workflows/release-linux.yml - annotation
r27709:13454adf22b6
5.1 KiB
text/x-yaml
Change: [CI] rework preview flow and use Cloudflare Pages to publish (#11116)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r27371:b9ad4c1bff08 r27371:b9ad4c1bff08 r27371:b9ad4c1bff08 r27371:b9ad4c1bff08 r27371:b9ad4c1bff08 r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r27370:8498857641a9 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26825:39b775cd7fbd r26825:39b775cd7fbd r26882:45ad6b2ec879 r27221:3735cc2cef6b r27221:3735cc2cef6b r26825:39b775cd7fbd r27221:3735cc2cef6b r26882:45ad6b2ec879 r26825:39b775cd7fbd r26882:45ad6b2ec879 r26825:39b775cd7fbd r27221:3735cc2cef6b r27221:3735cc2cef6b r27221:3735cc2cef6b r27221:3735cc2cef6b r27221:3735cc2cef6b r27221:3735cc2cef6b r26825:39b775cd7fbd r26825:39b775cd7fbd r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r27630:828392983b72 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r27221:3735cc2cef6b r27221:3735cc2cef6b r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r27370:8498857641a9 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26882:45ad6b2ec879 r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26882:45ad6b2ec879 r26825:39b775cd7fbd r27371:b9ad4c1bff08 r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r27227:fb6db1b1e1a6 r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd r26825:39b775cd7fbd | name: Release (Linux)
on:
workflow_call:
inputs:
survey_key:
required: false
type: string
default: ""
jobs:
linux:
name: Linux (Generic)
runs-on: ubuntu-20.04
container:
# manylinux2014 is based on CentOS 7, but already has a lot of things
# installed and preconfigured. It makes it easier to build OpenTTD.
image: quay.io/pypa/manylinux2014_x86_64
steps:
- name: Download source
uses: actions/download-artifact@v3
with:
name: internal-source
- name: Unpack source
run: |
tar -xf source.tar.gz --strip-components=1
- name: Enable vcpkg cache
uses: actions/cache@v3
with:
path: /vcpkg/installed
key: ubuntu-20.04-vcpkg-release-1 # Increase the number whenever dependencies are modified
restore-keys: |
ubuntu-20.04-vcpkg-release
- 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 .
)
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::"
# We use vcpkg for our dependencies, to get more up-to-date version.
echo "::group::Install vcpkg and dependencies"
# We do a little dance to make sure we copy the cached install folder
# into our new clone.
git clone --depth=1 https://github.com/microsoft/vcpkg /vcpkg-clone
if [ -e /vcpkg/installed ]; then
mv /vcpkg/installed /vcpkg-clone/
rm -rf /vcpkg
fi
mv /vcpkg-clone /vcpkg
(
cd /vcpkg
./bootstrap-vcpkg.sh -disableMetrics
# Make Python3 available for other packages.
./vcpkg install python3
ln -sf $(pwd)/installed/x64-linux/tools/python3/python3.[0-9][0-9] /usr/bin/python3
./vcpkg install \
curl[http2] \
fontconfig \
freetype \
harfbuzz \
icu \
liblzma \
libpng \
lzo \
nlohmann-json \
sdl2 \
zlib \
# EOF
)
echo "::endgroup::"
- 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 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@v3
with:
name: openttd-linux-generic
path: build/bundles
retention-days: 5
|