You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.6 KiB
83 lines
1.6 KiB
use strict; |
|
|
|
sub DoBuild |
|
{ |
|
my @output; |
|
my $buildtype = shift; |
|
if( $buildtype eq "release" ) |
|
{ |
|
open BUILD, "dev_build_all.bat|"; |
|
} |
|
elsif( $buildtype eq "debug" ) |
|
{ |
|
open BUILD, "dev_build_all.bat debug|"; |
|
} |
|
else |
|
{ |
|
die; |
|
} |
|
my $buildfailed = 0; |
|
while( <BUILD> ) |
|
{ |
|
if( /Build Errors\!/ ) |
|
{ |
|
$buildfailed = 1; |
|
} |
|
print; |
|
push @output, $_; |
|
} |
|
close build; |
|
|
|
if( $buildfailed ) |
|
{ |
|
open CHANGES, "p4 changes -m 10 -s submitted //ValveGames/main/src/...|"; |
|
my @changes = <CHANGES>; |
|
close CHANGES; |
|
open EMAIL, ">email.txt"; |
|
print EMAIL "LAST 10 SUBMITS TO MAIN:\n"; |
|
print EMAIL @changes; |
|
print EMAIL "\n"; |
|
my $line; |
|
foreach $line ( @output ) |
|
{ |
|
if( $line =~ m/error/i ) |
|
{ |
|
print EMAIL $line; |
|
} |
|
} |
|
print EMAIL "--------------------------------------------\n\n\n\n"; |
|
print EMAIL @output; |
|
close EMAIL; |
|
system "devtools\\bin\\smtpmail.exe -to srcdev\@valvesoftware.com -from srcdev\@valvesoftware.com -subject \"FIX THE BUILD\! ($buildtype)\" -verbose email.txt"; |
|
# system "devtools\\bin\\smtpmail.exe -to gary\@valvesoftware.com -from srcdev\@valvesoftware.com -subject \"FIX THE BUILD\! ($buildtype)\" -verbose email.txt"; |
|
} |
|
} |
|
|
|
while( 1 ) |
|
{ |
|
$ENV{"USE_INCREDIBUILD"} = "1"; |
|
system "p4 sync > sync.txt 2>&1"; |
|
my $hasChange = 1; |
|
my $line; |
|
open SYNC, "<sync.txt"; |
|
while( <SYNC> ) |
|
{ |
|
if( m/File\(s\) up-to-date/ ) |
|
{ |
|
$hasChange = 0; |
|
} |
|
print; |
|
} |
|
close SYNC; |
|
if( $hasChange ) |
|
{ |
|
print "changes checked in\n"; |
|
&DoBuild( "release" ); |
|
&DoBuild( "debug" ); |
|
} |
|
else |
|
{ |
|
print "no changes checked in\n"; |
|
sleep 30; |
|
} |
|
} |