Skip to content

Instantly share code, notes, and snippets.

@lonnen
Last active December 30, 2015 22:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lonnen/7896960 to your computer and use it in GitHub Desktop.
Save lonnen/7896960 to your computer and use it in GitHub Desktop.
Socorro build investigation

Build steps identified in Jenkins log output.

Timestamps are the amount of time MM:SS until the next call to make. This may be misleading. It's unclear when make is calling a build dependency and when we're executing a new line of build.sh.

Stars indicate how many times previously the make target has already been run during this single build.

  00:02 [jenkins] Lets Commence
  00:06 [jenkins] checkout the repo
  00:00 [make] clean
  00:01 [make] bootstrap
  06:40 [make] test-socorro: bootstrap
  00:51 [make] webapp-django: bootstrap
  00:00 [make] test-webapp: webapp-django
* 00:02 [make] clean
  00:40 [make] stackwalker
* 00:01 [make] bootstrap
* 00:46 [make] webapp-django: bootstrap
  00:03 [make] install-socorro: webapp-django
  00:00 [make] reinstall: install-socorro
**00:03 [make] bootstrap
* 00:11 [make] analysis: bootstrap
  00:16 [jenkins] Shut it down
  
  09:41 total time

Since we're making several independent calls to make, and using .PHONY targets that don't identify filesystem artifacts, we end up running some make targets multiple times.

Interesting to note that [make] stackwalker appears to take up 40 seconds but most of that is actually the integration tests, which lack a make directive and so get lumped in with the stackwalker. At a glance the three places we spend most of the time in a build are:

05:00 non-webapp socorro unittests
01:00 webapp-django dependency installation (00:30 x 2)
00:25 integration test database setup

More investigation is needed to put the values into context and identify areas to optimize.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment