Skip to content

lutris/buildbot

Repository files navigation

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