{"action":"created","issue":{"url":"https://api.github.com/repos/google/grr/issues/113","labels_url":"https://api.github.com/repos/google/grr/issues/113/labels{/name}","comments_url":"https://api.github.com/repos/google/grr/issues/113/comments","events_url":"https://api.github.com/repos/google/grr/issues/113/events","html_url":"https://github.com/google/grr/pull/113","id":57035682,"number":113,"title":"Basic travis build script","user":{"login":"dionyziz","id":544572,"avatar_url":"https://avatars.githubusercontent.com/u/544572?v=3","gravatar_id":"","url":"https://api.github.com/users/dionyziz","html_url":"https://github.com/dionyziz","followers_url":"https://api.github.com/users/dionyziz/followers","following_url":"https://api.github.com/users/dionyziz/following{/other_user}","gists_url":"https://api.github.com/users/dionyziz/gists{/gist_id}","starred_url":"https://api.github.com/users/dionyziz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dionyziz/subscriptions","organizations_url":"https://api.github.com/users/dionyziz/orgs","repos_url":"https://api.github.com/users/dionyziz/repos","events_url":"https://api.github.com/users/dionyziz/events{/privacy}","received_events_url":"https://api.github.com/users/dionyziz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"grrrrrrrrr","id":7632102,"avatar_url":"https://avatars.githubusercontent.com/u/7632102?v=3","gravatar_id":"","url":"https://api.github.com/users/grrrrrrrrr","html_url":"https://github.com/grrrrrrrrr","followers_url":"https://api.github.com/users/grrrrrrrrr/followers","following_url":"https://api.github.com/users/grrrrrrrrr/following{/other_user}","gists_url":"https://api.github.com/users/grrrrrrrrr/gists{/gist_id}","starred_url":"https://api.github.com/users/grrrrrrrrr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grrrrrrrrr/subscriptions","organizations_url":"https://api.github.com/users/grrrrrrrrr/orgs","repos_url":"https://api.github.com/users/grrrrrrrrr/repos","events_url":"https://api.github.com/users/grrrrrrrrr/events{/privacy}","received_events_url":"https://api.github.com/users/grrrrrrrrr/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2015-02-09T14:16:27Z","updated_at":"2015-02-25T00:03:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/google/grr/pulls/113","html_url":"https://github.com/google/grr/pull/113","diff_url":"https://github.com/google/grr/pull/113.diff","patch_url":"https://github.com/google/grr/pull/113.patch"},"body":"This pull request introduces a first version of the travis build. It makes the necessary changes required to get this running on travis systems.\r\n\r\nI'm introducing two separate installation scripts that are responsible for different stages of setting up the grr environment in order to be able to run it on travis:\r\n\r\n* `before_install.sh` installs all the necessary dependencies on the vanilla travis system. This includes ubuntu repository `apt-get install` commands and `apt-get install` commands from `plaso`,  and some manual installation of `.deb` files. These are explained in detail below.\r\n\r\n* `install.sh` fires up the `pip` installation of packages and runs the required `make` command on the pure source in order to do the necessary building for artifacts and protobufs.\r\n\r\nThe several `apt-get install` commands from the official ubuntu repositories are mostly taken from the previous installation script that was available before this PR. However, additional packages had to be introduced, as the travis environment is a relatively clean ubuntu environment which is missing a lot of libraries. The travis environment also runs Ubuntu 12.04. This has some minor incompatibilities compared to Ubuntu 14.04 which is what the previous installation script was written for.\r\n\r\nSome `apt-get install` commands from the `plaso` repository are required for packages that are not available in the regular ubuntu repositories (or do not include patches we need), such as m2crypto and pytsk.\r\n\r\nThe `pip` installation is based on the newly introduced `requirements.txt` file which has been separated out. These used to work with `apt-get`, but having a requirements.txt file is a better practice for python packages. The new requirements.txt has already been merged in my previous pull request #100 which was cherry-picked from this pull request, so only minor changes in that file are visible in this PR.\r\n\r\nI'm also introducing the `run_tests.sh` which is used to run all the python unit tests. This is needed to include a black-list of excluded tests. The rationale behind excluded tests is to start with a minimal travis build and go from there. We can start adding more tests as we go. However, as travis will be used to evaluate external pull-requests, it's important that we use a black list instead of a white list.\r\n\r\nThe `run_tests.sh` file also filters out verbose error messages using `grep`. This is needed as travis runs out of both buffer sizes if we don't apply it. The two buffer sizes are the visible buffer (on the travis website) and the download buffer (for when downloading the log). Travis thinks a huge log indicates an infinite loop, so we have to keep our logging somewhat limited. While this should be fixed at the python logging module level, it's currently easier to achieve it with a grep, as there's some awkward things going on with config files in the test runner.\r\n\r\nrun_tests.py has been modified to include some bug fixes and work-arounds. While it is not perfect, it's a first step in getting this up. Additional bugfixes will be coming in next PRs."},"comment":{"url":"https://api.github.com/repos/google/grr/issues/comments/75878469","html_url":"https://github.com/google/grr/pull/113#issuecomment-75878469","issue_url":"https://api.github.com/repos/google/grr/issues/113","id":75878469,"user":{"login":"dionyziz","id":544572,"avatar_url":"https://avatars.githubusercontent.com/u/544572?v=3","gravatar_id":"","url":"https://api.github.com/users/dionyziz","html_url":"https://github.com/dionyziz","followers_url":"https://api.github.com/users/dionyziz/followers","following_url":"https://api.github.com/users/dionyziz/following{/other_user}","gists_url":"https://api.github.com/users/dionyziz/gists{/gist_id}","starred_url":"https://api.github.com/users/dionyziz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dionyziz/subscriptions","organizations_url":"https://api.github.com/users/dionyziz/orgs","repos_url":"https://api.github.com/users/dionyziz/repos","events_url":"https://api.github.com/users/dionyziz/events{/privacy}","received_events_url":"https://api.github.com/users/dionyziz/received_events","type":"User","site_admin":false},"created_at":"2015-02-25T00:03:14Z","updated_at":"2015-02-25T00:03:14Z","body":"All taken care of. PTAL @scudette @grrrrrrrrr."}}