261 Commits

Author SHA1 Message Date
Mike McQuaid
f946693b56 test-bot: remove support for legacy Homebrew repo. (#287)
We're not really getting any more PRs here and this code makes this file
harder to follow and refactor.
2016-05-28 18:48:51 +01:00
Mike McQuaid
53b280c592 test-bot: fix tag reference. 2016-05-28 16:10:06 +01:00
Mike McQuaid
6ba466f5d8 Use JSON files for bottle upload data. (#166)
This means that we do not need to read formulae or evaluate Ruby at
upload time.
2016-05-28 15:54:05 +01:00
Mike McQuaid
5c1f463ac0 Move more methods to DevelopmentTools.
Closes #1028.
2016-05-10 08:19:48 +01:00
Mike McQuaid
931e292bf1 Make bottle code cross-platform. 2016-05-08 16:51:22 +01:00
Mike McQuaid
1c1c48c920 test-bot: only push once when uploading. 2016-05-06 11:00:22 +01:00
Martin Afanasjew
02289fce42 Update Homebrew/homebrew references in code
Replace `homebrew` with `brew`, `homebrew-core`, or `legacy-homebrew`
depending on context.
2016-05-02 21:19:09 +02:00
Martin Afanasjew
8600b9edf1 Update Homebrew/homebrew references in comments
Replace `homebrew` with `brew`, `homebrew-core`, or `legacy-homebrew`
depending on context.
2016-05-02 21:19:09 +02:00
Xu Cheng
799d3aec15 test-bot: simplify the logic
Closes #115.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-04-19 16:29:29 +08:00
Xu Cheng
5d1e648194 test-bot: prevent infinite loop caused by unavailable formula.
Noted, `brew tap foo` will not fail if the tap is already installed.
2016-04-19 14:21:42 +08:00
Andrew Janke
da34fba151 test-bot: check all dependents for broken dylibs
Pulls 'brew linkage' in to main brew repo as a dev-cmd, and has test-bot
use it to detect dylib breakage, which usually means a revision bump is
needed. Checks all dependents, not just those with a 'test do' block
defined, since we can do this without formula support.

Closes #107.

Signed-off-by: Andrew Janke <andrew@apjanke.net>
2016-04-18 13:37:34 -04:00
Dominyk Tiller
c3c233dd80 test-bot: don't untap during cleanup_before 2016-04-18 17:54:41 +01:00
Dominyk Tiller
46cfc9826c test-bot: purge non-core taps at start/end of job (#109)
e70a3552d3 seems to have
exacerbated the problem where taps stick around and then `brew uses` gets executed
on a whole host of taps, which is currently breaking almost every PR for formulae
that would be used cross-tap, as well as causing lengthier CI builds.

Examples from the last week or so include sqlite, V8, protobuf, and so on. Whilst it
may be true that cross-tap formulae failing can show problems that need looking at,
a lot of the time the failures are unrelated to the build in question and just
leave contributors confused on what needs to be done, or why their PR is failing
for something that seems entirely unrelated.

You can see the taps failing to vanish locally by doing something like:

```
brew tap homebrew/fuse
brew tap homebrew/versions
cd $(brew --prefix) && git clean -ffdx --exclude=/Library/Taps/
brew tap
...
homebrew/core
homebrew/fuse
homebrew/versions
```

This is a very simple proposal to handle the problem, but there's no real reason
I couldn't write this functionality into untap itself and then we call that in
test-bot. Just didn't necessarily want to jump immediately to expanding the untap
command to solve what is more-or-less a CI problem.
2016-04-18 17:39:52 +01:00
Andrew Janke
acc9a7ca85 brew test, install, update-test: add --keep-tmp option
Also enables sandbox for --interactive and --debug use of install
and test, using automatic retention.

Closes #66.

Signed-off-by: Andrew Janke <andrew@apjanke.net>
2016-04-18 12:23:08 -04:00
Xu Cheng
a8be17df57 test-bot: update for new deps/uses options
Closes #92.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-04-16 21:47:47 +08:00
Andrew Janke
1f8b6cb576 test-bot: add safety margin to output truncation size 2016-04-06 16:48:07 -04:00
Dominyk Tiller
bbb1fcd17c test-bot: stop using --recursive for brew uses
We're not sure this is working as it was intended to, and the primary
end product so far has been making every Ruby 1.8.7 build, which is the Ruby
we use on Mavericks for compatibility, take 5-15 minutes longer per build
than 2.x Rubies.

Cumulatively this is responsible for the vast majority of CI slowness over the
last couple months as Mavericks plays catch-up and everything else waits for it
to do so.

We may revisit this in future, but for now the harm is greater than the "risk".

This technically reverts 7b26c585c2.
2016-04-06 17:57:05 +01:00
Martin Afanasjew
37b817ed39 test-bot: fix access to relocated method
Fix bug introduced in a2c23dfec569c6e73d90cb20c7d4c26cced258d5. Moving
this method apparently made it inaccessible from `Homebrew::Step`.
2016-04-06 06:35:28 +02:00
Martin Afanasjew
a2c23dfec5 test-bot: fix undefined method error
The method `fix_encoding!` is private to `Homebrew::Step` but is also
required by the `Homebrew.sanitize_output_for_xml` method for truncating
overly long logs. Move `fix_encoding!` into the `Homebrew` module to
make it accessible from both this method and the `Homebrew::Step` class.

This amends commit 343091c828d1e572829b86253d79b326c1986bcd.
2016-04-06 06:22:22 +02:00
Andrew Janke
343091c828 Merge pull request #27 from apjanke/test-bot-xml-filter
test-bot: revise Step output transcoding and XML character filtering
2016-04-05 17:23:24 -04:00
Dominyk Tiller
20c2cbd98a Revert "test-bot: revise Step output transcoding and XML character filtering"
This reverts commit ceed6636d6986bb2b993ba4680ae484deb76ae29.

```
==> git clean -ffdx
HEAD is now at ceed663 test-bot: revise Step output transcoding and XML character filtering
Removing Library/Homebrew/test/.bundle/
Removing Library/Homebrew/test/fs_leak_log
Removing Library/Homebrew/test/vendor/
Error: invalid regular expression: /[^

 -uD7FFuE000-uFFFDu{10000}-u{10FFFF}]/
```
Using Ruby 1.8.
2016-04-05 05:03:20 +01:00
Andrew Janke
ceed6636d6 test-bot: revise Step output transcoding and XML character filtering
Closes #24.

Signed-off-by: Andrew Janke <andrew@apjanke.net>
2016-04-04 22:18:17 -04:00
Misty De Meo
f8cdab7d8a Make new keep? superenv logic opt-in
Closes #50425.

Signed-off-by: Misty De Meo <mistydemeo@github.com>
2016-04-04 15:30:22 -07:00
Xu Cheng
46c25d9833 test-bot: remove update-test 2016-04-03 21:39:59 +08:00
Andrew Janke
e70a3552d3 test-bot: exclude Taps dir from root cleanup 2016-04-03 14:31:12 +08:00
Andrew Janke
6283a274c8 test-bot: have --cleanup clean core repo as well as tested tap
Fixes Homebrew/homebrew#50651
2016-04-03 14:31:12 +08:00
Xu Cheng
232eccc428 test-bot: fix path in cleanup_before
We should remove PR lock files in the test tap rather than HOMEBREW_REPOSITORY.
2016-04-03 14:31:12 +08:00
Martin Afanasjew
ade39af247 Revert "test-bot: clean up on Jenkins before building PR"
This reverts commit 51e4e6490bda0d981afd1787a6392ab588b0601c. This did
not work as intended, as the `git` command is executed in the context of
the tap the current job operates on, never for Homebrew/homebrew itself.
2016-04-03 12:15:47 +08:00
Martin Afanasjew
75961721ee test-bot: clean up on Jenkins before building PR
Wipe everything from the Homebrew prefix except for the `Library/Taps`
directory to avoid having to refetch `homebrew/core` every time.
2016-04-03 12:15:47 +08:00
Xu Cheng
bdd26d0446 test-bot: ensure tap is full clone 2016-04-03 00:34:09 +08:00
Xu Cheng
4366ea1889 test-bot: fix CI upload for core tap 2016-04-03 00:10:41 +08:00
Xu Cheng
deed8e566c test-bot: handle legacy formulae PR from Homebrew/homebrew
Closes Homebrew/homebrew#50635.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-04-03 00:01:38 +08:00
Xu Cheng
5bb8e8985d audit/test-bot/pull: fix for core/formula separation
All formulae are in taps now.
2016-04-02 21:51:36 +08:00
Xu Cheng
161a1e286e Revert "test-bot: better xml character filtering"
This reverts commit 7032591bd44a8f50aaa55574ac97cd5cb7261460 and
commit 946c6deb4b5168ad2ec15e62aa6e81181e9e246c.
2016-03-14 20:41:33 +08:00
Xu Cheng
60055ba890 test-bot: fix encoding caused by UTF-8 regex 2016-03-14 20:33:35 +08:00
Xu Cheng
a6b918d6c5 test-bot: better xml character filtering
Ref:
 - http://www.w3.org/TR/xml/#charsets
 - http://stackoverflow.com/a/14323524

Closes Homebrew/homebrew#50092.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-03-14 19:58:15 +08:00
Xu Cheng
6f9f3faef3 test-bot: fix wrong tap argument check 2016-03-07 20:00:35 +08:00
Xu Cheng
5b63890198 test-bot: check if current repo is a tap
If it's not a tap, we test formula on CoreTap. This can happen
if we run test on a fork, e.g. Linuxbrew or future Homebrew/brew.

Closes Homebrew/homebrew#49844.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-03-07 19:43:46 +08:00
Xu Cheng
28f3dae8cd rename CoreFormulaRepository to CoreTap
Core tap will be separated from core code in the near future.
It makes sense to rename it to CoreTap.
2016-03-07 19:43:46 +08:00
Tim D. Smith
b4edf23a36 test-bot: make bottle stats visible by default
Closes Homebrew/homebrew#49620.
2016-02-28 09:51:14 -08:00
Xu Cheng
f92fc98ec0 test-bot: change directory for git rev-parse --verify 2016-01-17 15:06:07 +08:00
Xu Cheng
176f345386 test-bot: prevent formula building from source multiple times
After formula updates its bottle block, remove itself from changed
formulae list. Therefore, if it's requested next time as dependency, it
will be installed from bottle just created.

Closes Homebrew/homebrew#48121.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-01-17 14:52:09 +08:00
Xu Cheng
cb3379fcfa test-bot: all formula name are canonical now 2016-01-17 14:52:09 +08:00
Xu Cheng
edca96de04 test-bot: always use canonical formula name
Otherwise, we may get incorrect result when preforming set operations on
list of formula names.
2016-01-17 14:52:09 +08:00
Xu Cheng
b32d21fea0 test-bot: simplify Test#git 2016-01-17 14:52:09 +08:00
Xu Cheng
b73a6f195a test-bot: remove dead code 2016-01-17 14:52:09 +08:00
Xu Cheng
39eb93e0f5 test-bot: simplify Test#initialize 2016-01-17 14:52:09 +08:00
Xu Cheng
01b92edb7b test-bot: fix missing ? 2016-01-14 19:43:33 +08:00
Xu Cheng
e6159eb579 test-bot: always return tap object
Also simplify the code and add Travis auto detect.

Closes Homebrew/homebrew#48060
2016-01-14 19:32:53 +08:00
Dominyk Tiller
cbcfbacf22 test-bot: restore no-bottle support
This feature is still quite useful, particularly because of the somewhat
buggy behaviour of `default_formula` which means when attempting to build
a bottle it'll attempt to force the installation of that formula.

That is particularly problematic for taps like homebrew/homebrew-fuse because
the `default_formula` in osxfuse conflicts with the osxfuse binary we install
via the Caskroom, which is actively breaking every CI build.

Closes Homebrew/homebrew#48000.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2016-01-12 22:16:59 +00:00