87 lines
2.9 KiB
YAML
87 lines
2.9 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
workflow_dispatch: {}
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest-lite
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Prepare minimal system and install prerequisites
|
|
run: |
|
|
set -e
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y --no-install-recommends \
|
|
ca-certificates gnupg wget curl unzip zip software-properties-common \
|
|
build-essential cmake make libxrandr-dev mingw-w64
|
|
sudo apt-get install -y --no-install-recommends apt-transport-https
|
|
|
|
- name: Add Ubuntu archive (if needed) and update
|
|
run: |
|
|
set -e
|
|
echo "deb [signed-by=/usr/share/keyrings/ubuntu-archive-keyring.gpg] http://archive.ubuntu.com/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/noble.list
|
|
sudo apt-get update -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/noble.list -o Dir::Etc::sourceparts="-" -qq || true
|
|
|
|
- name: Install mingw-w64 from .deb packages (idempotent)
|
|
run: |
|
|
set -e
|
|
wget -q http://ftp.ru.debian.org/debian/pool/main/g/gcc-mingw-w64/g++-mingw-w64-x86-64_14.2.0-17+27_all.deb -O /tmp/gpp-mingw.deb
|
|
wget -q http://ftp.ru.debian.org/debian/pool/main/g/gcc-mingw-w64/gcc-mingw-w64-x86-64_14.2.0-17+27_all.deb -O /tmp/gcc-mingw.deb
|
|
sudo dpkg -i /tmp/gpp-mingw.deb /tmp/gcc-mingw.deb || sudo apt-get -f install -y --no-install-recommends
|
|
rm -f /tmp/gpp-mingw.deb /tmp/gcc-mingw.deb
|
|
|
|
- name: Build makeheaders
|
|
run: |
|
|
set -e
|
|
cd makeheaders
|
|
make
|
|
cd ..
|
|
|
|
- name: Fetch libraries
|
|
run: |
|
|
set -e
|
|
cd ${{ gitea.workspace }}/src/libraries
|
|
|
|
curl -L -o enet.zip https://github.com/lsalzman/enet/archive/refs/heads/master.zip
|
|
unzip -q enet.zip
|
|
mv enet-master enet
|
|
rm enet.zip
|
|
|
|
curl -L -o Lua.zip https://github.com/walterschell/Lua/archive/refs/heads/master.zip
|
|
unzip -q Lua.zip
|
|
mv Lua-master Lua
|
|
rm Lua.zip
|
|
|
|
curl -L -o raylib.zip https://github.com/raysan5/raylib/archive/refs/heads/master.zip
|
|
unzip -q raylib.zip
|
|
mv raylib-master raylib
|
|
rm raylib.zip
|
|
|
|
curl -L -o yaml-cpp.zip https://github.com/jbeder/yaml-cpp/archive/refs/heads/master.zip
|
|
unzip -q yaml-cpp.zip
|
|
mv yaml-cpp-master yaml-cpp
|
|
rm yaml-cpp.zip
|
|
|
|
ls -la
|
|
cd ../..
|
|
|
|
- name: Compile
|
|
run: |
|
|
set -e
|
|
chmod +x ${{ gitea.workspace }}/compile.sh
|
|
sh ${{ gitea.workspace }}/compile.sh
|
|
zip -r release-linux.zip OUTPUT-Linux || true
|
|
zip -r release-w64.zip OUTPUT-w64 || true
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: build-artifacts
|
|
path: |
|
|
release-linux.zip
|
|
release-w64.zip
|
|
``` |