#!/bin/bash # A script to automatically deploy javadocs. # # This script is useful both in a CI regular build, where it will generate # javadocs (aggregated) via a maven build, and deploy them to github pages. This script # is derived from instructions given in this blog article: # http://benlimmer.com/2013/12/26/automatically-publish-javadoc-to-gh-pages-with-travis-ci/ # # If the RELEASE_VERSION environment variable is set, then it will perform a similar # action, but push to a versioned api docs folder, under the current user's credentials # rather than using an encrypted secret via github's GH_TOKEN mechanism. Users who # use the script this way must have a .ssh key which they have declared on github.com # per the instructions here: https://help.github.com/articles/generating-ssh-keys/ # set -euE echo -e "Publishing javadoc...\n" if [ -n "${RELEASE_VERSION:-}" ]; then # Release version_subdir=api/${RELEASE_VERSION} commit_message="Release $RELEASE_VERSION javadoc pushed to gh-pages." github_url="git@github.com:google/truth.git" else # CI version_subdir=api/latest commit_message="Latest javadoc on successful CI build auto-pushed to gh-pages." github_url="https://x-access-token:${GITHUB_TOKEN}@github.com/google/truth.git" fi mvn javadoc:aggregate perl -ni -e 'print unless /Tolerant.*Comparison/ || /SubjectBuilderCallback/ || /UsingCorrespondence/ || /AsIterable/ || /Correspondence[.][A-Z]/ || /FluentAssertion/ || /PathSubject/ || /Re2jSubjects/ || /Ordered/' target/site/apidocs/allclasses-frame.html find target/site/apidocs -name '*.html' | xargs perl -077pi -e 's#