1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-24 15:52:41 +01:00
phorge-phorge/resources/sql/patches/20131107.buildlog.sql
James Rhodes 0ac1be7094 Implemented support for build logs
Summary:
Depends on D7519.

This implements support for build logs in Harbormaster.  This includes support for appending to a log from the "Run Remote Command" build step.

It also adds the ability to cancel builds.

Currently the build view page doesn't update the logs live; I'm sure this can be achieved with Javelin, but I don't have enough experience with Javelin to actually make it poll from updates to content in the background.

{F79151}

{F79153}

{F79150}

{F79152}

Test Plan:
Tested this by setting up SSH on a Windows machine and using a Remote Command configured with:

```
C:\Windows\system32\cmd.exe /C cd C:\Build && mkdir Build_${timestamp} && cd Build_${timestamp} && git clone --recursive https://github.com/hach-que/Tychaia.git && cd Tychaia && Protobuild.exe && C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Tychaia.Windows.sln
```

and observed the output of the build stream from the Windows machine into Phabricator.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley

CC: Korvin, epriestley, aran

Maniphest Tasks: T1049

Differential Revision: https://secure.phabricator.com/D7521
2013-11-08 18:15:07 -08:00

26 lines
1 KiB
SQL

CREATE TABLE {$NAMESPACE}_harbormaster.harbormaster_buildlog (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARCHAR(64) NOT NULL COLLATE utf8_bin,
buildPHID VARCHAR(64) NOT NULL COLLATE utf8_bin,
buildStepPHID VARCHAR(64) NOT NULL COLLATE utf8_bin,
logSource VARCHAR(255) NULL COLLATE utf8_bin,
logType VARCHAR(255) NULL COLLATE utf8_bin,
duration INT UNSIGNED NULL,
live BOOLEAN NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
KEY `key_build` (buildPHID, buildStepPHID),
UNIQUE KEY `key_phid` (phid)
) ENGINE=InnoDB, COLLATE utf8_general_ci;
ALTER TABLE {$NAMESPACE}_harbormaster.harbormaster_build
ADD COLUMN cancelRequested BOOLEAN NOT NULL;
CREATE TABLE {$NAMESPACE}_harbormaster.harbormaster_buildlogchunk (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
logID INT UNSIGNED NOT NULL COLLATE utf8_bin,
encoding VARCHAR(30) NOT NULL COLLATE utf8_bin,
size LONG NULL,
chunk LONGBLOB NOT NULL,
KEY `key_log` (logID)
) ENGINE=InnoDB, COLLATE utf8_general_ci;