Using a Self Hosted Crucible with a Cloud Based JIRA Instance

Can you really do that?

Yes

about james alexander

Overview

  • Fisheye / Crucible Explained
  • Crucible Installation
  • "Got-chas"
  • Performance Tuning 

What are Fisheye/Crucible?

Definition

Atlassian Products

Crucible

Pre-commit or post-commit code reviews:

  • Workflow-based reviews
  • Quick reviews with cut and paste snippets
  • Create reviews from the command line
  • One-click reviews from change sets or issues

Threaded Discussion

JIRA Integration

Integrate code review into your everyday development process.

  • View source code associated with code reviews.
  • View and create code reviews from JIRA.
  • Turn Crucible code review comments into actionable JIRA issues.

Why not Bit Bucket Pull Requests?

  • Comments lost on code iteration
  • Does not scale to large reviews

Fisheye

JIRA Integration

Centralize all source repositories viewing / searching under Fisheye: Subversion, CVS, Perforce, Git, and Mercurial

Charts and Reports

Build Fail Blame

Connect the Bamboo continuous integration server with FishEye to view the code changes that triggered a build.

  • Explore the failed build and jump directly into the change set that broke the build.
  • View the history of that change set to see what the author was trying to fix.

Code Search

  • Simple Searching on File, Folder names
  • Camel Case search
  • Search in code commit messages
  • Advanced Search with EyeQL (SQL-Like)
  • Export results to CSV

demo

Crucible Installation

  • Requires JAVA
  • Download compressed package (.zip - same file for both crucible and fisheye)
  • Setup separate data store folder
  • Configure Users and Groups
  • Add Repositories
  • Profit
  • AWS EC2 VM
  • t2.small instance
  • 1 CPU
  • 2 GB RAM
  • 30 GB SSD
  • Elastic IP Address

Recommended Steps

  • Use an SSL Certificate
  • Create a separate non-root user
  • Use a Relational Database like Postgresql
  • Setup auto-start at boot time
  • Use a reverse proxy server, NGINX in my case

Adding Application Links

  1. Type period (.)
  2. Type "Links"
  3. Select "Application Links"

Configure Application Links

  1. Sign-in to both JIRA and Crucible
  2. Add Application Link from JIRA. (reciprocal link will be created automatically)

Helpful links

got-chas

SSL CErtificate Installation

someone to administer crucible

Performance Optimization

bitbucket - web hooks

include / exclude directories

JVM Memory

FISHEYE_OPTS Memory Parmaters

  • Non-standard JAVA arguments
  • -Xms<size> = Starting Heap size (e.g. -Xms256m)
  • -Xmx<size> = Max Heap size (e.g. -Xmx1g)
  • -XX:MaxPermSize = Max PermGen size (e.g. -XX:MaxPermSize=256m)
# /etc/environment

JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"
FISHEYE_INST="/home/crucible/crucible-instance"
FISHEYE_OPTS="-Xms256m -Xmx1G -XX:MaxPermSize=256m 
    -javaagent:/home/crucible/fecru-3.7.0/newrelic/newrelic.jar"

New Relic - Application Monitoring

New relic - server monitor

Helpful Performance Tuning Links

fin

questions?

Link to Slides on slides.com:

http://slides.com/yanigisawa/crucible-fisheye

Also on:

http://www.jamesralexander.com/blog/content/crucible-fisheye

Crucible / Fisheye Remote Server

By James Alexander

Crucible / Fisheye Remote Server

Atlassian user group presentation on connecting crucible to a JIRA cloud hosted instance.

  • 4,425