Repository navigation
Expand file tree
/
Copy pathconfig.py
More file actions
132 lines (105 loc) · 3.71 KB
/
Copy pathconfig.py
File metadata and controls
132 lines (105 loc) · 3.71 KB
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
# This file collects various global configuration variables.
import json
from buildbot.worker import Worker
# Will be passed to every build with --distributor argument to makepanda.
distributor = "cmu"
# URL where the source code is hosted.
git_url = "https://github.com/panda3d/panda3d.git"
# Link to the Panda3D project.
title_url = "https://www.panda3d.org/"
# Link to the buildbot status page.
buildbot_url = "https://buildbot.panda3d.org/"
# Link to webhook.
webhook_url = "https://www.panda3d.org/webhooks/buildbot.php"
# Location on the server where the builds are to be uploaded.
downloads_dir = "/srv/www/html/buildbot.panda3d.org/downloads"
# Location where the .deb archives are hosted in an apt repository.
archive_dir = "/srv/www/html/archive.panda3d.org"
# Where the rtdist builds are uploaded before being pmerged.
staging_dir = "/home/panda3d-bot/staging-tmp"
# Location on the server into which the rtdist packages should be merged.
runtime_dir = "/srv/www/html/runtime-dev.panda3d.org"
# Location of a copy of pmerge that can be run on the master.
pmerge_bin = "/srv/www/html/runtime.panda3d.org/pmerge.p3d"
# Location for temporary files.
temp_dir = "/tmp/buildbot"
# IRC settings
irc_host = "irc.freenode.net"
irc_nick = "p3dbuildbot"
irc_channels = ["#panda3d-devel"]
# Files that, when changed, should not trigger an automatic SDK rebuild.
# Paths starting with a forward slash are relative to the filesystem root.
sdk_excludes = [
".gitignore",
"/.travis.yml",
"/LICENSE",
"README",
"README.*",
"BACKERS.*",
"*.pl",
"*.vcproj",
"*.sln",
"*.pdef",
"*.xcf",
"*.tau",
"*.sh",
"*.prebuilt",
"*.bat",
"PACKAGE-DESC",
"/doc/ReleaseNotes",
"/doc/InstallerNotes",
"/doc/INSTALL",
"/doc/INSTALLING-PLUGINS.TXT",
"/direct/src/plugin/*",
"/direct/src/plugin_activex/*",
"/direct/src/plugin_installer/*",
"/direct/src/plugin_npapi/*",
"/direct/src/plugin_standalone/*",
"/direct/src/doc/*",
"/panda/src/cftalk/*",
"/panda/src/doc/*",
"/panda/src/android/*",
"/panda/src/androiddisplay/*",
"/panda/src/awesomium/*",
"/panda/src/skel/*",
]
# List of worker names for each platform.
linux_workers = ["build-lnx", "build-lnx-2"]
windows_workers = ["build-win3"]
macosx_10_6_workers = ["build-osx"]
macosx_10_9_workers = ["build-osx-2"]
macosx_11_0_workers = ["build-osx-3"]
# GitHub OAuth configuration
github_oauth_client_id = "c8d9d6b985fdff918e58"
github_oauth_client_secret = "89a456962e91303fbb2de4d3a876dcf047d8e60e"
# These files contain metadata (incl. passwords) of the workers and users.
workers_fn = "workers.json"
users_fn = "users.json"
# Load the workers from an external JSON file, since we don't want
# the worker passwords to become publicly visible.
workers = []
for worker_spec in json.load(open(workers_fn, 'r')):
name = worker_spec.pop('name')
workers.append(Worker(name, **worker_spec))
# Do the same for the user accounts of the web interface.
users = []
for user_spec in json.load(open(users_fn, 'r')):
users.append((str(user_spec[0]), str(user_spec[1])))
from fnmatch import fnmatchcase
def _matches(file, pattern):
file = file.lstrip('/')
if pattern.startswith('/'):
return fnmatchcase(file, pattern[1:])
# Relative pattern. Recurse through the hierarchy to see if it matches.
while file:
if fnmatchcase(file, pattern):
return True
file = file.partition('/')[2]
return False
def is_important(change):
if '[ci skip]' in change.comments or '[skip ci]' in change.comments:
return False
for file in change.files:
if not any(_matches(file, pattern) for pattern in sdk_excludes):
return True
return False