diff options
author | Ben Murdoch <benm@google.com> | 2011-05-05 14:36:32 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-10 15:38:30 +0100 |
commit | f05b935882198ccf7d81675736e3aeb089c5113a (patch) | |
tree | 4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebKitTools/BuildSlaveSupport | |
parent | 60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff) | |
download | external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.zip external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.gz external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.bz2 |
Merge WebKit at r74534: Initial merge by git.
Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb
Diffstat (limited to 'WebKitTools/BuildSlaveSupport')
33 files changed, 0 insertions, 3479 deletions
diff --git a/WebKitTools/BuildSlaveSupport/build-launcher-app b/WebKitTools/BuildSlaveSupport/build-launcher-app deleted file mode 100755 index 117b008..0000000 --- a/WebKitTools/BuildSlaveSupport/build-launcher-app +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/perl -w - -# Copyright (C) 2006 Apple Computer, Inc. All rights reserved. -# Copyright (C) 2006 Mark Rowe <opendarwin.org@bdash.net.nz>. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Creates the launcher WebKit.app with bundled frameworks. - -use strict; - -use FindBin; -use lib "$FindBin::Bin/../Scripts"; -use webkitdirs; - -my @xcodeBuildArguments = XcodeOptions(); -my $nightlyLauncherTemplatePath = "$FindBin::Bin/../WebKitLauncher"; -my $nightlyLauncherStagingPath = productDir() . "/WebKit.app"; - -sub buildNightlyLauncher -{ - chdir($nightlyLauncherTemplatePath); - system("xcodebuild", "clean", "-alltargets", @xcodeBuildArguments, @ARGV) == 0 or die "Failed cleaning WebKitLauncher project"; - system("xcodebuild", @xcodeBuildArguments, @ARGV) == 0 or die "Failed building WebKitLauncher project"; - chdirWebKit(); -} - -sub currentRevision -{ - my $sourceDir = sourceDir(); - if (isSVNDirectory($sourceDir)) { - return currentSVNRevision(); - } elsif (isGitDirectory($sourceDir)) { - my $gitLog = `cd $sourceDir && LC_ALL=C git log --grep='git-svn-id: ' -n 1 | grep git-svn-id:`; - (my $revision) = ($gitLog =~ m/ +git-svn-id: .+@(\d+) /g); - return $revision; - } -} - -sub currentBranch -{ - my $sourceDir = sourceDir(); - my ($url, $branch); - if (isSVNDirectory($sourceDir)) { - my $svnInfo = `LC_ALL=C svn info $sourceDir | grep URL:`; - ($url) = ($svnInfo =~ m/URL: (.+)/g); - } elsif (isGitDirectory($sourceDir)) { - my $gitLog = `cd $sourceDir && LC_ALL=C git log --grep='git-svn-id: ' -n 1 | grep git-svn-id:`; - ($url) = ($gitLog =~ m/ +git-svn-id: (.+)@\d+ /g); - } - ($branch) = ($url =~ m/\/webkit\/(trunk|branches\/[^\/]+)/); - die "Unable to determine current SVN branch in $sourceDir" unless (defined $branch); - $branch =~ s/^branches\///; - return $branch; -} - -sub copyNightlyLauncher -{ - my $revision = currentRevision(); - my $branch = currentBranch(); - - my $infoPlist = "$nightlyLauncherStagingPath/Contents/Info.plist"; - my $versionFile = "$nightlyLauncherStagingPath/Contents/Resources/VERSION"; - my $branchFile = "$nightlyLauncherStagingPath/Contents/Resources/BRANCH"; - my $data; - open(IN, $infoPlist) or die "Couldn't open Info.plist in built application for reading"; - { - undef $/; - $data = <IN>; - } - close(IN); - open(OUT, ">$infoPlist") or die "Couldn't open Info.plist in built application for writing"; - $data =~ s/VERSION/$revision/g; - print OUT $data; - close(OUT); - - open(OUT, ">$versionFile") or die "Couldn't open VERSION in built application for writing"; - print OUT "$revision\n"; - close(OUT); - - open(OUT, ">$branchFile") or die "Couldn't open BRANCH in built application for writing"; - print OUT "$branch\n"; - close(OUT); - - my @frameworks = ("JavaScriptCore", "JavaScriptGlue", "WebCore", "WebKit"); - for my $framework (@frameworks) { - system("ditto", productDir() . "/$framework.framework", "$nightlyLauncherStagingPath/Contents/Resources/$framework.framework") == 0 or die "Failed copying $framework.framework into $nightlyLauncherStagingPath"; - } -} - -my $b = currentBranch(); -my $r = currentRevision(); -print "Branch: ", $b, "\n"; -print "Revision: ", $r, "\n"; - -chdirWebKit(); -buildNightlyLauncher(); -copyNightlyLauncher(); diff --git a/WebKitTools/BuildSlaveSupport/build-launcher-dmg b/WebKitTools/BuildSlaveSupport/build-launcher-dmg deleted file mode 100755 index 4dce7fb..0000000 --- a/WebKitTools/BuildSlaveSupport/build-launcher-dmg +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/perl -w - -# Copyright (C) 2006 Apple Computer, Inc. All rights reserved. -# Copyright (C) 2006 Mark Rowe <opendarwin.org@bdash.net.nz>. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Script used by build slaves to create a disk-image containing WebKit.app. - -use strict; - -use File::Basename; -use Getopt::Long; -use FindBin; -use lib "$FindBin::Bin/../Scripts"; -use webkitdirs; - -my $nightlyLauncherStagingPath = productDir() . "/WebKit.app"; -my $droseraStagingPath = productDir() . "/DroseraLauncher.app"; -my $nightlyLauncherDiskImagePath; - -my $nightlyRemoteHost = 'webkit-nightlies@live.nightly.webkit.org'; -my $nightlyRemotePath = "/home/webkit-nightlies"; -my $nightlyRemoteLatestPath = "$nightlyRemotePath/update-latest.sh"; - -sub buildDiskImage -{ - my $revision = currentSVNRevision(); - my $productDir = productDir(); - $nightlyLauncherDiskImagePath = productDir() . "/WebKit-SVN-r$revision.dmg"; - - print "Removing previous temp source directory (if any)...\n"; - `rm -rf /tmp/WebKitNightly`; - die "Removing previous temp source directory failed" if $?; - - print "Making a new temp source directory...\n"; - `mkdir /tmp/WebKitNightly`; - die "Making a new temp source directory failed" if $?; - - print "Copying WebKit.app to temp source directory...\n"; - `cp -R \"$nightlyLauncherStagingPath\" /tmp/WebKitNightly/WebKit.app`; - die "Copying WebKit.app to temp source directory failed" if $?; - - print "Copying Drosera.app to temp source directory...\n"; - `cp -R \"$droseraStagingPath\" /tmp/WebKitNightly/Drosera.app`; - die "Copying Drosera.app to temp source directory failed" if $?; - - print "Creating disk image...\n"; - `hdiutil create \"$nightlyLauncherDiskImagePath\" -ov -srcfolder /tmp/WebKitNightly -fs HFS+ -volname \"WebKit\"`; - die "Creating disk image failed" if $?; - - print "Removing temp source directory...\n"; - `rm -rf /tmp/WebKitNightly`; - die "Removing temp source directory failed" if $?; - - print "Compressing disk image...\n"; - system("mv", "-f", $nightlyLauncherDiskImagePath, "$nightlyLauncherDiskImagePath.uncompressed.dmg") == 0 or die "Renaming disk image failed"; - system("hdiutil", "convert", "-quiet", "$nightlyLauncherDiskImagePath.uncompressed.dmg", "-format", "UDBZ", "-imagekey", "zlib-level=9", "-o", "$nightlyLauncherDiskImagePath"); - die "Compressing disk image failed" if $?; - - unlink "$nightlyLauncherDiskImagePath.uncompressed.dmg"; -} - -sub uploadNightlyDiskImage -{ - my $buildTag = shift(@_); - my $nightlyRemoteDiskImagePath = "$nightlyRemotePath/builds/$buildTag/mac/" . basename($nightlyLauncherDiskImagePath); - my $revision = currentSVNRevision(); - system("rsync", "-vP", $nightlyLauncherDiskImagePath, "$nightlyRemoteHost:$nightlyRemoteDiskImagePath") == 0 or die "Failed uploading disk image"; - system("ssh", $nightlyRemoteHost, $nightlyRemoteLatestPath, $buildTag, "mac", $nightlyRemoteDiskImagePath, $revision) == 0 or die "Failed linking disk image to latest"; -} - -sub uploadBuildSlaveDiskImage -{ - my $remoteDiskImagePath = shift(@_) . basename($nightlyLauncherDiskImagePath); - system("rsync", "-vP", $nightlyLauncherDiskImagePath, $remoteDiskImagePath) == 0 or die "Failed uploading disk image"; -} - - -my $uploadTo; -my $nightlyBuild = 0; -my $buildTag = 'trunk'; -GetOptions('upload-to-host=s' => \$uploadTo, - 'upload-as-nightly!' => \$nightlyBuild, - 'tag=s' => \$buildTag); - -chdirWebKit(); -buildDiskImage($buildTag); - -if ($nightlyBuild) { - uploadNightlyDiskImage($buildTag); -} elsif ($uploadTo) { - uploadBuildSlaveDiskImage($uploadTo); -} else { - print "Disk image left at $nightlyLauncherDiskImagePath\n"; -} diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/Makefile b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/Makefile deleted file mode 100644 index bd5e749..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -*- makefile -*- - -# This is a simple makefile which lives in a buildmaster/buildslave -# directory (next to the buildbot.tac file). It allows you to start/stop the -# master or slave by doing 'make start' or 'make stop'. - -# The 'reconfig' target will tell a buildmaster to reload its config file. - -start: - /opt/local/bin/twistd2.5 --no_save -y buildbot.tac - -stop: - kill `cat twistd.pid` - -reconfig: - kill -HUP `cat twistd.pid` - -log: - tail -f twistd.log diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/README b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/README deleted file mode 100644 index 3ba8a22..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/README +++ /dev/null @@ -1,2 +0,0 @@ -Note: This directory is *not* automatically synchronized with Subversion via a post-commit hook. -Any changes made to code within this directory will need to be manually pushed to build.webkit.org. diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/buildbot.tac b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/buildbot.tac deleted file mode 100644 index 1a53acf..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/buildbot.tac +++ /dev/null @@ -1,21 +0,0 @@ - -from twisted.application import service -from buildbot.master import BuildMaster - -basedir = r'/buildbot/webkit' -configfile = r'master.cfg' -rotateLength = 1000000 -maxRotatedFiles = None - -application = service.Application('buildmaster') -try: - from twisted.python.logfile import LogFile - from twisted.python.log import ILogObserver, FileLogObserver - logfile = LogFile.fromFullPath("twistd.log", rotateLength=rotateLength, - maxRotatedFiles=maxRotatedFiles) - application.setComponent(ILogObserver, FileLogObserver(logfile).emit) -except ImportError: - # probably not yet twisted 8.2.0 and beyond, can't set log yet - pass -BuildMaster(basedir, configfile).setServiceParent(application) - diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json deleted file mode 100644 index d46b140..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "slaves": [ { "name": "test-slave", "platform": "*" }, - - { "name": "apple-xserve-1", "platform": "mac-leopard" }, - { "name": "apple-xserve-2", "platform": "mac-leopard" }, - { "name": "apple-xserve-3", "platform": "mac-leopard" }, - - { "name": "apple-xserve-4", "platform": "mac-snowleopard" }, - { "name": "apple-xserve-5", "platform": "mac-snowleopard" }, - { "name": "apple-xserve-6", "platform": "mac-snowleopard" }, - { "name": "apple-xserve-7", "platform": "mac-snowleopard" }, - - { "name": "apple-pixel-1", "platform": "mac-leopard" }, - - { "name": "apple-macpro-1", "platform": "mac-snowleopard" }, - { "name": "apple-macpro-2", "platform": "mac-snowleopard" }, - { "name": "apple-macpro-3", "platform": "mac-snowleopard" }, - { "name": "apple-macpro-4", "platform": "mac-leopard" }, - { "name": "apple-macpro-5", "platform": "mac-leopard" }, - - { "name": "apple-windows-1", "platform": "win"}, - { "name": "apple-windows-2", "platform": "win"}, - { "name": "apple-windows-3", "platform": "win"}, - { "name": "apple-windows-4", "platform": "win"}, - { "name": "apple-windows-5", "platform": "win"}, - { "name": "apple-windows-6", "platform": "win"}, - { "name": "apple-windows-7", "platform": "win"}, - { "name": "apple-windows-8", "platform": "win"}, - { "name": "apple-windows-9", "platform": "win"}, - { "name": "apple-windows-10", "platform": "win"}, - { "name": "apple-windows-11", "platform": "win"}, - { "name": "apple-windows-12", "platform": "win"}, - { "name": "apple-windows-13", "platform": "win"}, - { "name": "apple-windows-14", "platform": "win"}, - { "name": "apple-windows-15", "platform": "win"}, - - { "name": "gtk-linux-slave-1", "platform": "gtk"}, - { "name": "gtk-linux-slave-2", "platform": "gtk"}, - { "name": "gtk-linux-slave-3", "platform": "gtk"}, - { "name": "gtk-linux-slave-4", "platform": "gtk"}, - - { "name": "szeged-linux-1", "platform": "qt"}, - { "name": "szeged-linux-2", "platform": "qt"}, - { "name": "szeged-linux-3", "platform": "qt"}, - { "name": "szeged-linux-4", "platform": "qt"}, - - { "name": "szeged-windows-1", "platform": "qt"}, - { "name": "szeged-windows-2", "platform": "qt"}, - - { "name": "google-windows-1", "platform": "chromium-win" }, - { "name": "google-mac-1", "platform": "chromium-mac" }, - { "name": "google-linux-1", "platform": "chromium-linux" }, - { "name": "google-windows-2", "platform": "chromium-win" }, - { "name": "google-mac-2", "platform": "chromium-mac" }, - { "name": "google-linux-2", "platform": "chromium-linux" }, - { "name": "google-new-tests", "platform": "mac-leopard" }, - - { "name": "wincairo-1", "platform": "wincairo" }, - - { "name": "efl-linux-slave-1", "platform": "efl" } - ], - - "builders": [ { "name": "Leopard Intel Release (Build)", "type": "Build", "builddir": "leopard-intel-release", - "platform": "mac-leopard", "configuration": "release", "architectures": ["i386"], - "triggers": ["leopard-intel-release-tests"], - "slavenames": ["apple-xserve-1", "apple-xserve-2", "test-slave"] - }, - { "name": "Leopard Intel Release (Tests)", "type": "Test", "builddir": "leopard-intel-release-tests", - "platform": "mac-leopard", "configuration": "release", "architectures": ["i386"], - "slavenames": ["apple-macpro-4", "apple-pixel-1", "test-slave"] - }, - - { "name": "Leopard Intel Debug (Build)", "type": "Build", "builddir": "leopard-intel-debug", - "platform": "mac-leopard", "configuration": "debug", "architectures": ["i386"], - "triggers": ["leopard-intel-debug-tests"], - "slavenames": ["apple-xserve-1", "apple-xserve-2", "test-slave"] - }, - { "name": "Leopard Intel Debug (Tests)", "type": "Test", "builddir": "leopard-intel-debug-tests", - "platform": "mac-leopard", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["apple-xserve-3", "test-slave", "apple-macpro-5"] - }, - { "name": "SnowLeopard Intel Release (Build)", "type": "Build", "builddir": "snowleopard-intel-release", - "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], - "triggers": ["snowleopard-intel-release-tests", "snowleopard-intel-release-tests-wk2"], - "slavenames": ["apple-xserve-4", "test-slave"] - }, - { "name": "SnowLeopard Intel Release (Tests)", "type": "Test", "builddir": "snowleopard-intel-release-tests", - "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], - "slavenames": ["apple-xserve-5", "apple-xserve-6", "test-slave"] - }, - { "name": "SnowLeopard Intel Leaks", "type": "BuildAndTestLeaks", "builddir": "snowleopard-intel-leaks", - "platform": "mac-snowleopard", "configuration": "debug", "architectures": ["x86_64"], - "slavenames": ["apple-macpro-1", "apple-macpro-3", "test-slave"] - }, - { "name": "SnowLeopard Intel Release (WebKit2 Tests)", "type": "TestWebKit2", "builddir": "snowleopard-intel-release-tests-wk2", - "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], - "slavenames": ["apple-xserve-7", "test-slave"] - }, - { - "name": "Windows Release (Build)", "type": "Build", "builddir": "win-release", - "platform": "win", "configuration": "release", "architectures": ["i386"], - "triggers": ["win-release-tests", "win-release-tests-wk2"], - "slavenames": ["apple-windows-2", "test-slave"] - }, - { - "name": "Windows 7 Release (Tests)", "type": "Test", "builddir": "win-release-tests", - "platform": "win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["apple-windows-5", "apple-windows-6", "apple-windows-11", "apple-windows-12", "test-slave"] - }, - { - "name": "Windows Debug (Build)", "type": "Build", "builddir": "win-debug", - "platform": "win", "configuration": "debug", "architectures": ["i386"], - "triggers": ["win-debug-tests"], - "slavenames": ["apple-windows-1", "test-slave"] - }, - { - "name": "Windows XP Debug (Tests)", "type": "Test", "builddir": "win-debug-tests", - "platform": "win", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["apple-windows-3", "apple-windows-4", "apple-windows-13", "apple-windows-14", "apple-windows-15", "test-slave"] - }, - { "name": "Windows 7 Release (WebKit2 Tests)", "type": "TestWebKit2", "builddir": "win-release-tests-wk2", - "platform": "win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["apple-windows-7", "apple-windows-8", "apple-windows-9", "apple-windows-10", "test-slave"] - }, - { - "name": "GTK Linux 32-bit Release", "type": "BuildAndTest", "builddir": "gtk-linux-32-release", - "platform": "gtk", "configuration": "release", "architectures": ["i386"], - "slavenames": ["gtk-linux-slave-1"] - }, - { - "name": "GTK Linux 32-bit Debug", "type": "BuildAndTest", "builddir": "gtk-linux-32-debug", - "platform": "gtk", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["gtk-linux-slave-2"] - }, - { - "name": "GTK Linux 64-bit Debug", "type": "BuildAndTest", "builddir": "gtk-linux-64-debug", - "platform": "gtk", "configuration": "debug", "architectures": ["x86_64"], - "slavenames": ["gtk-linux-slave-3"] - }, - { - "name": "GTK Linux 64-bit Release", "type": "BuildAndTest", "builddir": "gtk-linux-64-release", - "platform": "gtk", "configuration": "release", "architectures": ["x86_64"], - "slavenames": ["gtk-linux-slave-4"] - }, - { - "name": "Qt Linux Release", "type": "BuildAndTest", "builddir": "qt-linux-release", - "platform": "qt", "configuration": "release", "architectures": ["i386"], - "slavenames": ["szeged-linux-1"] - }, - { - "name": "Qt Linux Release minimal", "type": "Build", "builddir": "qt-linux-release-minimal", - "platform": "qt", "configuration": "release", "architectures": ["i386"], - "slavenames": ["szeged-linux-2"] - }, - { - "name": "Qt Linux ARMv5 Release", "type": "Build", "builddir": "qt-linux-armv5-release", - "platform": "qt", "configuration": "release", "architectures": ["armv5"], - "slavenames": ["szeged-linux-3"] - }, - { - "name": "Qt Linux ARMv7 Release", "type": "Build", "builddir": "qt-linux-armv7-release", - "platform": "qt", "configuration": "release", "architectures": ["armv7"], - "slavenames": ["szeged-linux-4"] - }, - { - "name": "Qt Windows 32-bit Release", "type": "Build", "builddir": "qt-windows-32bit-release", - "platform": "qt", "configuration": "release", "architectures": ["i386"], - "slavenames": ["szeged-windows-1"] - }, - { - "name": "Qt Windows 32-bit Debug", "type": "Build", "builddir": "qt-windows-32bit-debug", - "platform": "qt", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["szeged-windows-2"] - }, - { - "name": "Chromium Win Release", "type": "Build", "builddir": "chromium-win-release", - "platform": "chromium-win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-windows-1"] - }, - { - "name": "Chromium Mac Release", "type": "Build", "builddir": "chromium-mac-release", - "platform": "chromium-mac", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-mac-1"] - }, - { - "name": "Chromium Linux Release", "type": "Build", "builddir": "chromium-linux-release", - "platform": "chromium-linux", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-linux-1"] - }, - { - "name": "Chromium Win Release (Tests)", "type": "NewBuildAndTest", "builddir": "chromium-win-release-tests", - "platform": "chromium-win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-windows-2"] - }, - { - "name": "Chromium Mac Release (Tests)", "type": "NewBuildAndTest", "builddir": "chromium-mac-release-tests", - "platform": "chromium-mac", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-mac-2"] - }, - { - "name": "Chromium Linux Release (Tests)", "type": "NewBuildAndTest", "builddir": "chromium-linux-release-tests", - "platform": "chromium-linux", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-linux-2"] - }, - { - "name": "New run-webkit-tests", "type": "NewBuildAndTest", "builddir": "google-new-tests", - "platform": "mac-leopard", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-new-tests"] - }, - { - "name": "WinCairo Debug (Build)", "type": "Build", "builddir": "win-cairo-debug", - "platform": "wincairo", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["wincairo-1"] - }, - { - "name": "EFL Linux Release (Build)", "type": "Build", "builddir": "efl-linux-release", - "platform": "efl", "configuration": "release", "architectures": ["i386"], - "slavenames": ["efl-linux-slave-1"] - } - ], - - "schedulers": [ { "type": "AnyBranchScheduler", "name": "trunk", "change_filter": "trunk_filter", "treeStableTimer": 45.0, - "builderNames": ["Leopard Intel Release (Build)", "Leopard Intel Debug (Build)", - "SnowLeopard Intel Release (Build)", "SnowLeopard Intel Leaks", - "GTK Linux 32-bit Release", "GTK Linux 32-bit Debug", "GTK Linux 64-bit Debug", "GTK Linux 64-bit Release", - "Qt Linux Release", "Qt Linux Release minimal", "Qt Linux ARMv5 Release", "Qt Linux ARMv7 Release", - "Qt Windows 32-bit Release", "Qt Windows 32-bit Debug", - "Chromium Win Release", "Chromium Mac Release", "Chromium Linux Release", - "Chromium Win Release (Tests)", "Chromium Mac Release (Tests)", "Chromium Linux Release (Tests)", - "WinCairo Debug (Build)", "EFL Linux Release (Build)"] - }, - { "type": "PlatformSpecificScheduler", "platform": "win", "branch": "trunk", "treeStableTimer": 45.0, - "builderNames": ["Windows Release (Build)", "Windows Debug (Build)"] - }, - { "type": "Triggerable", "name": "leopard-intel-release-tests", - "builderNames": ["Leopard Intel Release (Tests)"] - }, - { "type": "Triggerable", "name": "leopard-intel-debug-tests", - "builderNames": ["Leopard Intel Debug (Tests)"] - }, - { "type": "Triggerable", "name": "snowleopard-intel-release-tests", - "builderNames": ["SnowLeopard Intel Release (Tests)"] - }, - { "type": "Triggerable", "name": "snowleopard-intel-release-tests-wk2", - "builderNames": ["SnowLeopard Intel Release (WebKit2 Tests)"] - }, - { "type": "Triggerable", "name": "win-release-tests", - "builderNames": ["Windows 7 Release (Tests)"] - }, - { "type": "Triggerable", "name": "win-debug-tests", - "builderNames": ["Windows XP Debug (Tests)"] - }, - { "type": "Triggerable", "name": "win-release-tests-wk2", - "builderNames": ["Windows 7 Release (WebKit2 Tests)"] - } - ] -} diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg deleted file mode 100644 index c28abb6..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg +++ /dev/null @@ -1,552 +0,0 @@ -# -*- python -*- -# ex: set syntax=python: - -c = BuildmasterConfig = {} - -from buildbot.buildslave import BuildSlave -from buildbot.changes.pb import PBChangeSource -from buildbot.scheduler import AnyBranchScheduler, Triggerable -from buildbot.schedulers.filter import ChangeFilter -from buildbot.status import html -from buildbot.process import buildstep, factory, properties -from buildbot.steps import master, shell, source, transfer, trigger -from buildbot.status.builder import SUCCESS, FAILURE, WARNINGS, SKIPPED - -from twisted.internet import defer - -import re -import simplejson - -from webkitpy.common.config import build as wkbuild -from webkitpy.common.net.buildbot import BuildBot as wkbuildbot - -WithProperties = properties.WithProperties - -class ConfigureBuild(buildstep.BuildStep): - name = "configure build" - description = ["configuring build"] - descriptionDone = ["configured build"] - def __init__(self, platform, configuration, architecture, buildOnly, *args, **kwargs): - buildstep.BuildStep.__init__(self, *args, **kwargs) - self.platform = platform.split('-', 1)[0] - self.fullPlatform = platform - self.configuration = configuration - self.architecture = architecture - self.buildOnly = buildOnly - self.addFactoryArguments(platform=platform, configuration=configuration, architecture=architecture, buildOnly=buildOnly) - - def start(self): - self.setProperty("platform", self.platform) - self.setProperty("fullPlatform", self.fullPlatform) - self.setProperty("configuration", self.configuration) - self.setProperty("architecture", self.architecture) - self.setProperty("buildOnly", self.buildOnly) - self.finished(SUCCESS) - return defer.succeed(None) - - -class CheckOutSource(source.SVN): - baseURL = "http://svn.webkit.org/repository/webkit/" - mode = "update" - def __init__(self, *args, **kwargs): - source.SVN.__init__(self, baseURL=self.baseURL, defaultBranch="trunk", mode=self.mode, *args, **kwargs) - - -class InstallWin32Dependencies(shell.Compile): - description = ["installing dependencies"] - descriptionDone = ["installed dependencies"] - command = ["perl", "./WebKitTools/Scripts/update-webkit-auxiliary-libs"] - -class KillOldProcesses(shell.Compile): - name = "kill old processes" - description = ["killing old processes"] - descriptionDone = ["killed old processes"] - command = ["python", "./WebKitTools/BuildSlaveSupport/win/kill-old-processes"] - -class InstallChromiumDependencies(shell.ShellCommand): - name = "gclient" - description = ["updating chromium dependencies"] - descriptionDone = ["updated chromium dependencies"] - command = ["perl", "./WebKitTools/Scripts/update-webkit-chromium", "--force"] - haltOnFailure = True - -class CleanupChromiumLinuxCrashLogs(shell.ShellCommand): - name = "cleanup crash logs" - description = ["removing crash logs"] - descriptionDone = ["removed crash logs"] - command = ["sh", "-c", "rm -rf /tmp/.org.chromium.*"] - haltOnFailure = False - - -def appendCustomBuildFlags(step, platform): - if platform in ('gtk', 'wx', 'qt', 'chromium', 'wincairo', 'efl'): - step.setCommand(step.command + ['--' + platform]) - - -class CompileWebKit(shell.Compile): - command = ["perl", "./WebKitTools/Scripts/build-webkit", WithProperties("--%(configuration)s")] - env = {'MFLAGS':''} - name = "compile-webkit" - description = ["compiling"] - descriptionDone = ["compiled"] - warningPattern = ".*arning: .*" - - def start(self): - platform = self.getProperty('platform') - buildOnly = self.getProperty('buildOnly') - if platform == 'mac' and buildOnly: - self.setCommand(self.command + ['DEBUG_INFORMATION_FORMAT=dwarf-with-dsym']) - - appendCustomBuildFlags(self, platform) - return shell.Compile.start(self) - - -class ArchiveBuiltProduct(shell.ShellCommand): - command = ["python", "./WebKitTools/BuildSlaveSupport/built-product-archive", - WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"] - name = "archive-built-product" - description = ["archiving built product"] - descriptionDone = ["archived built product"] - haltOnFailure = True - - -class ExtractBuiltProduct(shell.ShellCommand): - command = ["python", "./WebKitTools/BuildSlaveSupport/built-product-archive", - WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "extract"] - name = "extract-built-product" - description = ["extracting built product"] - descriptionDone = ["extracted built product"] - haltOnFailure = True - - -class UploadBuiltProduct(transfer.FileUpload): - slavesrc = WithProperties("WebKitBuild/%(configuration)s.zip") - masterdest = WithProperties("archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip") - haltOnFailure = True - - def __init__(self): - transfer.FileUpload.__init__(self, self.slavesrc, self.masterdest) - - -class DownloadBuiltProduct(transfer.FileDownload): - slavedest = WithProperties("WebKitBuild/%(configuration)s.zip") - mastersrc = WithProperties("archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip") - haltOnFailure = True - flunkOnFailure = True - - def __init__(self): - transfer.FileDownload.__init__(self, self.mastersrc, self.slavedest) - - -class RunJavaScriptCoreTests(shell.Test): - name = "jscore-test" - description = ["jscore-tests running"] - descriptionDone = ["jscore-tests"] - command = ["perl", "./WebKitTools/Scripts/run-javascriptcore-tests", WithProperties("--%(configuration)s")] - logfiles = {'results': 'JavaScriptCore/tests/mozilla/actual.html'} - - def __init__(self, skipBuild=False, *args, **kwargs): - self.skipBuild = skipBuild - shell.Test.__init__(self, *args, **kwargs) - self.addFactoryArguments(skipBuild=skipBuild) - - def start(self): - appendCustomBuildFlags(self, self.getProperty('platform')) - if self.skipBuild: - self.setCommand(self.command + ['--skip-build']) - return shell.Test.start(self) - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - statusLines = [line for line in logText.splitlines() if line.find('regression') >= 0 and line.find(' found.') >= 0] - if statusLines and statusLines[0].split()[0] != '0': - self.regressionLine = statusLines[0] - else: - self.regressionLine = None - - def evaluateCommand(self, cmd): - if self.regressionLine: - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.regressionLine: - return [self.name, self.regressionLine] - - return [self.name] - - -class RunWebKitTests(shell.Test): - name = "layout-test" - description = ["layout-tests running"] - descriptionDone = ["layout-tests"] - command = ["perl", "./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-new-test-results", - "--no-sample-on-timeout", "--results-directory", "layout-test-results", "--use-remote-links-to-tests", - WithProperties("--%(configuration)s"), "--exit-after-n-crashes-or-timeouts", "20"] - - def __init__(self, skipBuild=False, *args, **kwargs): - self.skipBuild = skipBuild - shell.Test.__init__(self, *args, **kwargs) - self.addFactoryArguments(skipBuild=skipBuild) - - def start(self): - appendCustomBuildFlags(self, self.getProperty('platform')) - if self.skipBuild: - self.setCommand(self.command + ['--root=WebKitBuild/bin']) - return shell.Test.start(self) - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - incorrectLayoutLines = [] - for line in logText.splitlines(): - if line.find('had incorrect layout') >= 0 or line.find('were new') >= 0 or line.find('was new') >= 0: - incorrectLayoutLines.append(line) - elif line.find('test case') >= 0 and (line.find(' crashed') >= 0 or line.find(' timed out') >= 0): - incorrectLayoutLines.append(line) - elif line.startswith("WARNING:") and line.find(' leak') >= 0: - incorrectLayoutLines.append(line.replace('WARNING: ', '')) - elif line.find('Exiting early') >= 0: - incorrectLayoutLines.append(line) - - # FIXME: Detect and summarize leaks of RefCounted objects - - self.incorrectLayoutLines = incorrectLayoutLines - - def evaluateCommand(self, cmd): - if self.incorrectLayoutLines: - if len(self.incorrectLayoutLines) == 1: - line = self.incorrectLayoutLines[0] - if line.find('were new') >= 0 or line.find('was new') >= 0 or line.find(' leak') >= 0: - return WARNINGS - - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectLayoutLines: - return self.incorrectLayoutLines - - return [self.name] - - -class NewRunWebKitTests(RunWebKitTests): - command = ["python", "./WebKitTools/Scripts/new-run-webkit-tests", "--noshow-results", - "--verbose", "--results-directory", "layout-test-results", - "--builder-name", WithProperties("%(buildername)s"), - "--build-number", WithProperties("%(buildnumber)s"), - "--master-name", "webkit.org", - "--test-results-server", "test-results.appspot.com", - WithProperties("--%(configuration)s"), "--use-drt"] - - -class RunPythonTests(shell.Test): - name = "webkitpy-test" - description = ["python-tests running"] - descriptionDone = ["python-tests"] - command = ["python", "./WebKitTools/Scripts/test-webkitpy"] - - -class RunPerlTests(shell.Test): - name = "webkitperl-test" - description = ["perl-tests running"] - descriptionDone = ["perl-tests"] - command = ["perl", "./WebKitTools/Scripts/test-webkitperl"] - - -class RunGtkAPITests(shell.Test): - name = "API tests" - description = ["API tests running"] - descriptionDone = ["API tests"] - command = ["perl", "./WebKitTools/Scripts/run-gtk-tests", WithProperties("--%(configuration)s")] - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - incorrectLines = [] - for line in logText.splitlines(): - if line.startswith('ERROR'): - incorrectLines.append(line) - - self.incorrectLines = incorrectLines - - def evaluateCommand(self, cmd): - if self.incorrectLines: - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectLines: - return ["%d API tests failed" % len(self.incorrectLines)] - - return [self.name] - -class RunQtAPITests(shell.Test): - name = "API tests" - description = ["API tests running"] - descriptionDone = ["API tests"] - command = ["python", "./WebKitTools/Scripts/run-qtwebkit-tests", - "--output-file=qt-unit-tests.html", "--do-not-open-results", - WithProperties("WebKitBuild/%(configuration_pretty)s/WebKit/qt/tests/")] - - def start(self): - self.setProperty("configuration_pretty", self.getProperty("configuration").title()) - return shell.Test.start(self) - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - foundItems = re.findall("TOTALS: (?P<passed>\d+) passed, (?P<failed>\d+) failed, (?P<skipped>\d+) skipped", logText) - - self.incorrectTests = 0 - self.statusLine = [] - - if foundItems: - self.incorrectTests = int(foundItems[0][1]) - if self.incorrectTests > 0: - self.statusLine = [ - "%s passed, %s failed, %s skipped" % (foundItems[0][0], foundItems[0][1], foundItems[0][2]) - ] - - def evaluateCommand(self, cmd): - if self.incorrectTests: - return WARNINGS - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectTests: - return self.statusLine - - return [self.name] - -class RunWebKitLeakTests(RunWebKitTests): - def start(self): - self.setCommand(self.command + ["--leaks"]) - return RunWebKitTests.start(self) - - -class RunWebKit2Tests(RunWebKitTests): - def start(self): - self.setCommand(self.command + ["--webkit-test-runner"]) - return RunWebKitTests.start(self) - - -class RunChromiumWebKitUnitTests(shell.Test): - name = "webkit-unit-tests" - description = ["webkit-unit-tests running"] - descriptionDone = ["webkit-unit-tests"] - command = ["perl", "./WebKitTools/Scripts/run-chromium-webkit-unit-tests", - WithProperties("--%(configuration)s")] - - -class ArchiveTestResults(shell.ShellCommand): - command = ["python", "./WebKitTools/BuildSlaveSupport/test-result-archive", - WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"] - name = "archive-test-results" - description = ["archiving test results"] - descriptionDone = ["archived test results"] - haltOnFailure = True - - -class UploadTestResults(transfer.FileUpload): - slavesrc = "layout-test-results.zip" - masterdest = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s).zip") - - def __init__(self): - transfer.FileUpload.__init__(self, self.slavesrc, self.masterdest) - - -class ExtractTestResults(master.MasterShellCommand): - zipFile = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s).zip") - resultDirectory = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s)") - - def __init__(self): - master.MasterShellCommand.__init__(self, "") - - def start(self): - self.command = ["ditto", "-k", "-x", "-V", self.build.getProperties().render(self.zipFile), self.build.getProperties().render(self.resultDirectory)] - return master.MasterShellCommand.start(self) - - def finished(self, result): - url = self.build.getProperties().render(self.resultDirectory).replace("public_html/", "/") - self.addURL("view results", url) - result = master.MasterShellCommand.finished(self, result) - self.step_status.setText(["uploaded results"]) - return result - - -class Factory(factory.BuildFactory): - def __init__(self, platform, configuration, architectures, buildOnly): - factory.BuildFactory.__init__(self) - self.addStep(ConfigureBuild, platform=platform, configuration=configuration, architecture=" ".join(architectures), buildOnly=buildOnly) - self.addStep(CheckOutSource) - if platform == "win": - self.addStep(KillOldProcesses) - self.addStep(InstallWin32Dependencies) - if platform.startswith("chromium"): - self.addStep(InstallChromiumDependencies) - -class BuildFactory(Factory): - def __init__(self, platform, configuration, architectures, triggers=None): - Factory.__init__(self, platform, configuration, architectures, True) - self.addStep(CompileWebKit) - if triggers: - self.addStep(ArchiveBuiltProduct) - self.addStep(UploadBuiltProduct) - self.addStep(trigger.Trigger, schedulerNames=triggers) - -class TestFactory(Factory): - TestClass = RunWebKitTests - def __init__(self, platform, configuration, architectures): - Factory.__init__(self, platform, configuration, architectures, False) - self.addStep(DownloadBuiltProduct) - self.addStep(ExtractBuiltProduct) - self.addStep(RunJavaScriptCoreTests, skipBuild=True) - self.addStep(self.TestClass, skipBuild=(platform == 'win')) - # Tiger's Python 2.3 is too old. WebKit Python requires 2.5+. - # Sadly we have no way to detect the version on the slave from here. - if platform != "mac-tiger": - self.addStep(RunPythonTests) - self.addStep(RunPerlTests) - self.addStep(ArchiveTestResults) - self.addStep(UploadTestResults) - self.addStep(ExtractTestResults) - -class BuildAndTestFactory(Factory): - TestClass = RunWebKitTests - def __init__(self, platform, configuration, architectures): - Factory.__init__(self, platform, configuration, architectures, False) - if platform == "chromium-linux": - self.addStep(CleanupChromiumLinuxCrashLogs) - self.addStep(CompileWebKit) - if not platform.startswith("chromium"): - self.addStep(RunJavaScriptCoreTests) - if platform.startswith("chromium"): - self.addStep(RunChromiumWebKitUnitTests) - self.addStep(self.TestClass) - # Tiger's Python 2.3 is too old. WebKit Python requires 2.5+. - # Sadly we have no way to detect the version on the slave from here. - if platform != "mac-tiger": - self.addStep(RunPythonTests) - self.addStep(RunPerlTests) - self.addStep(ArchiveTestResults) - self.addStep(UploadTestResults) - self.addStep(ExtractTestResults) - if platform == "gtk": - self.addStep(RunGtkAPITests) - if platform == "qt": - self.addStep(RunQtAPITests) - -class BuildAndTestLeaksFactory(BuildAndTestFactory): - TestClass = RunWebKitLeakTests - -class NewBuildAndTestFactory(BuildAndTestFactory): - TestClass = NewRunWebKitTests - -class TestWebKit2Factory(TestFactory): - TestClass = RunWebKit2Tests - -class PlatformSpecificScheduler(AnyBranchScheduler): - def __init__(self, platform, branch, **kwargs): - self.platform = platform - filter = ChangeFilter(branch=[branch, None], filter_fn=self.filter) - AnyBranchScheduler.__init__(self, name=platform, change_filter=filter, **kwargs) - - def filter(self, change): - return wkbuild.should_build(self.platform, change.files) - -trunk_filter = ChangeFilter(branch=["trunk", None]) - -def loadBuilderConfig(c): - # FIXME: These file handles are leaked. - passwords = simplejson.load(open('passwords.json')) - config = simplejson.load(open('config.json')) - - # use webkitpy's buildbot module to test for core builders - wkbb = wkbuildbot() - - c['slaves'] = [BuildSlave(slave['name'], passwords[slave['name']], max_builds=1) for slave in config['slaves']] - - c['schedulers'] = [] - for scheduler in config['schedulers']: - if "change_filter" in scheduler: - scheduler["change_filter"] = globals()[scheduler["change_filter"]] - kls = globals()[scheduler.pop('type')] - c['schedulers'].append(kls(**scheduler)) - - c['builders'] = [] - for builder in config['builders']: - for slaveName in builder['slavenames']: - for slave in config['slaves']: - if slave['name'] != slaveName or slave['platform'] == '*': - continue - - if slave['platform'] != builder['platform']: - raise Exception, "Builder %r is for platform %r but has slave %r for platform %r!" % (builder['name'], builder['platform'], slave['name'], slave['platform']) - - break - - factory = globals()["%sFactory" % builder.pop('type')] - factoryArgs = [] - for key in "platform", "configuration", "architectures", "triggers": - value = builder.pop(key, None) - if value: - factoryArgs.append(value) - - builder["factory"] = factory(*factoryArgs) - - builder["category"] = "noncore" - if wkbb._is_core_builder(builder['name']): - builder["category"] = "core" - - c['builders'].append(builder) - -loadBuilderConfig(c) - -c['change_source'] = PBChangeSource() - -c['status'] = [] -c['status'].append(html.WebStatus(http_port=8710, allowForce=True)) - -c['slavePortnum'] = 17000 -c['projectName'] = "WebKit" -c['projectURL'] = "http://webkit.org" -c['buildbotURL'] = "http://build.webkit.org/" - -c['buildHorizon'] = 1000 -c['logHorizon'] = 500 -c['eventHorizon'] = 200 -c['buildCacheSize'] = 60 diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/buildbot.css b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/buildbot.css deleted file mode 100644 index a71c81f..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/buildbot.css +++ /dev/null @@ -1,382 +0,0 @@ -body { - margin-bottom:50px; -} - -body, td { - font-family: Verdana, Cursor; - font-size: 10px; - font-weight: bold; -} - -a:link,a:visited,a:active { - color: #444; -} - -a:hover { - color: #000000; -} - -table { - border-spacing: 1px 1px; -} - -table td { - padding: 3px 0px 3px 0px; - text-align: center; -} - -.Project { - width: 100px; -} - -.LastBuild, .Activity { - padding: 0 0 0 4px; -} - -.LastBuild, .Activity, .Builder, .BuildStep { - width: 155px; - max-width: 155px; -} - -td.Time { - color: #000; - border-bottom: 1px solid #aaa; - background-color: #eee; -} - -td.Activity, td.Change, td.Builder { - color: #333333; - background-color: #CCCCCC; -} - -td.Change { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} -td.Event { - color: #777; - background-color: #ddd; - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} - -td.Activity { - border-top-left-radius: 10px; - -webkit-border-top-left-radius: 10px; - -moz-border-radius-topleft: 10px; - min-height: 20px; - padding: 2px 0 2px 0; -} - -td.idle, td.waiting, td.offline, td.building { - border-top-left-radius: 0px; - -webkit-border-top-left-radius: 0px; - -moz-border-radius-topleft: 0px; -} - -.LastBuild { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -/* Console view styles */ - -td.DevRev { - padding: 4px 8px 4px 8px; - color: #333333; - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - background-color: #eee; - width: 1%; -} - -td.DevRevCollapse { - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; -} - -td.DevName { - padding: 4px 8px 4px 8px; - color: #333333; - background-color: #eee; - width: 1%; - text-align: left; -} - -td.DevStatus { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.DevSlave { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.first { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; -} - -td.last { - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -td.DevStatusCategory { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-width:1px; - border-style:solid; -} - -td.DevStatusCollapse { - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; -} - -td.DevDetails { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - background-color: #eee; - text-align: left; -} - -td.DevComment { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - background-color: #eee; - text-align: left; -} - -td.Alt { - background-color: #CCCCCC; -} - -.legend { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: 100px; - max-width: 100px; - text-align:center; - padding: 2px 2px 2px 2px; - height:14px; - white-space:nowrap; -} - -.DevStatusBox { - text-align:center; - height:20px; - padding:0 2px; - line-height:0; - white-space:nowrap; -} - -.DevStatusBox a { - opacity: 0.85; - border-width:1px; - border-style:solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display:block; - width:90%; - height:20px; - line-height:20px; - margin-left: auto; - margin-right: auto; -} - -.DevSlaveBox { - text-align:center; - height:10px; - padding:0 2px; - line-height:0; - white-space:nowrap; -} - -.DevSlaveBox a { - opacity: 0.85; - border-width:1px; - border-style:solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display:block; - width:90%; - height:10px; - line-height:20px; - margin-left: auto; - margin-right: auto; -} - -a.noround { - border-radius: 0px; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - position: relative; - margin-top: -8px; - margin-bottom: -8px; - height: 36px; - border-top-width: 0; - border-bottom-width: 0; -} - -a.begin { - border-top-width:1px; - position: relative; - margin-top: 0px; - margin-bottom: -7px; - height: 27px; - border-top-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-right-radius: 4px; - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -a.end { - border-bottom-width:1px; - position: relative; - margin-top: -7px; - margin-bottom: 0px; - height: 27px; - border-bottom-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.center_align { - text-align: center; -} - -.right_align { - text-align: right; -} - -.left_align { - text-align: left; -} - -div.BuildWaterfall { - border-radius: 7px; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - position: absolute; - left: 0px; - top: 0px; - background-color: #FFFFFF; - padding: 4px 4px 4px 4px; - float: left; - display: none; - border-width: 1px; - border-style: solid; -} - -/* LastBuild, BuildStep states */ -.success { - color: #FFFFFF; - background-color: #8fdf5f; - border-color: #4F8530; -} - -.failure { - color: #FFFFFF; - background-color: #e98080; - border-color: #A77272; -} - -.warnings { - color: #FFFFFF; - background-color: #ffc343; - border-color: #C29D46; -} - -.exception, td.offline { - color: #FFFFFF; - background-color: #e0b0ff; - border-color: #ACA0B3; -} - -.start,.running, td.building { - color: #666666; - background-color: #fffc6c; - border-color: #C5C56D; -} - -.start { - border-bottom-left-radius: 10px; - -webkit-border-bottom-left-radius: 10px; - -moz-border-radius-bottomleft: 10px; - border-bottom-right-radius: 10px; - -webkit-border-bottom-right-radius: 10px; - -moz-border-radius-bottomright: 10px; -} - -.notstarted { - border-width:1px; - border-style:solid; - border-color:#aaa; -} - -td.Project a:hover, td.start a:hover { - color: #000; -} - -/* grid styles */ - -table.Grid { - border-collapse: collapse; -} - -table.Grid tr td { - padding: 0.2em; - margin: 0px; - text-align: center; -} - -table.Grid tr td.title { - font-size: 90%; - border-right: 1px gray solid; - border-bottom: 1px gray solid; -} - -table.Grid tr td.sourcestamp { - font-size: 90%; -} - -table.Grid tr td.builder { - text-align: right; - font-size: 90%; -} - -table.Grid tr td.build { - border: 1px gray solid; -} diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/default.css b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/default.css deleted file mode 100644 index 4223807..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/default.css +++ /dev/null @@ -1,524 +0,0 @@ -div.header { display: none; } -body > hr { display: none; } -div.content h1 { display: none; } - -body.interface { - background: url(bg_gradient.jpg) repeat-x; - font-family: Verdana, Cursor; - font-size: 10px; - font-weight: bold; - background-color: #fff; - color: #333; -} - -a:link,a:visited,a:active { - color: #444; -} - -table { - border-spacing: 1px 1px; -} - -table td { - padding: 3px 2px 3px 2px; -} - -.Project { - min-width: 6em; -} - -.LastBuild,.Activity { - padding: 0 0 0 4px; -} - -/* Chromium Specific styles */ -div.BuildResultInfo { - color: #444; -} - -div.Announcement { - margin-bottom: 1em; -} - -div.Announcement>a:hover { - color: black; -} - -div.Announcement>div.Notice { - background-color: #afdaff; - padding: 0.5em; - font-size: 16px; - text-align: center; -} - -div.Announcement>div.Open { - border: 3px solid #8fdf5f; - padding: 0.5em; - font-size: 16px; - text-align: center; -} - -div.Announcement>div.Closed { - border: 5px solid #e98080; - padding: 0.5em; - font-size: 24px; - font-weight: bold; - text-align: center; -} - -td.Time { - color: #000; - border-bottom: 1px solid #aaa; - background-color: #eee; -} - -td.Activity,td.Change,td.Builder { - color: #333333; - background-color: #CCCCCC; -} - -td.Change { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} - -td.Event { - color: #777; - background-color: #ddd; - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} - -td.Activity { - border-top-left-radius: 10px; - -webkit-border-top-left-radius: 10px; - -moz-border-radius-topleft: 10px; - min-height: 20px; - padding: 2px 0 2px 0; -} - -td.idle,td.waiting,td.offline,td.building { - border-top-left-radius: 0px; - -webkit-border-top-left-radius: 0px; - -moz-border-radius-topleft: 0px; -} - -.LastBuild { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -/* Console view styles */ -td.DevRev { - padding: 4px 8px 4px 8px; - color: #333333; - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - background-color: #eee; - width: 1%; -} - -td.DevRevCollapse { - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; -} - -td.DevName { - padding: 4px 8px 4px 8px; - color: #333333; - background-color: #eee; - width: 1%; - text-align: left; -} - -td.DevStatus { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.DevSlave { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.first { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; -} - -td.last { - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -td.DevStatusCategory { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-width: 1px; - border-style: solid; -} - -td.DevStatusCollapse { - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; -} - -td.DevDetails { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - background-color: #eee; - text-align: left; -} - -td.DevComment { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - background-color: #eee; - text-align: left; -} - -td.Alt { - background-color: #ddd; -} - -.legend { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: 100px; - max-width: 100px; - text-align: center; - padding: 2px 2px 2px 2px; - height: 14px; - white-space: nowrap; -} - -.DevStatusBox { - text-align: center; - height: 20px; - padding: 0 2px; - line-height: 0; - white-space: nowrap; -} - -.DevStatusBox a { - opacity: 0.85; - border-width: 1px; - border-style: solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display: block; - width: 90%; - height: 20px; - line-height: 20px; - margin-left: auto; - margin-right: auto; -} - -.DevSlaveBox { - text-align: center; - height: 10px; - padding: 0 2px; - line-height: 0; - white-space: nowrap; -} - -.DevSlaveBox a { - opacity: 0.85; - border-width: 1px; - border-style: solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display: block; - width: 90%; - height: 10px; - line-height: 20px; - margin-left: auto; - margin-right: auto; -} - -a.noround { - border-radius: 0px; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - position: relative; - margin-top: -8px; - margin-bottom: -8px; - height: 36px; - border-top-width: 0; - border-bottom-width: 0; -} - -a.begin { - border-top-width: 1px; - position: relative; - margin-top: 0px; - margin-bottom: -7px; - height: 27px; - border-top-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-right-radius: 4px; - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -a.end { - border-bottom-width: 1px; - position: relative; - margin-top: -7px; - margin-bottom: 0px; - height: 27px; - border-bottom-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.center_align { - text-align: center; -} - -.right_align { - text-align: right; -} - -.left_align { - text-align: left; -} - -div.BuildWaterfall { - border-radius: 7px; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - position: absolute; - left: 0px; - top: 0px; - background-color: #FFFFFF; - padding: 4px 4px 4px 4px; - float: left; - display: none; - border-width: 1px; - border-style: solid; -} - -/* LastBuild, BuildStep states */ -.success { - color: #FFFFFF; - background-color: #8FDF5F; - border-color: #4F8530; -} - -.failure { - color: #FFFFFF; - background-color: #E98080; - border-color: #A77272; -} - -.warnings { - color: #FFFFFF; - background-color: #FFC343; - border-color: #C29D46; -} - -.exception { - color: #FFFFFF; - background-color: #E0B0FF; - border-color: #ACA0B3; -} - -.start,.running,td.building { - color: #666666; - background-color: #FFFC6C; - border-color: #C5C56D; -} - -.offline,td.offline { - color: #FFFFFF; - background-color: #E0B0FF; - border-color: #dddddd; -} - - -.start { - border-bottom-left-radius: 10px; - -webkit-border-bottom-left-radius: 10px; - -moz-border-radius-bottomleft: 10px; - border-bottom-right-radius: 10px; - -webkit-border-bottom-right-radius: 10px; - -moz-border-radius-bottomright: 10px; -} - -.notstarted { - border-width: 1px; - border-style: solid; - border-color: #aaa; - background-color: #fff; -} - -.closed { - background-color: #ff0000; -} - -.closed .large { - font-size: 1.5em; - font-weight: bolder; -} - -td.Project a:hover,td.start a:hover { - color: #000; -} - -.mini-box { - text-align: center; - height: 20px; - padding: 0 2px; - line-height: 0; - white-space: nowrap; -} - -.mini-box a { - border-radius: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - display: block; - width: 100%; - height: 20px; - line-height: 20px; - margin-top: -30px; -} - -.mini-closed { - -box-sizing: border-box; - -webkit-box-sizing: border-box; - border: 4px solid red; -} - -/* grid styles */ -table.Grid { - border-collapse: collapse; -} - -table.Grid tr td { - padding: 0.2em; - margin: 0px; - text-align: center; -} - -table.Grid tr td.title { - font-size: 90%; - border-right: 1px gray solid; - border-bottom: 1px gray solid; -} - -table.Grid tr td.sourcestamp { - font-size: 90%; -} - -table.Grid tr td.builder { - text-align: right; - font-size: 90%; -} - -table.Grid tr td.build { - border: 1px gray solid; -} - -/* column container */ -div.column { - margin: 0 2em 2em 0; - float: left; -} - -/* info tables */ -table.info { - border-spacing: 1px; -} - -table.info td { - padding: 0.1em 1em 0.1em 1em; - text-align: center; -} - -table.info th { - padding: 0.2em 1.5em 0.2em 1.5em; - text-align: center; -} - -table.info td.left { - text-align: left -} - -.alt { - background-color: #d6d6d6; -} - -li { - padding: 0.1em 1em 0.1em 1em; -} - -.result { - padding: 0.3em 1em 0.3em 1em; -} - -/* log view */ -.log * { - vlink: #800080; - font-family: "Courier New", courier, monotype; -} - -span.stdout { - color: black; -} - -span.stderr { - color: red; -} - -span.header { - color: blue; -} - -/* revision & email */ -.revision .full { - display: none; -} - -.user .email { - display: none; -} - -/* change comments (use regular colors here) */ -pre.comments>a:link,pre.comments>a:visited { - color: blue; -} - -pre.comments>a:active { - color: purple; -} diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/robots.txt b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/robots.txt deleted file mode 100644 index 579297c..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/robots.txt +++ /dev/null @@ -1,13 +0,0 @@ -User-agent: * -Disallow: /waterfall -Disallow: /builders -Disallow: /changes -Disallow: /buildslaves -Disallow: /schedulers -Disallow: /one_line_per_build -Disallow: /one_box_per_builder -Disallow: /xmlrpc -Disallow: /grid -Disallow: /tgrid -Disallow: /console -Disallow: /results diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/templates/root.html b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/templates/root.html deleted file mode 100755 index c6d2343..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/templates/root.html +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"> -<title>Welcome to the Buildbot</title> -</head> - -<body> -<h1>Welcome to the Buildbot!</h1> - -<ul> - <li><a href="console?category=core">Core Console</a></li> - <li><a href="waterfall?category=core">Core Waterfall</a></li> - <li><a href="console">Console</a></li> - <li><a href="waterfall">Waterfall Display</a> will give you a time-oriented summary of recent buildbot activity.</li> - <li><a href="one_box_per_builder">Latest Build</a> for each builder is here.</li> - <li><a href="one_line_per_build">Recent Builds</a> are summarized here, one per line.</li> - <li><a href="buildslaves">Buildslave</a> information</li> - <li><a href="http://webkit-commit-queue.appspot.com/">Commit Queue Status</a> information.</li> - <li><a href="changes">ChangeSource</a> information.</li> - <li><a href="results">Test Results</a></li> -</ul> -</body> </html> - diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py deleted file mode 100644 index f81fcae..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from webkit import auth, status, builders, schedulers -reload(auth) -reload(status) -reload(builders) -reload(schedulers) diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py deleted file mode 100644 index b182e16..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py +++ /dev/null @@ -1,9 +0,0 @@ -from buildbot.buildslave import BuildSlave - -def getSlaveAuthenticationDetails(): - def createBuildSlave((name, password)): - return BuildSlave(name, password, max_builds=1) - return map(createBuildSlave, _getSlaveAuthenticationDetails()) - -def _getSlaveAuthenticationDetails(): - return [("slave-name", "password")] diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py deleted file mode 100644 index 8bba881..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py +++ /dev/null @@ -1,51 +0,0 @@ -from buildbot.steps import shell, source -import os - - -def buildStepWithDefaultTimeout(klass, default_timeout=75*60): - class Step(klass): - timeout = default_timeout - def __init__(self, *args, **kwargs): - kwargs['timeout'] = self.timeout - klass.__init__(self, *args, **kwargs) - - return Step - - -Test = buildStepWithDefaultTimeout(shell.Test) -Compile = buildStepWithDefaultTimeout(shell.Compile) -ShellCommand = buildStepWithDefaultTimeout(shell.ShellCommand) -SVN = buildStepWithDefaultTimeout(source.SVN) - - -class UploadCommand: - def initializeForUpload(self): - try: - try: - umask = os.umask(0) - os.makedirs(self.getDestinationPath(), 042770) - except OSError, e: - if e.errno != 17: - raise - finally: - os.umask(umask) - - def getDestinationPath(self): - return "/home/buildresults%s" % (self.getURLPath(), ) - - def getRemotePath(self): - return "buildresults@build.webkit.org:%s" % (self.getDestinationPath(), ) - - def getURLPath(self): - return '/results/%s/%s/' % (self.getBuild().builder.name, self.getBuild().getProperty("buildnumber"), ) - - def getBuild(self): - return self.build - - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - return ['<a href="%s">%s</a>' % (self.getURLPath(), self.name)] - diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py deleted file mode 100644 index a79011c..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py +++ /dev/null @@ -1,51 +0,0 @@ -from webkit.factories import * - -allWinBuilders = ['apple-slave-7', 'apple-slave-2'] # pewtermoose-slave-1 -allMacPPCBuilders = ['apple-slave-1', 'apple-slave-3', 'apple-slave-6'] -allMacIntelBuilders = ['bdash-slave-1', 'bdash-slave-2'] -macIntelPixelBuilders = ['apple-slave-8'] -allQtLinuxBuilders = ['webtroll-slave-1'] -allQtWinBuilders = ['qt-slave-2'] -allGtkLinuxBuilders = ['zecke-slave-1'] -allWxMacBuilders = ['kollivier-slave-1'] - -# apple-slave-4 is currently giving incomprehensible ICEs when compiling: -# WebKit/History/WebBackForwardList.mm: In function 'WebHistoryItem* -[WebBackForwardList currentItem](WebBackForwardList*, objc_selector*)': -# WebKit/History/WebBackForwardList.mm:178: internal compiler error: Bus error - -# apple-slave-5 is currently giving incomprehensible link errors: -# WebKitBuild/JavaScriptCore.build/Release/JavaScriptCore.build/Objects-normal/ppc/pcre_tables.o r_address (0x34a10d) field of relocation entry 12 in section (__DWARFA,__debug_info) out of range -# /usr/bin/libtool: internal link edit command failed - - -_builders = [('trunk-mac-ppc-release', StandardBuildFactory, allMacPPCBuilders, False), - ('trunk-mac-intel-release', StandardBuildFactory, allMacIntelBuilders, False), -# ('trunk-mac-ppc-debug', LeakBuildFactory, allMacPPCBuilders, False), - ('trunk-mac-intel-debug', LeakBuildFactory, allMacIntelBuilders, False), - ('trunk-mac-intel-pixel', PixelTestBuildFactory, macIntelPixelBuilders, False), -# ('trunk-win-release', Win32BuildFactory, allWinBuilders, False), - ('trunk-win-debug', Win32BuildFactory, allWinBuilders, False), - ('trunk-qt-linux-release', QtBuildFactory, allQtLinuxBuilders, False), - ('trunk-qt-win-release', QtBuildFactory, allQtWinBuilders, False), - ('trunk-gtk-linux-release', GtkBuildFactory, allGtkLinuxBuilders, False), - ('trunk-wx-mac-debug', WxBuildFactory, allWxMacBuilders, False), - -# ('trunk-mac-intel-coverage', CoverageDataBuildFactory, ['bdash-slave-1'], True), -# ('trunk-mac-intel-nosvg', NoSVGBuildFactory, ['bdash-slave-2'], True), - -# ('stable-mac-ppc-release', StandardBuildFactory, allMacPPCBuilders, False), -# ('stable-mac-intel-release', StandardBuildFactory, allMacIntelBuilders, False), -# ('stable-mac-ppc-debug', LeakBuildFactory, allMacPPCBuilders, False), -# ('stable-mac-intel-debug', LeakBuildFactory, allMacIntelBuilders, False), -# ('stable-win-release', Win32BuildFactory, allWinBuilders, False), - ] - -def getBuilders(): - result = [] - for name, factory, slaves, periodic in _builders: - result.append({'name': name, - 'slavenames': slaves, - 'builddir': name, - 'factory': factory(), - 'periodic': periodic}) - return result diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py deleted file mode 100644 index 59eb9cd..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py +++ /dev/null @@ -1,109 +0,0 @@ -from webkit.steps import * -from buildbot.process import factory - -s = factory.s - -class BuildFactory(factory.BuildFactory): - useProgress = False - def __init__(self): - factory.BuildFactory.__init__(self, [s(CheckOutSource)]) - -class StandardBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(SetConfiguration, configuration="release")) - self.addCompileStep() - self.addJavaScriptCoreTestStep() - self.addLayoutTestStep() - self.steps.append(s(UploadLayoutResults)) -# self.steps.append(s(UploadDiskImage)) - - def addCompileStep(self): - self.steps.append(s(CompileWebKit, configuration="release")) - - def addJavaScriptCoreTestStep(self): - self.steps.append(s(JavaScriptCoreTest)) - - def addLayoutTestStep(self): - self.steps.append(s(LayoutTest)) - - -class NoSVGBuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(CompileWebKitNoSVG, configuration="release")) - - -class PixelTestBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(SetConfiguration, configuration="release")) - self.steps.append(s(CompileWebKit, configuration="release")) - self.steps.append(s(PixelLayoutTest)) - self.steps.append(s(UploadLayoutResults)) - - -class LeakBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(SetConfiguration, configuration="debug")) - self.steps.append(s(CompileWebKit, configuration="debug")) - self.steps.append(s(JavaScriptCoreTest)) - self.steps.append(s(LeakTest)) - self.steps.append(s(UploadLayoutResults)) -# self.steps.append(s(UploadDiskImage)) - - -class PageLoadTestBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(CompileWebKit, configuration="release")) - self.steps.append(s(PageLoadTest)) - - -class Win32BuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(InstallWin32Dependencies)) - self.steps.append(s(SetConfiguration, configuration="debug")) - self.steps.append(s(CompileWebKitWindows, configuration="debug")) - - def addLayoutTestStep(self): - self.steps.append(s(LayoutTestWindows)) - -class GtkBuildFactory(StandardBuildFactory): - def addCompileStep(self): -# self.steps.append(s(CleanWebKitGtk, configuration="release")) - self.steps.append(s(CompileWebKitGtk, configuration="release")) - - def addJavaScriptCoreTestStep(self): - self.steps.append(s(JavaScriptCoreTestGtk)) - - def addLayoutTestStep(self): - pass - - -class WxBuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(CleanWebKitWx, configuration="release")) - self.steps.append(s(CompileWebKitWx, configuration="release")) - - def addJavaScriptCoreTestStep(self): - self.steps.append(s(JavaScriptCoreTestWx)) - - def addLayoutTestStep(self): - pass - - -class QtBuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(CleanWebKit, configuration="release")) - self.steps.append(s(CompileWebKit, configuration="release")) - - def addLayoutTestStep(self): - pass # self.steps.append(s(LayoutTestQt)) - - -class CoverageDataBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(GenerateCoverageData)) - self.steps.append(s(UploadCoverageData)) diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py deleted file mode 100644 index 4bece4f..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py +++ /dev/null @@ -1,16 +0,0 @@ -from buildbot.scheduler import AnyBranchScheduler, Periodic - -def getSchedulers(builders): - builders = map(lambda builder: (builder['name'], builder['periodic']), builders) - trunkBuilders = [name for name, periodic in builders if name.startswith('trunk-') and not periodic] - trunkBuilders.sort() - stableBuilders = [name for name, periodic in builders if name.startswith('stable-') and not periodic] - stableBuilders.sort() - periodicBuilders = [name for name, periodic in builders if periodic] - periodicBuilders.sort() - - trunk = AnyBranchScheduler(name="trunk", branches=['trunk'], treeStableTimer=90, builderNames=trunkBuilders) -# stable = AnyBranchScheduler(name="stable", branches=['branches/Safari-3-1-branch'], treeStableTimer=90, builderNames=stableBuilders) - periodic = Periodic("periodic", periodicBuilders, 6 * 60 * 60) - - return [trunk, periodic] diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py deleted file mode 100644 index a7228ef..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py +++ /dev/null @@ -1,19 +0,0 @@ -from buildbot.status import html, mail, words - -web = html.WebStatus(http_port=8010) - -allBuildsEmail = mail.MailNotifier(fromaddr="buildbot@webkit.org", - extraRecipients=["mark+webkit-builds@bdash.net.nz"], - sendToInterestedUsers=False) -breakageEmail = mail.MailNotifier(fromaddr="buildbot@webkit.org", - lookup=mail.Domain("webkit.org"), - mode="failing") - -IRC = words.IRC(host="irc.freenode.net", - nick="webkit-build", - channels=["#webkit-build"], -# announceAllBuilds=True - ) - -def getStatusListeners(): - return [web, allBuildsEmail, IRC] diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py deleted file mode 100644 index e518c2c..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py +++ /dev/null @@ -1,262 +0,0 @@ -from webkit.basesteps import ShellCommand, SVN, Test, Compile, UploadCommand -from buildbot.status.builder import SUCCESS, FAILURE, WARNINGS - -class CheckOutSource(SVN): - baseURL = "http://svn.webkit.org/repository/webkit/" - mode = "update" - def __init__(self, *args, **kwargs): - SVN.__init__(self, baseURL=self.baseURL, defaultBranch="trunk", mode=self.mode, *args, **kwargs) - -class SetConfiguration(ShellCommand): - command = ["perl", "./WebKitTools/Scripts/set-webkit-configuration"] - - def __init__(self, *args, **kwargs): - configuration = kwargs.pop('configuration') - self.command = self.command + ['--' + configuration] - self.name = "set-configuration-%s" % (configuration, ) - self.description = ["set configuration %s" % (configuration, )] - self.descriptionDone = ["set configuration %s" % (configuration, )] - ShellCommand.__init__(self, *args, **kwargs) - - -class LayoutTest(Test): - name = "layout-test" - description = ["layout-tests running"] - descriptionDone = ["layout-tests"] - command = ["perl", "./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-new-test-results", "--no-sample-on-timeout", "--results-directory", "layout-test-results"] - - def commandComplete(self, cmd): - Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - incorrectLayoutLines = [line for line in logText.splitlines() if line.find('had incorrect layout') >= 0 or (line.find('test case') >= 0 and (line.find(' crashed') >= 0 or line.find(' timed out') >= 0))] - self.incorrectLayoutLines = incorrectLayoutLines - - def evaluateCommand(self, cmd): - if self.incorrectLayoutLines or cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectLayoutLines: - return self.incorrectLayoutLines - - return [self.name] - - -class JavaScriptCoreTest(Test): - name = "jscore-test" - description = ["jscore-tests running"] - descriptionDone = ["jscore-tests"] - command = ["perl", "./WebKitTools/Scripts/run-javascriptcore-tests"] - logfiles = {'results': 'JavaScriptCore/tests/mozilla/actual.html'} - - def commandComplete(self, cmd): - Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - statusLines = [line for line in logText.splitlines() if line.find('regression') >= 0 and line.find(' found.') >= 0] - if statusLines and statusLines[0].split()[0] != '0': - self.regressionLine = statusLines[0] - else: - self.regressionLine = None - - def evaluateCommand(self, cmd): - if self.regressionLine: - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.regressionLine: - return [self.name, self.regressionLine] - - return [self.name] - -class PixelLayoutTest(LayoutTest): - name = "pixel-layout-test" - description = ["pixel-layout-tests running"] - descriptionDone = ["pixel-layout-tests"] - command = LayoutTest.command + ["--pixel", "--tolerance", "0.1"] - - -class LeakTest(LayoutTest): - command = ["perl", "./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-sample-on-timeout", "--leaks", "--results-directory", "layout-test-results"] - - def commandComplete(self, cmd): - LayoutTest.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - lines = logText.splitlines() - leakLines = [line for line in lines if line.find('total leaks found!') >= 0] - leakLines += [line for line in lines if line.find('LEAK: ') >= 0] - leakLines = [' '.join(x.split()[1:]) for x in leakLines] - - leakSummary = {} - for line in leakLines: - count, key = line.split(' ', 1) - if key.find('total leaks found!') >= 0: - key = 'allocations found by "leaks" tool' - - leakSummary[key] = leakSummary.get(key, 0) + int(count) - - leakSummaryLines = [] - for key in sorted(leakSummary.keys()): - leakSummaryLines.append('%s %s' % (leakSummary[key], key)) - - self.incorrectLayoutLines += leakSummaryLines - - -class UploadLayoutResults(UploadCommand, ShellCommand): - name = "upload-results" - description = ["uploading results"] - descriptionDone = ["uploaded-results"] - command = "echo Disabled for now" - - def __init__(self, *args, **kwargs): - ShellCommand.__init__(self, *args, **kwargs) - - def setBuild(self, build): - ShellCommand.setBuild(self, build) - self.initializeForUpload() - - self.command = ''' - if [[ -d layout-test-results ]]; then \ - find layout-test-results -type d -print0 | xargs -0 chmod ug+rx; \ - find layout-test-results -type f -print0 | xargs -0 chmod ug+r; \ - rsync -rlvzP --rsync-path=/home/buildresults/bin/rsync layout-test-results/ %s && rm -rf layout-test-results; \ - fi; \ - CRASH_LOG=~/Library/Logs/CrashReporter/DumpRenderTree*.crash*; \ - if [[ -f $(ls -1 $CRASH_LOG | head -n 1 ) ]]; then \ - chmod ug+r $CRASH_LOG; \ - rsync -rlvzP --rsync-path=/home/buildresults/bin/rsync $CRASH_LOG %s && rm -rf $CRASH_LOG; \ - fi; ''' % (self.getRemotePath(), self.getRemotePath()) - - self.addFactoryArguments(command=self.command) - - -class CompileWebKit(Compile): - command = ["perl", "./WebKitTools/Scripts/build-webkit"] - env = {'WEBKITSUPPORTLIBRARIESZIPDIR': 'C:\\cygwin\\home\\buildbot', 'MFLAGS':''} - def __init__(self, *args, **kwargs): - configuration = kwargs.pop('configuration') - - self.name = "compile-" + configuration - self.description = ["compiling " + configuration] - self.descriptionDone = ["compiled " + configuration] - - Compile.__init__(self, env=self.env, *args, **kwargs) - -class CleanWebKit(CompileWebKit): - command = CompileWebKit.command + ['--clean'] - description = ['cleaning'] - descriptionDone = ['cleaned'] - -class CompileWebKitNoSVG(CompileWebKit): - command = 'rm -rf WebKitBuild && perl ./WebKitTools/Scripts/build-webkit --no-svg' - -class CompileWebKitGtk(CompileWebKit): - command = ['perl', './WebKitTools/Scripts/build-webkit', '--gtk', '--qmake=qmake-qt4'] - -class CleanWebKitGtk(CompileWebKitGtk): - command = CompileWebKitGtk.command + ['--clean'] - description = ['cleaning'] - descriptionDone = ['cleaned'] - -class CompileWebKitWx(CompileWebKit): - command = ['perl', './WebKitTools/Scripts/build-webkit', '--wx'] - -class CleanWebKitWx(CompileWebKitWx): - command = CompileWebKitWx.command + ['--clean'] - description = ['cleaning'] - descriptionDone = ['cleaned'] - -class CompileWebKitWindows(UploadCommand, CompileWebKit): - def setBuild(self, build): - CompileWebKit.setBuild(self, build) - self.initializeForUpload() - - self.command = '''\ - ./WebKitTools/Scripts/build-webkit; \ - RESULT=$? - for log in $(find WebKitBuild/*/*/*/*.htm); do \ - chmod ug+r $log; \ - REMOTE_NAME=$(echo $log | sed -e 's|WebKitBuild/obj/||' -e 's|/Release/|-|' -e 's|/Debug/|-|'); \ - rsync -rlvzP --rsync-path="/home/buildresults/bin/rsync" $log %s/$REMOTE_NAME && rm $log; \ - done; \ - exit $RESULT;''' % (self.getRemotePath(), ) - - self.addFactoryArguments(command=self.command) - -class LayoutTestWindows(LayoutTest): - env = {'WEBKIT_TESTFONTS': 'C:\\cygwin\\home\\buildbot\\WebKitTestFonts'} - - def __init__(self, *args, **kwargs): - return LayoutTest.__init__(self, env=self.env, *args, **kwargs) - - -class JavaScriptCoreTestGtk(JavaScriptCoreTest): - command = JavaScriptCoreTest.command + ['--gtk'] - -class JavaScriptCoreTestWx(JavaScriptCoreTest): - command = JavaScriptCoreTest.command + ['--wx'] - -class LayoutTestQt(LayoutTest): - command = LayoutTest.command + ['--qt'] - -class InstallWin32Dependencies(ShellCommand): - description = ["installing Windows dependencies"] - descriptionDone = ["installed Windows dependencies"] - command = ["perl", "./WebKitTools/Scripts/update-webkit-auxiliary-libs"] - - -# class UploadDiskImage(UploadCommand, ShellCommand): -# description = ["uploading disk image"] -# descriptionDone = ["uploaded disk image"] -# name = "upload-disk-image" - -# def __init__(self, *args, **kwargs): -# UploadCommand.__init__(self, *args, **kwargs) -# self.command = 'umask 002 && ./WebKitTools/BuildSlaveSupport/build-launcher-app && ./WebKitTools/BuildSlaveSupport/build-launcher-dmg --upload-to-host %s' % (self.getRemotePath(), ) -# ShellCommand.__init__(self, *args, **kwargs) - -class GenerateCoverageData(Compile): - command = ["perl", "./WebKitTools/Scripts/generate-coverage-data"] - description = ["generating coverage data"] - descriptionDone = ["generated coverage data"] - - -class UploadCoverageData(UploadCommand, ShellCommand): - name = "upload-coverage-data" - description = ["uploading coverage data"] - descriptionDone = ["uploaded-coverage-data"] - command = "echo Disabled for now" - - def __init__(self, *args, **kwargs): - ShellCommand.__init__(self, *args, **kwargs) - - def setBuild(self, build): - ShellCommand.setBuild(self, build) - self.initializeForUpload() - - self.command = '''\ - if [[ -d WebKitBuild/Coverage/html ]]; then \ - find WebKitBuild/Coverage/html -type d -print0 | xargs -0 chmod ug+rx; \ - find WebKitBuild/Coverage/html -type f -print0 | xargs -0 chmod ug+r; \ - rsync -rlvzP --rsync-path="/home/buildresults/bin/rsync" WebKitBuild/Coverage/html/ %s && rm -rf WebKitBuild/Coverage/html; \ - fi;''' % (self.getRemotePath(), ) - - self.addFactoryArguments(command=self.command) - - def getURLPath(self): - return "/results/code-coverage/" diff --git a/WebKitTools/BuildSlaveSupport/built-product-archive b/WebKitTools/BuildSlaveSupport/built-product-archive deleted file mode 100644 index b27cf77..0000000 --- a/WebKitTools/BuildSlaveSupport/built-product-archive +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/python - -# Copyright (C) 2009 Apple Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import optparse, os, shutil, subprocess, sys - -buildDirectory = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "WebKitBuild")) - -def main(): - parser = optparse.OptionParser("usage: %prog [options] [action]") - parser.add_option("--platform", dest="platform") - parser.add_option("--debug", action="store_const", const="debug", dest="configuration") - parser.add_option("--release", action="store_const", const="release", dest="configuration") - - options, (action, ) = parser.parse_args() - if not options.platform: - parser.error("Platform is required") - if not options.configuration: - parser.error("Configuration is required") - if action not in ('archive', 'extract'): - parser.error("Action is required") - - if action == 'archive': - archiveBuiltProduct(options.configuration, options.platform) - else: - extractBuiltProduct(options.configuration, options.platform) - - -def archiveBuiltProduct(configuration, platform): - assert platform in ('mac', 'win','qt') - - archiveFile = os.path.join(buildDirectory, configuration + ".zip") - - try: - os.unlink(archiveFile) - except OSError, e: - if e.errno != 2: - raise - - if platform == 'mac': - configurationBuildDirectory = os.path.join(buildDirectory, configuration.title()) - return subprocess.call(["ditto", "-c", "-k", "--keepParent", "--sequesterRsrc", configurationBuildDirectory, archiveFile]) - elif platform == 'win': - binDirectory = os.path.join(buildDirectory, "bin") - thinDirectory = os.path.join(buildDirectory, "thin") - thinBinDirectory = os.path.join(thinDirectory, "bin") - - if os.path.isdir(thinDirectory): - shutil.rmtree(thinDirectory) - os.mkdir(thinDirectory) - - if subprocess.call(["cp", "-R", binDirectory, thinBinDirectory]): - return 1 - - if subprocess.call("rm -f %s" % os.path.join(thinBinDirectory, "*.ilk"), shell=True): - return 1 - - if subprocess.call(["zip", "-r", archiveFile, "bin"], cwd=thinDirectory): - return 1 - - shutil.rmtree(thinDirectory) - - elif platform == 'qt': - configurationBuildDirectory = os.path.join(buildDirectory, configuration.title()) - thinDirectory = os.path.join(configurationBuildDirectory, "thin") - - if os.path.isdir(thinDirectory): - shutil.rmtree(thinDirectory) - os.mkdir(thinDirectory) - - for dirname in ["bin", "lib", "JavaScriptCore"]: - fromDir = os.path.join(configurationBuildDirectory, dirname) - toDir = os.path.join(thinDirectory, dirname) - if subprocess.call(["cp", "-R", fromDir, toDir]): - return 1 - - for root, dirs, files in os.walk(thinDirectory, topdown=False): - for name in files: - if name.endswith(".o"): - os.remove(os.path.join(root, name)) - - if subprocess.call(["zip", "-y", "-r", archiveFile, "."], cwd=thinDirectory): - return 1 - -def extractBuiltProduct(configuration, platform): - assert platform in ('mac', 'win','qt') - - archiveFile = os.path.join(buildDirectory, configuration + ".zip") - - if platform == 'mac': - configurationBuildDirectory = os.path.join(buildDirectory, configuration.title()) - - if os.path.isdir(configurationBuildDirectory): - shutil.rmtree(configurationBuildDirectory) - - if subprocess.call(["ditto", "-x", "-k", archiveFile, buildDirectory]): - return 1 - os.unlink(archiveFile) - - elif platform == 'win': - binDirectory = os.path.join(buildDirectory, "bin") - if os.path.isdir(binDirectory): - shutil.rmtree(binDirectory) - - os.mkdir(binDirectory) - - safariPath = subprocess.Popen('cygpath -w "$PROGRAMFILES"/Safari', - shell=True, stdout=subprocess.PIPE).communicate()[0].strip() - - if subprocess.call('cp -R "%s"/*.dll "%s"/*.resources %s' % (safariPath, safariPath, binDirectory), shell=True): - return 1 - - if subprocess.call(["unzip", "-o", archiveFile], cwd=buildDirectory): - return 1 - - elif platform == 'qt': - configurationBuildDirectory = os.path.join(buildDirectory, configuration.title()) - - if os.path.isdir(configurationBuildDirectory): - shutil.rmtree(configurationBuildDirectory) - - if subprocess.call(["unzip", "-o", archiveFile, "-d", configurationBuildDirectory], cwd=buildDirectory): - return 1 - os.unlink(archiveFile) - -if __name__ == '__main__': - sys.exit(main()) diff --git a/WebKitTools/BuildSlaveSupport/gtk/README b/WebKitTools/BuildSlaveSupport/gtk/README deleted file mode 100644 index 9e58ae2..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/README +++ /dev/null @@ -1,52 +0,0 @@ -============================================== - Running a GTK+ build slave under daemontools -============================================== - -This directory contains several scripts which can be used to run a WebKitGTK+ -build slave under daemontools [1]. This is convenient because daemontools -will automatically restart services when they die, and that means less human -intervention is needed. - - -Dependencies -============ - -In order to use the provided service control files, you will need the -following: - -* The GNU Bash shell (the scripts contain some bash-isms) - -* The daemontools package (or one of its drop-in replacements, like runit - or freedt; but only daemontools has been tested so far). - -* The crash dump monitor also uses "inotifywait" (part of inotify-tools [2]) - -In short, in a Debian-based system you can ensure you have the needed bits -with the following command: - - apt-get install inotify-tools daemontools-run - - -Setup -===== - -1. Follow the instructions at http://trac.webkit.org/wiki/BuildBot - -2. Install the dependencies outlined above. - -3. Copy "daemontools-buildbot.conf" to "/etc/daemontools-buildbot.conf" - -4. Edit the configuration file to suit your needs, the comments should - be self-explanatory. - -5. Drop the "buildbot", "pulseaudio" and "xvfb" directories (plus - "crashmon", if desired) to the service control directory of - daemontools; for Debian-based setups that would be "/etc/service" - - -References -========== - -[1] http://cr.yp.to/daemontools.html -[2] http://wiki.github.com/rvoicilas/inotify-tools/ - diff --git a/WebKitTools/BuildSlaveSupport/gtk/buildbot/log/run b/WebKitTools/BuildSlaveSupport/gtk/buildbot/log/run deleted file mode 100755 index cc2c87e..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/buildbot/log/run +++ /dev/null @@ -1,38 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -: ${BUILDBOT_CONFIG:=/etc/daemontools-buildbot.conf} - -# Read configuration file -[ -r "${BUILDBOT_CONFIG}" ] && . "${BUILDBOT_CONFIG}" - -: ${buildbot_user:=${HOME}} -: ${buildbot_log_path:=/var/log/buildbot} - -# Expand all "env_*" environment variables -for varname in ${!env_*} ; do - eval "export ${varname#env_}=\${${varname}}" -done - -mkdir -p "${buildbot_log_path}" -chown "${buildbot_user}" "${buildbot_log_path}" - -exec /usr/bin/setuidgid "${buildbot_user}" \ - /usr/bin/multilog t "${buildbot_log_path}" - diff --git a/WebKitTools/BuildSlaveSupport/gtk/buildbot/run b/WebKitTools/BuildSlaveSupport/gtk/buildbot/run deleted file mode 100755 index b26fe58..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/buildbot/run +++ /dev/null @@ -1,77 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -exec 2>&1 - -: ${BUILDBOT_CONFIG:=/etc/daemontools-buildbot.conf} - -# Read configuration file -[ -r "${BUILDBOT_CONFIG}" ] && . "${BUILDBOT_CONFIG}" - -# Expand all "env_*" environment variables -for varname in ${!env_*} ; do - eval "export ${varname#env_}=\${${varname}}" -done - - -if ! [ "${buildbot_path}" ] ; then - echo "No \${buildbot_path} defined! (will sleep for 5 minutes)" - sleep 300 - exit 111 -fi - - -if ! [ "${WEBKIT_TESTFONTS}" ] ; then - echo "No \${WEBKIT_TESTFONTS} environment variable! (will sleep for 5 minutes)" - sleep 300 - exit 111 -fi - - -if [ "${coredump_output:=''}" ] ; then - # Ensure that the output directory exists. - if [[ ! -d ${crashmon_output} ]] ; then - mkdir -p "${crashmon_output}" - fi - - ulimit -c "${crashmon_max_size:=unlimited}" -fi - - -if [ "${ccache_path}" ] ; then - export PATH="${ccache_path}:${PATH}" -fi - -: ${buildbot_user:=${USER}} - -cd "${buildbot_path}" -exec /usr/bin/env - \ - TERM=dumb \ - TZ=PST8PDT \ - PATH="${PATH}" \ - SHELL=/bin/bash \ - LANG=en_US.UTF-8 \ - USER="${buildbot_user}" \ - LOGNAME="${buildbot_user}" \ - HOME="/home/${buildbot_user}" \ - DISPLAY="${xvfb_display:-':10'}" \ - MAIL="/var/mail/${buildbot_user}" \ - /usr/bin/setuidgid "${buildbot_user}" \ - /usr/bin/twistd -noy buildbot.tac - diff --git a/WebKitTools/BuildSlaveSupport/gtk/crashmon/crashmon b/WebKitTools/BuildSlaveSupport/gtk/crashmon/crashmon deleted file mode 100755 index 41705a2..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/crashmon/crashmon +++ /dev/null @@ -1,73 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Carlos Lopez <clopez@igalia.com>, Igalia S.L. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -set -e - -[ "${coredir}" ] || { - echo "Env var '\${coredir}' not defined!" >&2 - exit 111 -} -[ "${programpath}" ] || { - echo "Env var '\${programpath}' not defined" >&2 - exit 111 -} -[ "${arch}" ] || { - echo "Env var '\${arch}' not defined" >&2 - exit 111 -} -[ "${mailto}" ] || { - echo "Env var '\${mailto}' not defined" >&2 - exit 111 -} - - -inotifywait -q -m --format '%f' --exclude '.trace.html$' -e close_write "${coredir}" | \ -while read -r coredump -do - if grep -qE '^core-when_[[:digit:]]{10\,12}-_-who_[[:print:]]+-_-why_' <<< "${coredump}" - then - # Get revision number from Subversion sources - rev=$(cd "${crashmon_src_path}" && svn info | sed -e '/^Revision:/s/Revision: //p' -e d) - - # Get the who from the coredump name - programfile=$(echo "${coredump}" \ - | awk -F'-_-who_' '{ print $2 }'\ - | awk -F'-_-why_' '{ print $1 }') - - # Sometimes programfile gets cut when it is a long name: - # Search using wildcards - fullprogrampath=$(find "${programpath}" -executable -name "${programfile}"\* | head -n1) - - ( printf "<html><head><title>StackTrace for ${programfile} from svn" - printf " rev ${rev}</title></head>\n<body>Core dump file: " - printf "<a href=\"cores/${coredump}\">${coredump}</a><br/>\n" - printf "<pre>Executable crashed: ${fullprogrampath}</pre>\n" - printf "<br/><hr><b>Stack Trace:</b><hr><br/>\n<pre>" - - gdb -ex "thread apply all bt" --batch "${fullprogrampath}" "${coredump}" 2>&1 \ - | sed -e 's/\&/\&/g;s/</\</g;s/>/\>/g;s/\"/\"/g' -e "s/'/\&\#039;/g" - - printf "</pre></body></html>\n" - ) > "/var/www/svn_${rev}.${coredump}.trace.html" - - # Make sure the web server can read it - chmod 644 "${coredump}" - fi -done - diff --git a/WebKitTools/BuildSlaveSupport/gtk/crashmon/log/run b/WebKitTools/BuildSlaveSupport/gtk/crashmon/log/run deleted file mode 100755 index 4dcd71f..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/crashmon/log/run +++ /dev/null @@ -1,38 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -: ${BUILDBOT_CONFIG:=/etc/daemontools-buildbot.conf} - -# Read configuration file -[ -r "${BUILDBOT_CONFIG}" ] && . "${BUILDBOT_CONFIG}" - -: ${buildbot_user:=${HOME}} -: ${crashmon_log_path:=/var/log/crashmon} - -# Expand all "env_*" environment variables -for varname in ${!env_*} ; do - eval "export ${varname#env_}=\${${varname}}" -done - -mkdir -p "${crashmon_log_path}" -chown "${buildbot_user}" "${crashmon_log_path}" - -exec /usr/bin/setuidgid "${buildbot_user}" \ - /usr/bin/multilog t "${crashmon_log_path}" - diff --git a/WebKitTools/BuildSlaveSupport/gtk/crashmon/run b/WebKitTools/BuildSlaveSupport/gtk/crashmon/run deleted file mode 100755 index 38be3fe..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/crashmon/run +++ /dev/null @@ -1,74 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -exec 2>&1 - -: ${BUILDBOT_CONFIG:=/etc/daemontools-buildbot.conf} - -# Read configuration file -[ -r "${BUILDBOT_CONFIG}" ] && . "${BUILDBOT_CONFIG}" - -: ${buildbot_user:=${USER:-${LOGNAME}}} -: ${crashmon_output:=''} - -# Expand all "env_*" environment variables -for varname in ${!env_*} ; do - eval "export ${varname#env_}=\${${varname}}" -done - - -if [ ! -d "${crashmon_output}" ] -then - if ! [ "${crashmon_output}" ] - then - echo "Dump directory '${crashmon_output}' does not exist (sleeping)" - fi - sleep $(( 60 * 60 * 4 )) - exit 111 -fi - - -if ! [ "${buildbot_bits}" ] -then - # Guess bits (32/64) from uname -m - machine=$(uname -m) - case ${machine} in - x86_64 | amd64 | ia64 | ppc64) - buildbot_bits="64" ;; - *) - buildbot_bits="32" ;; - esac -fi - -: ${crashmon_bin_path:="${buildbot_path}/gtk-linux-${buildbot_bits}-debug/build/WebKitBuild/Debug/Programs"} - - -cd "${crashmon_output}" -exec /usr/bin/env - \ - PATH="${PATH}" \ - SHELL="/bin/bash" \ - USER="${buildbot_user}" \ - arch="${buildbot_bits}" \ - LOGNAME="${buildbot_user}" \ - coredir="${crashmon_output}" \ - HOME="/home/${buildbot_user}" \ - mailto="${crashmon_mailto:-''}" \ - programpath="${crashmon_bin_path}" \ - /usr/bin/setuidgid "${buildbot_user}" "$(pwd)/crashmon" - diff --git a/WebKitTools/BuildSlaveSupport/gtk/daemontools-buildbot.conf b/WebKitTools/BuildSlaveSupport/gtk/daemontools-buildbot.conf deleted file mode 100644 index 59c1c0b..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/daemontools-buildbot.conf +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - - -# Path to the Buildbot slave directory -# -buildbot_path="/home/slave/webkitgtk" - -# User account used to run Buildbot. -# -buildbot_user="slave" - -# Path to a directory where to log Buildbot output -# -buildbot_log_path="/var/log/buildbot" - - -# Display number under which Xvfb will run -# -xvfb_display=":10" - -# Graphical mode which Xvfb will report to applications -# -xvfb_mode="1024x768x24" - -# Path to a directory where to log Xvfb error output -# -xvfb_log_path="/var/log/xvfb" - - -# Output directory for core dumps. Set this to an empty string to -# disable recording them. -# -crashmon_output="/var/www/webkitgtk-coredumps" - -# Maximum size of core dumps. With the default "unlimited" setting -# it is recommended to have ~20GB for cores in 64-bit machines. -# For 32-bit bots, less space is needed. -# -crashmon_max_size="unlimited" - -# Path to a directory where to log crashmon output -# -crashmon_log_path="/var/log/crashmon" - -# A list of e-mail addresses where to send notifications of core dumps. -# Leave empty to disable mail notifications. -# -# WARNING: E-mail addresses will be flooded with messages! -# -crashmon_mailto="" - -# Base directory where to find sources and built binaries of which -# crash dumps are to be catched. Usually you will not need to change this. -# -crashmon_src_path="${buildbot_path}/gtk-linux-${buildbot_bits}-debug/build" -crashmon_bin_path="${crashmon_src_path}/WebKitBuild/Debug/Programs" - - -# If you want to use ccache, set a path to where synlinks with tool -# names pointing to ccache are installed. In Debian systems this -# would be /usr/lib/ccache. Set to empty to disable. -# -ccache_path="/usr/lib/ccache" - - -# Environment variables. Prefix them with "env_". -# -env_CFLAGS="-pipe" -env_CXXFLAGS="-pipe" -env_WebKitMakeArguments="-j3" -env_WEBKIT_TESTFONTS="/home/${buildbot_user}/testfonts" - diff --git a/WebKitTools/BuildSlaveSupport/gtk/pulseaudio/run b/WebKitTools/BuildSlaveSupport/gtk/pulseaudio/run deleted file mode 100755 index 37ba0de..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/pulseaudio/run +++ /dev/null @@ -1,24 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -exec 2>&1 -exec /usr/bin/pulseaudio --system \ - --disallow-exit --disallow-module-loading \ - --log-target=syslog - diff --git a/WebKitTools/BuildSlaveSupport/gtk/xvfb/log/run b/WebKitTools/BuildSlaveSupport/gtk/xvfb/log/run deleted file mode 100755 index 1c83922..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/xvfb/log/run +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -: ${BUILDBOT_CONFIG:=/etc/daemontools-buildbot.conf} - -# Read configuration file -[ -r "${BUILDBOT_CONFIG}" ] && . "${BUILDBOT_CONFIG}" - -: ${buildbot_user:=${HOME}} -: ${xvfb_log_path:=/var/log/xvfb} - -# Expand all "env_*" environment variables -for varname in ${!env_*} ; do - eval "export ${varname#env_}=\${${varname}}" -done - -mkdir -p "${xvfb_log_path}" -chown "${buildbot_user}" "${xvfb_log_path}" - -exec /usr/bin/setuidgid "${buildbot_user}" \ - /usr/bin/multilog t "${xvfb_log_path}" diff --git a/WebKitTools/BuildSlaveSupport/gtk/xvfb/run b/WebKitTools/BuildSlaveSupport/gtk/xvfb/run deleted file mode 100755 index 89cd301..0000000 --- a/WebKitTools/BuildSlaveSupport/gtk/xvfb/run +++ /dev/null @@ -1,41 +0,0 @@ -#! /bin/bash -# -# Copyright (C) 2010 Igalia S.L. All rights reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with this library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -exec 2>&1 - -: ${BUILDBOT_CONFIG:=/etc/daemontools-buildbot.conf} - -# Read configuration file -[ -r "${BUILDBOT_CONFIG}" ] && . "${BUILDBOT_CONFIG}" - -: ${xvfb_display:=':10'} -: ${xvfb_mode:='1024x768x24'} - -# Expand all "env_*" environment variables -for varname in ${!env_*} ; do - eval "export ${varname#env_}=\${${varname}}" -done - -mkdir -p "xvfb${xvfb_display}" -exec /usr/bin/Xvfb "${xvfb_display}" \ - -fbdir "xvfb${xvfb_display}" \ - -screen 0 "${xvfb_mode}" \ - -nolisten inet6 \ - -nolisten inet - diff --git a/WebKitTools/BuildSlaveSupport/run-performance-tests b/WebKitTools/BuildSlaveSupport/run-performance-tests deleted file mode 100755 index 5d6ea44..0000000 --- a/WebKitTools/BuildSlaveSupport/run-performance-tests +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/perl -w - -# Copyright (C) 2006 Apple Computer, Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Script used by WebKit build slave to kick off performance tests. - -use strict; - -use FindBin; -use lib "$FindBin::Bin/../Scripts"; -use webkitdirs; - -use Getopt::Long; -use IO::Socket; -my $shouldPrebuild = 1; - -my $perfMaster = "webkit-build-1.local"; -my $perfSlave = "webkit-build-2.local"; -my $slaveUser = "buildbot"; -my $reportPort = 54481; # Something that looks sorta like SAFARI -my $slaveDirectory = "/ToTest"; - -my $buildDirectory = determineConfigurationProductDir(); - -my $userAndHost = $slaveUser . "@" . $perfSlave; -my $resultsUploadDestination; - -GetOptions('upload-results=s' => \$resultsUploadDestination); - -print "Copying built frameworks to PLT slave...\n"; -my @frameworks = ("$buildDirectory/JavaScriptCore.framework", "$buildDirectory/WebCore.framework", "$buildDirectory/WebKit.framework"); -die "Failed to copy to slave\n" unless (system("rsync", "-avz", @frameworks, "$userAndHost:$slaveDirectory") == 0); - -print "Opening reponse port for PLT slave...\n"; -my $sock = new IO::Socket::INET(LocalHost => $perfMaster, - LocalPort => $reportPort, - Proto => 'tcp', - Listen => 1, - Reuse => 1); -die "Could not create socket for port $reportPort: $!\n" unless $sock; - -print "Starting performance tests on PLT slave...\n"; -die "Failed to start slave!\n" unless (system("ssh", $userAndHost, "autovicki", $slaveDirectory, "--safari", "$slaveDirectory/Safari.app", "--count", 5, "--clean-exit", "--webkit-revision", currentSVNRevision(), "--show-results", "send-completed-results.command") == 0); - -print "Waiting for PLT slave to respond...\n"; -my $new_sock = $sock->accept(); -while(<$new_sock>) { - print $_; -} -close($sock); - -if ($resultsUploadDestination) { - print "Uploading results to $resultsUploadDestination\n"; - die "Failed to upload xml results file." unless (system("scp", "$userAndHost:/Results/PerformanceReportSummary.xml", $resultsUploadDestination) == 0); - die "Failed to upload svg results file." unless (system("scp", "$userAndHost:/Results/PerformanceGraph.svg", $resultsUploadDestination) == 0); -} diff --git a/WebKitTools/BuildSlaveSupport/test-result-archive b/WebKitTools/BuildSlaveSupport/test-result-archive deleted file mode 100644 index af66bf0..0000000 --- a/WebKitTools/BuildSlaveSupport/test-result-archive +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/python - -# Copyright (C) 2009 Apple Inc. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import optparse, os, shutil, subprocess, sys, zipfile - -sourceRootDirectory = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) -archiveFile = os.path.join(sourceRootDirectory, "layout-test-results.zip") - -def main(): - parser = optparse.OptionParser("usage: %prog [options] [action]") - parser.add_option("--platform", dest="platform") - parser.add_option("--debug", action="store_const", const="debug", dest="configuration") - parser.add_option("--release", action="store_const", const="release", dest="configuration") - - options, (action, ) = parser.parse_args() - if not options.platform: - parser.error("Platform is required") - if not options.configuration: - parser.error("Configuration is required") - if action not in ('archive'): - parser.error("Action is required") - - layoutTestResultsDir = os.path.abspath(os.path.join(sourceRootDirectory, "layout-test-results")) - if options.platform == 'chromium': - # See results_directory() in webkitpy/layout_tests/port/chromium.py. - layoutTestResultsDir = os.path.abspath(os.path.join(sourceRootDirectory, - "WebKit", "chromium", "webkit", options.configuration.capitalize(), - "layout-test-results")) - - return archiveTestResults(options.configuration, options.platform, layoutTestResultsDir) - -def archiveTestResults(configuration, platform, layoutTestResultsDir): - assert platform in ('mac', 'win', 'gtk', 'qt', 'chromium') - - try: - os.unlink(archiveFile) - except OSError, e: - if e.errno != 2: - raise - - try: - # Ensure that layoutTestResultsDir exists since we cannot archive a directory that does not exist - os.makedirs(layoutTestResultsDir) - except OSError, e: - if e.errno != 17: - raise - - open(os.path.join(layoutTestResultsDir, '.placeholder'), 'w').close() - - if platform == 'mac': - if subprocess.call(["ditto", "-c", "-k", "--sequesterRsrc", layoutTestResultsDir, archiveFile]): - return 1 - elif platform in ('win', 'gtk', 'qt'): - if subprocess.call(["zip", "-r", archiveFile, "."], cwd=layoutTestResultsDir): - return 1 - elif platform == 'chromium': - cwd = os.getcwd() - os.chdir(layoutTestResultsDir) - zipFilesRecursively(archiveFile, ["."]) - os.chdir(cwd) - - try: - shutil.rmtree(layoutTestResultsDir) - except OSError, e: - - # Python in Cygwin throws a mysterious exception with errno of 90 - # when removing the layout test result directory after successfully - # deleting its contents, claiming "Directory not empty". - # We can safely ignore this since it was the directory contents that - # we are most interested in deleting. - if e.errno != 90: - raise - -def zipFilesRecursively(archiveFile, files): - """Make a zip archive. - - Args: - archiveFile: The resultant zip archive file name. - files: A list of files to be archived. If a list item is a directory, - files in the directory are archived recursively.""" - zipper = zipfile.ZipFile(archiveFile, 'w', zipfile.ZIP_DEFLATED) - for file in files: - if os.path.isdir(file): - for dirPath, dirNames, fileNames in os.walk(file): - for fileName in fileNames: - relativePath = os.path.join(dirPath, fileName) - print "Adding", relativePath - zipper.write(relativePath) - else: - print "Adding", file - zipper.write(file) - zipper.close() - print "Created zip archive: ", archiveFile - -if __name__ == '__main__': - sys.exit(main()) diff --git a/WebKitTools/BuildSlaveSupport/win/kill-old-processes b/WebKitTools/BuildSlaveSupport/win/kill-old-processes deleted file mode 100755 index 6760e08..0000000 --- a/WebKitTools/BuildSlaveSupport/win/kill-old-processes +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/python
-
-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import os, sys
-
-def main():
- tasksToKill = ["DumpRenderTree.exe", "DumpRenderTree_debug.exe", "testapi.exe", "testapi_debug.exe",
- "svn.exe", "httpd.exe", "cl.exe", "link.exe", "midl.exe", "devenv.exe", "perl.exe",
- "imagediff.exe", "imagediff_debug.exe", "jsc.exe", "jsc_debug.exe", "WebKit2WebProcess.exe",
- "WebKit2WebProcess_debug.exe", "WebKitTestRunner.exe", "WebKitTestRunner_debug.exe"]
-
- for task in tasksToKill:
- os.system("taskkill /f /im " + task)
-
-if __name__ == '__main__':
- sys.exit(main())
|