Coder Social home page Coder Social logo

testvidya11 / java-buildpack-dependency-builder Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cloudfoundry/java-buildpack-dependency-builder

0.0 1.0 0.0 156 KB

Automated building and publication of Java Buildpack dependency artifacts

License: Apache License 2.0

Ruby 90.61% Shell 9.39%

java-buildpack-dependency-builder's Introduction

Java Buildpack Dependency Builders

Build Status Dependency Status

This project automates the building and publication of Java Buildpack dependency artifacts.

Usage

To run the builder, issue the following commands from the root directory of a clone of this repository:

bundle install
bundle exec bin/build [DEPENDENCY] [OPTIONS]

Building OpenJDK

In order to build OpenJDK for the linuxes you will need Vagrant and VirtualBox. Follow the default installation instructions for these applications.

In order to build OpenJDK for OS X you will need Mercurial and XQuartz. Mercurial can be installed with homebrew, XQuartz should be installed by following the default installation instructions.

Credentials

Pivotal employees should contact Ben Hale for AWS and AppDynamics credentials if they have not already been issued.

Available Artifacts

The list of available versions for each dependency can be found at the following locations.

Dependency Location
App Dynamics universal
Auto Reconfiguration universal
Groovy universal
MariaDB JDBC universal
OpenJDK centos6, lucid, mountainlion, precise
New Relic universal
Play JPA Plugin universal
PostgreSQL JDBC universal
Spring Boot CLI universal
tc Server universal
Tomcat universal

Note that the following additional dependency is built and published using the Java Buildpack Support repository.

Dependency Location
Tomcat Buildpack Support http://download.pivotal.io.s3.amazonaws.com/tomcat-buildpack-support/index.yml

Running Tests

To run the tests, issue the following commands from the root directory of a clone of this repository:

bundle install
bundle exec rake

Rehosting Artifacts

To host the Java Buildpack dependency artifacts on your own server, first download the artifacts and index.yml files as described below, make them available at suitable locations on a web server, and then fork the Java buildpack and update its repository configuration to point at the web server.

All the artifacts and index.yml files may be downloaded using the replicate script.

To use the script, issue the following commands from the root directory of a clone of this repository:

bundle install
bundle exec bin/replicate --access-key <access key> --secret-access-key <secret access key> --host-name <new hostname> --output <directory path>

where:

  • <access key> and <secret access key> are any valid Amazon S3 credentials.
  • <new hostname> is the hostname which will serve the rehosted artifacts. The script will replace the host in each downloaded index file.
  • <directory path> is the path to a directory for the downloaded artifacts and index.yml files.

Populating the Buildpack Cache

When DEAs are provisioned, everything in the buildpack_cache directory will be available via the $BUILDPACK_CACHE environment variable. To populate the buildpack_cache directory, follow these steps:

  1. Clone https://github.com/cloudfoundry/cf-release.git and update its submodules (which takes a few minutes).

  2. Change directory into the clone.

  3. Create config/private.yml with contents in the following format containing the appropriate S3 keys (see blobstore information for more information):

    ---
    blobstore:
      s3:
        secret_access_key: secretaccesskey
        access_key_id: accesskeyid
    
  4. Issue mkdir -p blobs/buildpack_cache/java-buildpack.

  5. Go through the list of Java buildpack dependency repositories (in the Available Artifacts section above) and for each one:

5.1 Run the populate-buildpack-stash.rb script as follows:

  `~/populate-buildpack-stash.rb /clone/blobs/buildpack_cache/java-buildpack <repository index.yml URL>`

5.2 Edit the downloaded file to exclude any versions not required in the buildpack cache - typically all except the latest version.

Refer to /clone/config/blobs.yml to see what is already in the buildpack cache (take care to look in the entries containing buildpack_cache/java-buildpack).

If there are no items in the edited index.yml which are not already in the buildpack cache, delete the downloaded index.yml file and skip the next step.

5.3 For each item in the above edited index.yml which is not already in the buildpack cache, issue:

    `~/populate-buildpack-stash.rb /clone/blobs/buildpack_cache/java-buildpack <URL from index.yml>`
  1. Run bosh upload blobs from the clone directory.

  2. Commit the change to config/blobs.yml or, if you don't have commit rights, create a pull request.

Once the change to config/blobs.yml has been committed or the pull request merged, you can expect the uploaded files to become available on tabasco within a few hours.

More information is available in blobstore information.

Contributing

Pull requests are welcome; see the contributor guidelines for details.

License

The Builder is released under version 2.0 of the Apache License.


Update Locations

This table shows locations to check for new releases of cached dependencies. It is used primarily by Pivotal employees to keep the caches up to date.

Dependency Location
App Dynamics release
Auto Reconfiguration release
Groovy release
MariaDB JDBC release
OpenJDK jdk8, jdk7u, jdk6
New Relic release
Play JPA Plugin release
PostgreSQL JDBC release
Spring Boot CLI release, milestone, snapshot
tc Server release
Tomcat 8.x, 7.x, 6.x

Open JDK Build Details

This table shows the mappings between versions, build numbers, and repository tags for OpenJDK releases. It is used primarily by Pivotal employees to keep track of exactly what was built.

JDK Version Build Number Tag
1.6.0_21 b21 jdk6-b21
1.6.0_22 b22 jdk6-b22
1.6.0_23 b23 jdk6-b23
1.6.0_24 b24 jdk6-b24
1.6.0_25 b25 jdk6-b25
1.6.0_26 b26 jdk6-b26
1.6.0_27 b27 jdk6-b27
1.7.0_01 b08 jdk7u1-b08
1.7.0_02 b21 jdk7u2-b21
1.7.0_03 b04 jdk7u3-b04
1.7.0_04 b31 jdk7u4-b31
1.7.0_05 b30 jdk7u5-b30
1.7.0_06 b31 jdk7u6-b31
1.7.0_07 b31 jdk7u7-b31
1.7.0_08 b05 jdk7u8-b05
1.7.0_09 b32 jdk7u9-b32
1.7.0_10 b31 jdk7u10-b31
1.7.0_11 b33 jdk7u11-b33
1.7.0_12 b09 jdk7u12-b09
1.7.0_13 b30 jdk7u13-b30
1.7.0_14 b22 jdk7u14-b22
1.7.0_15 b33 jdk7u15-b33
1.7.0_17 b31 jdk7u17-b31
1.7.0_21 b30 jdk7u21-b30
1.7.0_25 b11 jdk7u25-b11
1.7.0_40 b43 jdk7u40-b43
1.7.0_45 b31 jdk7u45-b31
1.8.0_M6 b75 jdk8-b75
1.8.0_M7 b91 jdk8-b91
1.8.0_M8 b106 jdk8-b106

java-buildpack-dependency-builder's People

Contributors

nebhale avatar testvidya11 avatar

Watchers

 avatar

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.