lutris / buildbot

41 stars 27 forks source link

Lutris buildbot

This repository contains various build scripts for runners and games used by Lutris. The target system for these scripts is Debian 11 Bullseye (the same system used by the Lutris runtime).

It is advised to run these scripts from within either a docker/podman container or vagrant VM. We have provided setup scripts for both (details below).

Option 1: docker/podman container

On Ubuntu: sudo apt install podman
On Arch:   sudo pacman -S podman
On Fedora: sudo dnf install podman

Then build wine:

usage:             ./podman-winebuild.sh name winerepo branch
example:           ./podman-winebuild.sh lutris-GE https://github.com/GloriousEggroll/proton-wine Proton8-15
build name output: builds/wine-lutris-GE-Proton8-15-x86_64.tar.xz

Additional tools:

To access the container:

docker start buildbot
docker exec -it buildbot bash

To exit the container:

exit
docker stop buildbot

To delete the container and view containers list:

docker container rm buildbot
docker container list -a

To delete the container image and view images list:

docker rmi docker.io/gloriouseggroll/lutris_buildbot
docker images

Option 2: Vagrant VM:

On Ubuntu: sudo apt install vagrant vagrant-sshfs
On Arch:   sudo pacman -S vagrant
           sudo vagrant plugin install vagrant-sshfs
On Fedora: sudo dnf install vagrant vagrant-sshfs

Then build wine:

usage:        ./vagrant-winebuild.sh name winerepo branch
example:      ./vagrant-winebuild.sh lutris-GE https://github.com/GloriousEggroll/proton-wine Proton8-15
build output: builds/wine-lutris-GE-Proton8-15-x86_64.tar.xz

Additional tools:

To access the VM:

VAGRANT_VAGRANTFILE="$PWD"/tools/vagrant/Vagrantfile vagrant up
vagrant ssh

To exit the VM:

exit
vagrant halt

To delete the VM and view VM list:

vagrant destroy
vagrant box remove buildbot_debian
vagrant box list

Build artifacts

The buildbot no longer uploads files to Lutris servers. Instead you should upload files from your host system.

To make build artifacts easy to find, follow this folder structure:

builds/ games/ game_1/game_1_build.tar.xz game_2/game_2_build.tar.xz ... runners/ wine/wine-lutris-GE-Proton8-15-x86_64.tar.xz mame/mame-0.258-x86_64.tar.xz ... runtime/ Debian-12-x86_64/Debian-12-x86_64.tar.xz Debian-12-i386/Debian-12-i386.tar.xz ...

awscli, s3cmd and doctl are required to upload files to Digital Ocean. Then configure your credential files in ~/.aws/credentials and ~/.s3cfg