forked from lutris/buildbot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
121 lines (81 loc) · 3.9 KB
/
README
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
Lutris buildbot
===============
This repository contains various build scripts for runners and games used by
Lutris. The target system for these scripts is Ubuntu 18.04 (the same system
used by the Lutris runtime).
It is advised to run these scripts from a LXC container. It's potentially
possible to use other container technology such as Docker but we strongly
advise against it. Virtual machines are ok to use too.
The only case where these containers need to communicate is when build 64bit
builds of Wine. These builds are actually multi-arch and provide 32 and 64bit
support. Make sure the 32 bit container is able to SSH (without a password) to
ubuntu@buildbot64 and inversely, that the 64bit container can SSH to
ubuntu@buildbot32.
To create the containers, first make sure you have the client installed::
On Ubuntu: sudo apt install lxd lxd-client
On Arch Linux: sudo pacman -S lxd
Then, enable and start the lxd service::
sudo systemctl enable lxd.service
sudo systemctl start lxd.service
If this is a new lxd installation, prepare the host environment:
cat buildbot/preseed | sudo lxd init --preseed
alternatively to manually set all lxd options (not recommended) use:
sudo lxd init
You can create the containers with a command such as::
sudo lxc launch images:ubuntu/bionic/amd64 buildbot-bionic-amd64
or for the 32bit container::
sudo lxc launch images:ubuntu/bionic/i386 buildbot-bionic-i386
To set up the container, you can enter it with the following command::
sudo lxc exec <container name> bash
On each container, set a passwd for your ubuntu user::
passwd ubuntu
On each container, to install packages without having to enter a root password add with visudo:
ubuntu ALL=NOPASSWD: /usr/bin/apt
ubuntu ALL=NOPASSWD: /usr/bin/apt-get
ubuntu ALL=NOPASSWD: /usr/bin/dpkg
Exit both containers, then run setup.sh to setup ssh config files on the host and containers:
cd buildbot
./setup.sh buildbot-bionic-amd64 buildbot-bionic-i386
Run the container setup script for each container (under host machine):
./setup-container.sh buildbot-bionic-amd64
./setup-container.sh buildbot-bionic-i386
Perform the following so that each container can communicate with eachother and are build ready (do not set passphrase):
ssh buildbot-bionic-amd64
chown -R ubuntu:ubuntu ~/.ssh/config
ssh-keygen
ssh-copy-id ubuntu@buildbot32
exit
ssh buildbot-bionic-i386
chown -R ubuntu:ubuntu ~/.ssh/config
ssh-keygen
ssh-copy-id ubuntu@buildbot64
exit
Now you are ready to compile. To build a wine runner:
ssh buildbot-bionic-amd64
cd buildbot/runners/wine
./build.sh -pass -your -options -here
Options available are:
-a|--as) usage: -a <custom build name>
-b|--branch) usage: -b <git repo branch>
-w|--with) usage: -w <git repo>
-v|--version) usage: -v <version>
-p|--patch) usage: -p <patch>
-s|--staging
-n|--noupload
-d|--dependencies
-6|--64bit
-k|--keep
Example:
x86_64:
ssh ubuntu@buildbot-bionic-amd64
./build.sh --as lutris --version 4.16 --with https://github.com/lutris/wine --branch lutris-ge-4.16 --noupload --keep
i386:
ssh ubuntu@buildbot-bionic-i386
./build.sh --as lutris --version 4.16 --with https://github.com/lutris/wine --branch lutris-ge-4.16 --noupload --keep
Note #1: If you are running a build for the first time, you will also want to use the -d option to install build dependencies
Note #2: x86_64 build utilizes the i386 lxd container and is built with 32 bit included, you do not need to run both. i386 is for an i386-only build.
Uploads
-------
Runner uploads are limited to Lutris staff members who have access to our Digital Ocean CDN.
awscli, s3cmd and doctl are required to upload files. All required tools will be installed with the setup-buildbot.sh script.
Then configure your credential files in ~/.aws/credentials and ~/.s3cfg