diff --git a/.kokoro/release/publish_javadoc11.cfg b/.kokoro/release/publish_javadoc11.cfg new file mode 100644 index 000000000..d09dbd5b4 --- /dev/null +++ b/.kokoro/release/publish_javadoc11.cfg @@ -0,0 +1,30 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# cloud-rad production +env_vars: { + key: "STAGING_BUCKET_V2" + value: "docs-staging-v2" +} + +# Configure the docker image for kokoro-trampoline +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/gax-java/.kokoro/release/publish_javadoc11.sh" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + +# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh new file mode 100755 index 000000000..9a79f36c9 --- /dev/null +++ b/.kokoro/release/publish_javadoc11.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# Copyright 2019 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +if [[ -z "${CREDENTIALS}" ]]; then + CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account +fi + +if [[ -z "${STAGING_BUCKET_V2}" ]]; then + echo "Need to set STAGING_BUCKET environment variable" + exit 1 +fi + +# work from the git root directory +pushd $(dirname "$0")/../../ + +# install docuploader package +python3 -m pip install gcp-docuploader + +NAME=gax +VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) + +# build the docs +./gradlew javadocCombinedV3 + +# copy README to tmp_docs dir and rename index.md +cp README.md tmp_docs/index.md + +pushd tmp_docs + +# create metadata +python3 -m docuploader create-metadata \ + --name ${NAME} \ + --version ${VERSION} \ + --language java + +# upload docs +python3 -m docuploader upload . \ + --credentials ${CREDENTIALS} \ + --staging-bucket ${STAGING_BUCKET_V2} \ + --destination-prefix docfx + +popd diff --git a/build.gradle b/build.gradle index a38eaf783..af83458e5 100644 --- a/build.gradle +++ b/build.gradle @@ -173,7 +173,7 @@ subprojects { exclude('**/*Test.java') } - // JavaDoc + // JavaDocV1 html // ------- task javadocJar(type: Jar) { @@ -193,6 +193,26 @@ subprojects { } } + // JavaDocV3 - docFX + // ------- + + task javadocJarV3(type: Jar) { + classifier = 'javadoc' + from javadoc + } + + javadoc.options { + encoding = 'UTF-8' + links 'https://docs.oracle.com/javase/7/docs/api/' + + if (JavaVersion.current().isJava8Compatible()) { + addStringOption('Xdoclint:all,-missing', '-quiet') + } + if (JavaVersion.current().isJava11Compatible()) { + addStringOption('-release', '7') + } + } + // Test jar // -------- @@ -382,9 +402,8 @@ subprojects { } } -// JavaDoc +// JavaDocV1 html // ------- - task javadocCombined(type: Javadoc) { source subprojects.collect {project -> project.sourceSets.main.allJava } classpath = files(subprojects.collect {project -> project.sourceSets.main.compileClasspath}) @@ -401,6 +420,23 @@ clean { delete 'tmp_docs/' } +// JavaDocV3 docFX +// ------- +task javadocCombinedV3(type: Javadoc) { + source subprojects.collect {project -> project.sourceSets.main.allJava } + classpath = files(subprojects.collect {project -> project.sourceSets.main.compileClasspath}) + destinationDir = new File(projectDir, 'tmp_docs') + + options.addStringOption('encoding', 'UTF-8') + options.addStringOption("doclet", "com.microsoft.doclet.DocFxDoclet") + options.docletpath = [file(System.getenv('KOKORO_GFILE_DIR') + "/docfx-doclet-1.0-SNAPSHOT-jar-with-dependencies-172556.jar")] +} + +clean { + delete 'tmp_gh-pages/' + delete 'tmp_docs/' +} + // Release // =======