GithubHelp home page GithubHelp logo

vmware-archive / projectmonitor Goto Github PK

View Code? Open in Web Editor NEW
428.0 48.0 121.0 44.08 MB

Big Visible Chart CI aggregator

Home Page: http://ci.pivotallabs.com

License: BSD 2-Clause "Simplified" License

Ruby 69.82% JavaScript 16.45% CoffeeScript 4.75% HTML 0.37% Shell 0.47% Dockerfile 0.27% Procfile 0.02% SCSS 4.57% Haml 3.28%

projectmonitor's Introduction

Description Build Status Code Climate

ProjectMonitor is a CI display aggregator. It displays the status of multiple Continuous Integration builds on a single web page. The intent is that you display the page on a big screen monitor or TV so that the status of all your projects' builds are highly visible/glanceable (a "Big Visible Chart"). ProjectMonitor currently supports:

We use ProjectMonitor internally at Pivotal Labs to display the status of the builds for all our client projects. We also have an instance of ProjectMonitor running at ci.pivotallabs.com that we use for displaying the status of the builds of various open source projects - both of projects Pivotal Labs maintains (such as Jasmine) and of non-Pivotal projects (such as Rails).

In practice, ProjectMonitor is often displayed on publicly-viewable monitors mounted to the wall. This provides transparency into the health of the build(s) that entire team can see at a glance. When a build goes red (fails), the next person or pair to finish their story can take a look at what broke before starting new work. If a build goes red a lot over a period of time, it can prompt a conversation about what isn't working.

ProjectMonitor in use

Table of Contents

  1. Installation
  2. Custom Configuration
  3. In-app Configuration
  4. Deployment
  5. Ideas and Improvements

Linked Documents

  1. Upgrading to Devise
  2. Adding a Project
  3. Displaying Your Project's Status

Installation

Get the code

To get the code, execute the following:

git clone git://github.com/pivotal/projectmonitor.git
cd projectmonitor

Get Docker

ProjectMonitor provides a one-line setup using Docker

Download and install docker from the official Docker website

Run the app locally with the default configuration

docker run -p 3000:3000 -v `pwd`:/projectmonitor pivotaliad/project-monitor \
bash -c "cd projectmonitor && bundle install && RAILS_ENV=development rake local:start"

The app will be available at: http://0.0.0.0:3000

Add a user:

docker exec CONTAINER_ID_OR_NAME \
bash -c 'cd projectmonitor && \
echo "User.create!(login: \"jane\", name: \"Jane Martinez\", email: \"[email protected]\", password: \"password\")" | \
rails c development'

To stop: docker kill <container-id>

Local development

docker run -it -p 3000:3000 -v `pwd`:/projectmonitor pivotaliad/project-monitor

Inside the container run:

bundle install

To run tests:

rake local:test

see Custom Configuration for DB setup

Custom configuration

Set up the database

You'll need a database. Create it with whatever name you want. For defaults, copy database.yml.example to database.yml. Edit the production environment configuration so it's right for your database:

First, get the defaults copied:

cp config/database.yml.example config/database.yml

Edit the defaults in config/database.yml

Create the db and set the tables:

RAILS_ENV=production rake db:create
RAILS_ENV=production rake db:migrate

Authentication support

IP Whitelist

If you want to use Webhooks, your ProjectMonitor instance will need to be located on a publicly accessible server. If you don't want your ProjectMonitor dashboard to also be publicly accessible, you can whitelist access by IP address.

The whitelist is disabled by default, but can be enabled by uncommenting the "ip_whitelist" property in settings.yml and adding a list of IP addresses to whitelist. If you're running ProjectMonitor behind a load balancer (e.g. on a hosted provider such as Heroku), you'll probably want to set "ip_whitelist_request_proxied" to true. See settings.yml for more documentation.

Password authentication

Project monitor uses Devise to provide both database backed authentication and Google OAuth2 logins.

Regular password authentication for managing project settings is enabled by default. Run rake db:seed with the environment variables PROJECT_MONITOR_LOGIN, PROJECT_MONITOR_EMAIL and PROJECT_MONITOR_PASSWORD set to create a new account.

To switch off password auth, set password_auth_enabled setting to false. To ensure strong password encryption you should adjust the value for password_auth_pepper and password_auth_stretches appropriately.

Google OAuth2 setup

To use Google OAuth2 authentication you need Google apps set up for your domain and the following configuration options specified:

oauth2_enabled: true
oauth2_apphost: 'MY_APP_ID'
oauth2_secret: 'MY_SECRET'

Setup Cron with Whenever

We have included a sample whenever gem config in config/schedule.rb. Refer to the whenever documentation for instructions on how to integrate it with your deployment. Refer to Heroku scheduler documentation for instructions on how to integrate the rake task with your Heroku deployment.

The default schedule clears log entries and cleans up unused tags daily, and fetches project statuses every 3 minutes.

The fetch project task is what goes out and hits the individual builds. We find that if you do this too frequently it can swamp the builds. On the other hand, you don't want ProjectMonitor displaying stale information. At Pivotal we set it up to run every 3 minutes.

Start workers

The cron job above will add jobs to the queue, which workers will execute. To start running the workers, use the following command:

rake start_workers

The default number of workers is 2, but if you wanted 3 you would call it like this:

rake start_workers[3]

These workers need only be started once per system reboot, and must be running for your project statuses to update. To stop the workers, run this command:

rake stop_workers

The workers are implemented using the delayed_job gem. The workers are configured to have a maximum timeout of 1 minute when polling project status. If you want to change this setting, you can edit config/initializers/delayed_job_config.rb

Start the application

Execute:

nohup rails server -e production &> projectmonitor.log

Next Steps

Now you need to add a project or two! Keep reading the In-app Configuration section for instructions.

In-app Configuration

Each build that you want ProjectMonitor to display is called a "project" in ProjectMonitor. You can log in to set up projects by clicking the "Manage Projects" link in the bottom-right corner of the main ProjectMonitor screen. You can either create a user using the console as follows:

rails c production
User.create!(login: 'john', name: 'John Doe', email: '[email protected]', password: 'password')

Or, if you have set up Google OAuth2 as per above, you can simply log in with Google to create a new user account.

Admin Interface

Click 'manage projects' at the lower right to edit project details.

Add Projects

We have instructions detailing how to add a project.

Importing and Exporting Configurations

You can export your configuration for posterity or to be transferred to another host:

rake projectmonitor:export > ${your_configuration.yml}

Or using heroku:

heroku run rake projectmonitor:export --app projectmonitor-staging > ${your_configuration.yml}

Or you can download it using the configuration endpoint, using curl (or your web browser):

curl --user ${username}:${password} ${your_project_monitor_host}/configuration > ${your_configuration.yml}

NOTE: That heroku doesn't treat STDERR and STDOUT differently so you may get some warnings at the beginning of the generated file that you'll have to remove manually.

It can be imported in a similar way:

rake projectmonitor:import < ${your_configuration.yml}

On heroku or another host which doesn't allow you to directly load files or read from stdin, you'll need to post the file to the configuration endpoint like so:

curl --user ${username}:${password} -F "content=@-" ${your_project_monitor_host}/configuration < ${your_configuration.yml}

Deployment

Cloud Foundry

ProjectMonitor requires a database that can handle more than 4 concurrent connections, otherwise occasional errors might pop up.

Create a CF space and add a db service named rails-mysql

The default way to deploy to CF is using the attached concourse pipeline. Follow the concourse installation steps to setup concourse-ci.

create a credentials yml at concourse/projectmonitor-production-credentials.yml

populate it with

api-endpoint: <replace with CF api endpoint ex: api.run.cfapps.io>
cf-username: <replace with CF username>
cf-password: <replace with CF password>
cf-org: <replace with CF organization name>
cf-space: <replace with CF space name>

Set the pipilene:

fly set-pipeline -c concourse/projectmonitor-production-pipeline.yml -p PIPELINE_NAME \
-l concourse/projectmonitor-production-credentials.yml -t TARGET_NAME

The pipeline will deploy the latest stable version with default configuration every time it is updated.

Add a user once deployed:

cf ssh project-monitor-web -t -c "/tmp/lifecycle/launcher /home/vcap/app 'rails c' ''"
User.create!(login: 'jane', name: 'Jane Martinez', email: '[email protected]', password: 'password')

For manual CF deployment:

cf target -s SPACE -o ORG
cf create-service DB_SERVICE DB_SERVICE_PLAN rails-mysql
cf push

Heroku

To get running on Heroku, after you have cloned and bundled, run the following commands:

NB: These instructions are for the basic authentication strategy.

heroku create
git push heroku master
heroku run rake db:migrate
heroku config:add REST_AUTH_SITE_KEY=<unique, private and long alphanumeric key, e.g. abcd1234edfg78910>
heroku config:add REST_AUTH_DIGEST_STRETCHES=<count of number of times to apply the digest, 10 recommended>
heroku run console

When inside the console, run the creating a new user step above. You should then be able to access your server and start using it.

Ideas and Improvements

Got a burning idea that just needs to be implemented? Check the CONTRIBUTE.md file for help getting started. Join the google group and share your ideas with the team.

The google group for Project Monitor is projectmonitor_pivotallabs

Copyright (c) 2018 Pivotal Labs. This software is licensed under the MIT License.

Bitdeli Badge

projectmonitor's People

Contributors

andistuder avatar borisc avatar brentwheeldon avatar dkaplan-pivotal avatar dmgoud avatar erd avatar flavorjones avatar gsiener avatar huangmi avatar iwz avatar jeffsaracco avatar joemoore avatar lnhrdt avatar loktar avatar mkocher avatar odlp avatar palfvin avatar pinwheeler avatar pivotalcommon avatar professor avatar schubert avatar taktran avatar tay avatar thewoolleyman avatar tiembo avatar tjgrathwell avatar vmwghbot avatar wardpenney avatar yuki24 avatar zachblock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

projectmonitor's Issues

TDDium projects are not exported correctly

When I export a TDDium project, the markup is missing all the TDDium attributes, so that importing it doesn't work.

Is exporting TDDium on your roadmap? It would be great if you would be able to import/export all supported project types.

projects:
- guid: faf2201b-e589-4ee7-9928-d8cd03d9382c
  name: o2.1-airbnb
  deprecated_feed_url:
  auth_username: ''
  auth_password: ''
  enabled: true
  type: TddiumProject
  aggregate_project_id:
  deprecated_latest_status_id:
  code: O2
  tracker_project_id: ''
  tracker_auth_token: ''
  cruise_control_rss_feed_url:
  jenkins_base_url:
  jenkins_build_name:
  team_city_base_url:
  team_city_build_id:
  team_city_rest_base_url:
  team_city_rest_build_type_id:
  travis_github_account:
  travis_repository:
  webhooks_enabled: false
  tag_list: []

travis build status should update when it has been restarted manually

When I restart a red build in travis (the whole build or just a single job) and it turns green, projectmonitor does not reflect that change. It just stays red until a new build with a new build number is created by travis.

To give an example, this happened with build 187 https://travis-ci.org/cloudfoundry/cf/jobs/7438357 for our cf gem. Some jobs were red on the first built run and after restarting the entire build turned green. The build is tagged CFCLI here http://projectmonitor.sf.pivotallabs.com/?tags=cf

It should probably fetch changes in travis for the same build periodically.

Cheers,
Dennis

pulse returns 500 for CircleCI webhook

We have a project set up in pulse to use webhooks for the build board in the Boulder office. However, when CircleCI pings pulse on a successful build, it gets a 500 error:

screen shot 2014-08-22 at 3 18 23 pm

Our circle.yml is as follows:

notify:
  webhooks:
    - url: http://pulse.pivotallabs.com/projects/our-guid/status

Memcached

The readme implies that the application can use memcached. We noticed that application.rb uses config.cache_store = :memory_store as the default, and this is never overridden.

There used to be a reference to memcached in production.rb, but this was removed in July 2013.

Was this intentional, or should memcached be reinstated? If not, we should update the readme and removing the dependency on the dalli gem. We're happy to add a PR to do either.

Thanks,
Tom & Oli

Provide instructions for TDDIUM setup

It would be nice to provide specific instructions for tddium configuration (it's currently rather opaque).

Configuring TDDIUM:

  1. Log into your tddium dashboard
  2. Click on "Configure with CCMenu"
  3. The resulting url includes the authentication token you will need, eg, if the url is: https://api.tddium.com/cc/SOME-TOKEN-HERE/cctray.xml, then you will need to copy SOME-TOKEN-HERE into the field marked authentication token. NOTE: This is a different value from the CLI auth token that tddium displays on your dashboard
  4. The XML returned by the Configure with CCMenu link will look something like this:
<Projects>
<Project name="foobar (master)" webUrl="https://api.tddium.com/1/reports/151751" lastBuildLabel="151751"     lastBuildTime="2013-01-08 18:20:05" lastBuildStatus="Failure" activity="Building"/>
</Projects>

You must copy the entire value of the Project name attribute into the Tddium Project Name field. In this case, that would be "foobar (master)"
5) Click "Refresh" under CI status; projectmonitor should be able to hit your build.

I would've forked and added instructions, but it doesn't seem like the interface currently supports CI-specific configuration instructions (might be a nice feature -- I notice the view is already pulling out some tddium specific fields to add diff. placeholder text, might be nice to roll this into a CI-specific-field model that can provide instructions + placeholder, and then you could yank that out of the view)

Panic Status Board compatible view

I'm looking at using Status Board for @cloudfoundry's information radiator so we can split the real estate between project monitor and other information we'd like. (we currently have a tweet stream and stats about our outstanding pull requests)

Status Board lets you put an arbitrary url in, but there's no way to adjust the zoom level, so it ends up looking like:

photo 1

It'd be great if the url could contain the zoom level and width, and the background could be set to black to match status board.

Project Monitor does not support deploying to a sub-URI

I am attempting to deploy Project Monitor on a sub-URI "http://my.company/monitor" using Passenger and Apache. I have followed the instructions on the Passenger web-site, and I can get to the main page from my sub-URI, as well as the "manage projects" link to edit. However the main page is blank. Looking at the page source, all the assets are being prefixed with "/monitor", but when I look at the Apache log I see errors trying to query "/projects":

[Thu Aug 20 10:01:44 2015] [error] [client X.X.X.X] File does not exist: /var/www/github_status.json, referer: http://Y.Y.Y.Y/monitor/
[Thu Aug 20 10:01:44 2015] [error] [client X.X.X.X] File does not exist: /var/www/heroku_status.json, referer: http://Y.Y.Y.Y/monitor/
[Thu Aug 20 10:01:44 2015] [error] [client X.X.X.X] File does not exist: /var/www/rubygems_status.json, referer: http://Y.Y.Y.Y/monitor/
[Thu Aug 20 10:01:44 2015] [error] [client X.X.X.X] File does not exist: /var/www/projects, referer: http://Y.Y.Y.Y/monitor/
[Thu Aug 20 10:02:14 2015] [error] [client X.X.X.X] File does not exist: /var/www/version, referer: http://Y.Y.Y.Y/monitor/

Unable to insatll on Windows

I have installed all pre requisites and trying to install project however not able to install as ruby 2.4.2 is using JSON 2.04
I am getting following error and wonder how i can fix JSON issue? ruby gem list is also after the error
//***********************************************************************
ERROR

bundle install
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...........
Using rake 11.2.2
Using i18n 0.7.0
Fetching json 1.8.3
Installing json 1.8.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator
C:/Ruby24-x64/bin/ruby.exe -r ./siteconf20171101-13364-1152m0u.rb extconf.rb
creating Makefile

current directory:
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR=" clean

current directory:
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR="
generating generator-x64-mingw32.def
compiling generator.c
generator.c: In function 'generate_json':
generator.c:861:25: error: 'rb_cFixnum' undeclared (first use in this function);
did you mean 'mFixnum'?
} else if (klass == rb_cFixnum) {
^~~~~~~~~~
mFixnum
generator.c:861:25: note: each undeclared identifier is reported only once for
each function it appears in
generator.c:863:25: error: 'rb_cBignum' undeclared (first use in this function);
did you mean 'rb_cFixnum'?
} else if (klass == rb_cBignum) {
^~~~~~~~~~
rb_cFixnum
make: *** [Makefile:242: generator.o] Error 1

make failed, exit code 2

Gem files will remain installed in
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/json-1.8.3 for inspection.
Results logged to
C:/Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0/json-1.8.3/gem_make.out

An error occurred while installing json (1.8.3), and Bundler cannot
continue.
Make sure that gem install json -v '1.8.3' succeeds before bundling.

In Gemfile:
rails was resolved to 4.2.7, which depends on
actionmailer was resolved to 4.2.7, which depends on
actionpack was resolved to 4.2.7, which depends on
actionview was resolved to 4.2.7, which depends on
rails-dom-testing was resolved to 1.0.7, which depends on
rails-deprecated_sanitizer was resolved to 1.0.3, which depends on
activesupport was resolved to 4.2.7, which depends on
json

//***********************************************************************
Here is my Ruby gem list

actioncable (5.1.4)
actionmailer (5.1.4)
actionpack (5.1.4)
actionview (5.1.4)
activejob (5.1.4)
activemodel (5.1.4)
activerecord (5.1.4)
activesupport (5.1.4)
addressable (2.4.0)
arel (8.0.0, 6.0.3)
awesome_print (1.7.0)
bcrypt (3.1.11 x64-mingw32)
bigdecimal (default: 1.3.0)
builder (3.2.3, 3.2.2)
bundler (1.16.0.pre.3, 1.15.4)
chronic (0.10.2)
coderay (1.1.1)
coffee-script-source (1.10.0)
concurrent-ruby (1.0.5, 1.0.2)
cookiejar (0.3.3)
crass (1.0.2)
daemons (1.2.4)
database_cleaner (1.5.3)
did_you_mean (1.1.0)
diff-lcs (1.2.5)
eco-source (1.1.0.rc.1)
ejs (1.1.1)
erubi (1.7.0)
erubis (2.7.0)
eventmachine (1.2.0.1 x64-mingw32)
excon (0.51.0)
execjs (2.7.0)
ffi (1.9.14 x64-mingw32)
formatador (0.2.5)
globalid (0.4.1)
guard-compat (1.2.1)
hashdiff (0.3.0)
hashie (2.1.2)
http_parser.rb (0.6.0)
httpauth (0.2.1)
i18n (0.9.0, 0.7.0)
io-console (default: 0.4.6)
jasmine-core (2.4.1)
jshint_on_rails (1.0.3)
json (default: 2.0.4)
kramdown (1.11.1)
loofah (2.1.1)
lumberjack (1.0.10)
mail (2.6.6)
method_source (0.9.0, 0.8.2)
mime-types (3.1)
mime-types-data (3.2016.0521)
mini_portile2 (2.3.0, 2.1.0)
minitest (5.10.1, 5.9.0)
multi_json (1.12.1)
multipart-post (2.0.0)
mysql2 (0.4.4 x64-mingw32)
nenv (0.3.0)
net-telnet (0.1.1)
netrc (0.11.0)
newrelic_rpm (3.16.0.318)
nio4r (2.1.0)
nokogiri (1.8.1 x64-mingw32)
openssl (default: 2.0.5)
orm_adapter (0.5.0)
phantomjs (2.1.1.0)
pkg-config (1.1.7)
power_assert (0.4.1)
psych (default: 2.2.2)
rack (2.0.3, 1.6.4)
rack-test (0.7.0)
rails (5.1.4)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.0.3)
rails_serve_static_assets (0.0.5)
rails_stdout_logging (0.0.5)
railties (5.1.4)
rake (12.0.0, 11.2.2)
rb-fsevent (0.9.7)
rdoc (default: 5.0.0)
request_store (1.3.1)
rspec-support (3.5.0)
ruby-openid (2.7.0)
ruby_dep (1.3.1)
rubygems-update (2.6.14, 2.6.13, 2.0.3)
safe_yaml (1.0.4)
sass (3.4.22)
sexp_processor (4.7.0)
shellany (0.0.1)
slop (3.6.0)
spring (1.7.2)
sprockets (3.7.1)
sprockets-rails (3.2.1)
test-unit (3.2.3)
thor (0.20.0, 0.19.1)
thread_safe (0.3.6, 0.3.5)
tilt (2.0.5)
timecop (0.8.1)
tzinfo (1.2.4)
unf_ext (0.0.7.2 x64-mingw32)
vagrant (1.5.0)
vcr (3.0.3)
websocket-driver (0.6.5)
websocket-extensions (0.1.2)
xmlrpc (0.2.1)

Status sometimes stops getting set

Steps to repro:

  1. Set up new tracker project for jenkins using webhooks
  2. Using jenkins notification plugin (tried 1.7 and 1.9), set up notification to webhooks
  3. Wait a couple of weeks, during which time things work fine
  4. Finally, you should see that pulse projects will flash but never change status

e.g., right now a build is red but the pulse project is green, despite having no failures in sending the notification during job and also despite the pulse project flashing while it was running, as expected)

Migrations on master not working:

== 20120716160034 AddTrackerOnlineToProjects: migrating =======================
-- add_column(:projects, :tracker_online, :boolean)
-> 0.0009s
-- execute("UPDATE projects SET tracker_online = TRUE WHERE current_velocity != 0")
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: no such column: TRUE: UPDATE projects SET tracker_online = TRUE WHERE current_velocity != 0/Users/peterso/Projects/projectmonitor/db/migrate/20120716160034_add_tracker_online_to_projects.rb:4:in up' -e:1:in

'
Tasks: TOP => db:migrate

Does projectmonitor require Xcode?

My iMac(Mac OS Sierra V10.12) doesn't have Xcode. so I get below error during 'bundle install'. When I tried to install Xcode from AppStore, I realized it's of size 4 GB. SO just wanted to ensure I am not doing something wrong.

current directory:
/Users/xecckq4/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capybara-webkit-1.11.1
/Users/xecckq4/.rbenv/versions/2.3.1/bin/ruby -r
./siteconf20170813-3495-gf683v.rb extconf.rb
Project ERROR: Xcode not set up properly. You may need to confirm the license
agreement by running /usr/bin/xcodebuild.

*** extconf.rb failed ***

CircleCI polling no longer works

For legacy reasons, our project was configured to use CircleCI polling instead of webhooks. Our builds have been silently failing for a few weeks and when we looked into it, it seems this commit likely introduced the regression as it changes the CircleCI format to depend only on the webhooks-style:

ed32832

Here is our stacktrace from /projects/PROJECT_ID/payload_log_entries:

The String into Integer is because the result from https://circleci.com/api/v1/project/USERNAME/PROJECT returns an array of hashes, not a hash [{}]

no implicit conversion of String into Integer
/home/vcap/app/lib/payload.rb:106:in `handle_processing_exception'
/home/vcap/app/lib/payload/circle_ci_payload.rb:15:in `rescue in convert_content!'
/home/vcap/app/lib/payload/circle_ci_payload.rb:12:in `convert_content!'
/home/vcap/app/lib/payload.rb:95:in `convert_build_content!'
/home/vcap/app/lib/payload.rb:41:in `build_status_content='
/home/vcap/app/lib/project_workload_handler.rb:35:in `update_ci_status'
/home/vcap/app/lib/project_workload_handler.rb:18:in `workload_complete'
/home/vcap/app/lib/poller_workload.rb:33:in `store'
/home/vcap/app/lib/project_poller.rb:109:in `block in add_workload_handlers'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:151:in `call'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:151:in `set_deferred_status'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/eventmachine-1.0.3/lib/em/deferrable.rb:191:in `succeed'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/em-http-request-1.1.2/lib/em-http/client.rb:114:in `unbind'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/em-http-request-1.1.2/lib/em-http/client.rb:71:in `on_request_complete'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/em-http-request-1.1.2/lib/em-http/http_connection.rb:129:in `block in post_init'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/em-http-request-1.1.2/lib/em-http/http_connection.rb:144:in `call'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/em-http-request-1.1.2/lib/em-http/http_connection.rb:144:in `<<'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/em-http-request-1.1.2/lib/em-http/http_connection.rb:144:in `receive_data'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/em-http-request-1.1.2/lib/em-http/http_connection.rb:23:in `receive_data'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
/home/vcap/app/lib/project_poller.rb:28:in `run'
/home/vcap/app/lib/tasks/project_monitor.rake:4:in `block (2 levels) in <top (required)>'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/vcap/app/vendor/ruby-2.0.0/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
/home/vcap/app/vendor/bundle/ruby/2.0.0/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'
/home/vcap/app/vendor/bundle/ruby/2.0.0/bin/rake:23:in `load'
/home/vcap/app/vendor/bundle/ruby/2.0.0/bin/rake:23:in `<main>'

Special characters are skipped when sorting projects by name in the monitor

I've created two projects and their Codes both start with ⚛ (ATOM SYMBOL Unicode: U+269B, UTF-8: E2 9A 9B) but have different text after the special character. For example: "⚛ Bar" and "⚛ Foo".

If there is a project name "Dog" it will show up inbetween the two projects:
"⚛ Bar" "Dog" "⚛ Foo"

I expected my two projects to show up next to each other:
"Dog" "⚛ Bar" "⚛ Foo"

The project Names themselves are titled consistently as "Client Name - Bar" and "Client Name - Foo", so perhaps it makes more sense to order the status panels by Name rather than Code?

Unable to find css and js files

I'm using a Ubuntu VM to setup projectmonitor. Followed all the steps to install. Followed the config steps and started the server:

nohup rails server -e production -b 0.0.0.0 &> projectmonitor.log &

When I open the link to the VM, I get a page which looks like no CSS has been applied,

project_monitor

and when I look at the logs, I noticed these:

method=GET path=/ format=html controller=HomeController action=index status=200 duration=401.31 view=400.65 db=0.00

ActionController::RoutingError (No route matches [GET] "/stylesheets/application.css"):
  actionpack (4.2.7) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  actionpack (4.2.7) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  lograge (0.4.1) lib/lograge/rails_ext/rack/logger.rb:15:in `call_app'
  railties (4.2.7) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.7) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.7) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.7) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.7) lib/rails/rack/logger.rb:20:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  request_store (1.3.1) lib/request_store/middleware.rb:9:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  actionpack (4.2.7) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/runtime.rb:18:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  actionpack (4.2.7) lib/action_dispatch/middleware/static.rb:120:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  airbrake (4.3.8) lib/airbrake/user_informer.rb:16:in `_call'
  airbrake (4.3.8) lib/airbrake/user_informer.rb:12:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  railties (4.2.7) lib/rails/engine.rb:518:in `call'
  railties (4.2.7) lib/rails/application.rb:165:in `call'
  railties (4.2.7) lib/rails/railtie.rb:194:in `public_send'
  railties (4.2.7) lib/rails/railtie.rb:194:in `method_missing'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  rack (1.6.4) lib/rack/content_length.rb:15:in `call'
  rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
  /usr/share/rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/httpserver.rb:140:in `service'
  /usr/share/rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/httpserver.rb:96:in `run'
  /usr/share/rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/server.rb:296:in `block in start_thread'



ActionController::RoutingError (No route matches [GET] "/javascripts/application.js"):
  actionpack (4.2.7) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  actionpack (4.2.7) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  lograge (0.4.1) lib/lograge/rails_ext/rack/logger.rb:15:in `call_app'
  railties (4.2.7) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.7) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.7) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.7) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.7) lib/rails/rack/logger.rb:20:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  request_store (1.3.1) lib/request_store/middleware.rb:9:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  actionpack (4.2.7) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/runtime.rb:18:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  actionpack (4.2.7) lib/action_dispatch/middleware/static.rb:120:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  airbrake (4.3.8) lib/airbrake/user_informer.rb:16:in `_call'
  airbrake (4.3.8) lib/airbrake/user_informer.rb:12:in `call'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  railties (4.2.7) lib/rails/engine.rb:518:in `call'
  railties (4.2.7) lib/rails/application.rb:165:in `call'
  railties (4.2.7) lib/rails/railtie.rb:194:in `public_send'
  railties (4.2.7) lib/rails/railtie.rb:194:in `method_missing'
  newrelic_rpm (3.16.0.318) lib/new_relic/agent/instrumentation/middleware_tracing.rb:96:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  rack (1.6.4) lib/rack/content_length.rb:15:in `call'
  rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
  /usr/share/rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/httpserver.rb:140:in `service'
  /usr/share/rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/httpserver.rb:96:in `run'
  /usr/share/rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/webrick/server.rb:296:in `block in start_thread'

Moreover, when I go to the Manage Projects, all the text fields are disabled and I'm not able to configure anything.

Please let me know if you need any more info and any help is appretiated!

Regarding project monitor

Hi Team,
Can you kindly provide me list of software's to download to host projectmonitor.

And also, it will be helpful if you send step wise installation guide .
Since i am a beginner, step wise installation will do great help for me.

Thanks,
Ajay

Links from circle / X build history into TeamCity point to wrong buildTypeIDs

Hi,

Installed the project today. Runs nicely but the links generated for the build history along the bottom of the tile for me seem to point to random but valid buildTypeIDs, even from other proejcts. The main link to the build config by clicking on the name is correct.

I am using TeamCity 7.1.3, and configuring with this as the main url:

http://myserver:8111

The instructions in the readme appear to be from an earlier version so the main URL + the btID are all I am including.

Thanks!

Photo of Project Monitor in use

I'm trying to explain what it looks like to have public CI in an office. It'd be very helpful to see a photo of Project Monitor in the wild as an example for folks who don't have TVs w/ CI mounted on the wall. Could someone post a pic of a TV with some public-viewable (open source?) builds to the README? cc @infews (Hi Davis! :-)

webhooks ignore build-branch

When a project has a build-branch specified, webhooks for builds from other branches should be ignored but aren't. Pull-request coming soon.

Unable to view status of TeamCity build and build history

Hi

Apologies if this isn't the right place to ask this - the Google group looks pretty quiet so I wasn't sure if it was still being used. I fired up ProjectMonitor yesterday at a local TC 9.1 instance. I can login and create projects and my CI Status in the polled build setup is OK. However, when I view the dashboard the tile colour reflects a status that looks neither passed nor failed and there is no history either. The Last Polling Status of the project on the Configuration page remains at None.

I have set the fetch status for every minute but nothing appears to change and there does not appear to be any fetch_statuses.log file in the log directory.

I will continue debugging but I was wondering if this might be an issue with TC 9.1 perhaps?

Any assistant for troubleshooting would be greatly appreciated.

Many thanks

Ben Sullivan

ActionController::RoutingError (No route matches [POST] "/projects/validate_build_info")

I'm trying to set up a new Jenkins project using polling. When I enter the build setup information and then click "refresh", I get a CI status saying "error". The rails server gives this traceback:

ActionController::RoutingError (No route matches [POST] "/projects/validate_build_info"):
  actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
  railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
  airbrake (3.1.12) lib/airbrake/user_informer.rb:16:in `_call'
  airbrake (3.1.12) lib/airbrake/user_informer.rb:12:in `call'
  railties (4.0.0) lib/rails/engine.rb:511:in `call'
  railties (4.0.0) lib/rails/application.rb:97:in `call'
  rack (1.5.2) lib/rack/content_length.rb:14:in `call'
  thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
  thin (1.5.1) lib/thin/connection.rb:79:in `catch'
  thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
  thin (1.5.1) lib/thin/connection.rb:54:in `process'
  thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
  eventmachine (1.0.3) lib/eventmachine.rb:187:in `run_machine'
  eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
  thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
  thin (1.5.1) lib/thin/server.rb:159:in `start'
  rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
  rack (1.5.2) lib/rack/server.rb:264:in `start'
  railties (4.0.0) lib/rails/commands/server.rb:84:in `start'
  railties (4.0.0) lib/rails/commands.rb:78:in `block in <top (required)>'
  railties (4.0.0) lib/rails/commands.rb:73:in `tap'
  railties (4.0.0) lib/rails/commands.rb:73:in `<top (required)>'
  script/rails:6:in `require'
  script/rails:6:in `<main>'

Is this a bug with project monitor master, or am I settings something up wrong? I have everything set up according to the readme.

Travis Pro Support

Hi there pivots,

I'm currently wondering if you guys have any anticipation of supporting Travis Pro. The problem I'm having with Travis Pro builds is when clicking on individual build statuses, it takes me to the default travis URL (https://travis-ci.org/hjhart/repository) instead of the Travis Pro specific URL (https://magnum.travis-ci.com/hjhart/repository).

A simple fix would be to extend the TravisProject model with TravisProProject and only override certain variables like WEB_BASE_URL and API_BASE_URL.

If I submitted a pull request, would you accept something along those lines, or do you have no intentions of supporting Travis Pro?

Thanks,
James

Unable to install projectmonitor on Ubuntu

After several unsuccessful attempts to get projectmonitor running under Ubuntu 16.04, I need assistance.
I followed the installation instructions and when it comes to bundle install, the setup always exits when it tries to install capybara-webkit-1.11.1, stating that no installation of QtWebkit can be found:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/gems/capybara-webkit-1.11.1
/home/railer/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20170113-13645-1oy1llf.rb extconf.rb
cd src/ && ( test -e Makefile.webkit_server || /usr/local/bin/qmake/tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/gems/capybara-webkit-1.11.1/src/webkit_server.pro -o Makefile.webkit_server) && make -f Makefile.webkit_server
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
Makefile:42: recipe for target 'sub-src-webkit_server-pro-make_first-ordered' failed make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3 Command 'make' failed

current directory: /tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/gems/capybara-webkit-1.11.1
make "DESTDIR=" clean cd src/ && ( test -e Makefile.webkit_server || /usr/local/bin/qmake/tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/gems/capybara-webkit-1.11.1/src/webkit_server.pro -o Makefile.webkit_server) && make -f Makefile.webkit_server clean
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
Makefile:54: recipe for target 'sub-src-webkit_server-pro-clean-ordered' failed make: *** [sub-src-webkit_server-pro-clean-ordered] Error 3

 current directory: /tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/gems/capybara-webkit-1.11.1
make "DESTDIR=" cd src/ && ( test -e Makefile.webkit_server || /usr/local/bin/qmake/tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/gems/capybara-webkit-1.11.1/src/webkit_server.pro -o Makefile.webkit_server) && make -f Makefile.webkit_server
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
Makefile:42: recipe for target 'sub-src-webkit_server-pro-make_first-ordered' failed
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3

make failed, exit code 2

Gem files will remain installed in /tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/gems/capybara-webkit-1.11.1 for inspection.
Results logged to /tmp/bundler20170113-13645-1c9k4blcapybara-webkit-1.11.1/extensions/x86_64-linux/2.3.0-static/capybara-webkit-1.11.1/gem_make.out

An error occurred while installing capybara-webkit (1.11.1), and Bundler cannot continue.
Make sure that `gem install capybara-webkit -v '1.11.1'` succeeds before bundling.

My system info:

ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

rails -v
Rails 5.0.1

qmake -v
QMake version 3.0
Using Qt version 5.5.1 in /home/myuser/.linuxbrew/Cellar/[email protected]/5.5.1/lib

I treid the same with Qt 5.7.1 (installed via (linux) brew install qt), with the same error.

Could you please help me out as to where I can look for a solution?

Thanks a lot in advance!

Semaphore Polling doesn't function

When adding a polling project for Semaphore, a check for branch name from the response returns false since the key doesn't exist where it's referenced in semaphore_payload.rb:

def specified_branch?(content)
  branch == content['branch_name']
end

The problem here is that key branch_name doesn't appear in the content object which is a nested build inside the response. It appears in the top-level response object now (maybe it worked at the time it was written) and so it breaks polling on Semaphore projects. I'll see if I can take a stab at fixing this and submitting a PR.

Incorrect build status due to webhook race condition

Travis webhooks arrive in the order that build is finished. Displayed build status reflects the most recent finished build, which may not be the most recently started build.

For example:

  • Build 1 starts at 12pm
  • Build 2 starts at 12:01pm
  • Build 2 finishes at 12:10pm and is green
  • Build 1 finishes at 12:11pm and is red
  • Build status is red, even though the most recently started build is green.

DB migration fail

20130404153158_add_iteration_story_state_counts_to_projects.rb fails to run on mysql:
Mysql::Error: BLOB/TEXT column 'iteration_story_state_counts' can't have a default value: ALTER TABLE projects ADD iteration_story_state_counts text DEFAULT '{}'/Users/administrator/.rvm/gems/ruby-2.0.0-p0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:286:in `query'

High CPU usage when using charts

We're using Project Monitor on a Raspberry Pi attached to a large screen for displaying our build statuses. The Rasberry Pi crashes when using the charts functionality. Even running Project Monitor with charts on a reasonably specced MacBook Pro sends the CPU usage sky high.

It looks like it is due to rendering the SVG graphs.

Unable to bundle install Project Monitor on Windows

(From a user)
When I call “bundle install” I get this:

C:\monitor\projectmonitor>bundle install
Fetching gem metadata from https://rubygems.org/.......
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Bundler could not find compatible versions for gem "slop":
In snapshot (Gemfile.lock):
slop (3.3.3)

In Gemfile:
pry (>= 0) x86-mingw32 depends on
slop (~> 3.4) x86-mingw32

Running bundle update will rebuild your snapshot from scratc
the gems in your Gemfile, which may resolve the conflict.

Teamcity 7.1.x support

Hi,

Im trying to configure this, but am running into a few problems. The documentation suggest that you should install webhooks, ive done so, and requests are sent to monitor without problems.

Now the question, is that my project has several build configurations and in the webhooks you cannot specify a hook per configuration, only per project. That means that each ok/nok build will trigger all the hooks defined for that project.

Now, in the json post request, the buildid (in the form of bt2374762) is sent from Teamcity. This information can be used later to distinguish between the different build configurations in the monitor.

So now would it be possible to support also teamcity 7.1.x

thanks

jorge costa

Rubygems is unreachable

I'd like to suggest that we remove the banner warnings. They seem to occur frequently. It's more noise than signal. Maybe the url changed? If rubygems is down, I'll probably discover it pretty quickly.

Ditto for heroku, github, and the other warning messages.

TeamCity 8.1

Hi All,

Not sure if I'm doing something when I try to save a project. I always get:

Team city rest build type can't be blank
Team city rest build type must begin with bt
Team city rest base url can't be blank

Even when I fill something in.

I'm not sure this works with 8.1 as I can't seem to find an API with guestAuth/cradiator.html?buildTypeId= and build types don't start with bt anymore.

Any help would be greatly appreciated :)

Error "rake aborted! Don't know how to build task 'dependency:fetch_statuses"

I am trying to configure projectmonitor for ourTeamCity builds but we are getting errors from the cron jobs produced by whenever. In particular, this one: " RAILS_ENV=production bundle exec rake dependency:fetch_statuses --silent"

This runs every minute and reports the error from the title. Also status polling is not working any configured TC projects.

Travis Pro build links to travis-ci.org

Hi there,

We got projectmonitor running for our builds. Very cool stuff! 👍

One thing we noticed is that the link to a particular build (a green dot) points to the open source version of Travis CI. Our build is on Travis Pro, so the link should point to magnum.travis-ci.com instead.

Thanks,
Alex

Space After Repository Name causes Epic Fail

When adding a travis pro project in project monitor admin UI and you enter a space accidentally after the repository the Admin UI fails and and the monitor UI doesn't update.

To fix you need to manually go into the db and delete the bad project.

Semaphore webhook causes exception

When posting a webhook from Semaphore we get errors like this:

2015-01-14_10:55:23.68437 Started POST "/projects/632dcb4d-7ed0-4860-b4c8-77428272d5e3/status" for 127.0.0.1 at 2015-01-14 11:55:23 +0100
2015-01-14_10:55:28.82517
2015-01-14_10:55:28.82521 NoMethodError (undefined method key?' for ["branch_name", "master"]:Array): 2015-01-14_10:55:28.82522 lib/payload/semaphore_payload.rb:47:inextract_builds_if_build_history_url'
2015-01-14_10:55:28.82523 lib/payload/semaphore_payload.rb:24:in convert_webhook_content!' 2015-01-14_10:55:28.82524 lib/payload.rb:26:inwebhook_status_content='
2015-01-14_10:55:28.82525 app/controllers/status_controller.rb:11:in `create'
2015-01-14_10:55:28.82526
2015-01-14_10:55:28.82526

And the status of our Semaphore projects is not updated.

whomp-whomp view uses all the cpu

There's a weird invisible div pattern thing called #whomp-whomp which constantly neverendingly animates, using 100% cpu despite doing nothing.

whomp4

Steps:

  1. go to http://ci.pivotallabs.com
  2. make sure there's a project tile with Tracker story breakdowns visible
  3. look at activity monitor

Expected:
Nothing is changing on the screen, so ~0% cpu usage

Actual:
Nothing is changing on the screen, but ~100% cpu usage.

The culprit is a sub-element of the #whomp-whomp pattern:
screen shot 2014-12-04 at 4 44 47 pm

Chrome unresponsive after time

On Bleecker in the NY office, the page has become unresponsive and Chrome needed to kill the page. It works ok after a restart. Montrose looked to get into the same situation but became responsive after poking the page with the mouse.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.