diff --git a/README.adoc b/README.adoc index 60a37926..287c11b1 100644 --- a/README.adoc +++ b/README.adoc @@ -241,30 +241,35 @@ approach of generating documentation just add these plugins to your `docs` modul - org.apache.maven.plugins - maven-dependency-plugin <1> + pl.project13.maven + git-commit-id-plugin <1> org.apache.maven.plugins - maven-resources-plugin <2> + maven-dependency-plugin <2> + + + org.apache.maven.plugins + maven-resources-plugin <3> org.asciidoctor - asciidoctor-maven-plugin <3> + asciidoctor-maven-plugin <4> org.apache.maven.plugins - maven-antrun-plugin <4> + maven-antrun-plugin <5> ---- -<1> This plugin downloads the resources of the `spring-cloud-build-docs` module -<2> This plugin unpacks the resources of the `spring-cloud-build-docs` module -<3> This plugin is required to parse the Asciidoctor documentation -<4> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links +<2> This plugin downloads sets up all the git information of the project +<2> This plugin downloads the resources of the `spring-cloud-build-docs` module +<3> This plugin unpacks the resources of the `spring-cloud-build-docs` module +<4> This plugin is required to parse the Asciidoctor documentation +<5> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links IMPORTANT: The order of plugin declaration is important! diff --git a/docs/pom.xml b/docs/pom.xml index 6ac92fc8..25892558 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -36,6 +36,10 @@ docs + + pl.project13.maven + git-commit-id-plugin + org.apache.maven.plugins maven-dependency-plugin diff --git a/docs/src/main/asciidoc/README.adoc b/docs/src/main/asciidoc/README.adoc index 540122cc..9c861347 100644 --- a/docs/src/main/asciidoc/README.adoc +++ b/docs/src/main/asciidoc/README.adoc @@ -57,30 +57,35 @@ approach of generating documentation just add these plugins to your `docs` modul - org.apache.maven.plugins - maven-dependency-plugin <1> + pl.project13.maven + git-commit-id-plugin <1> org.apache.maven.plugins - maven-resources-plugin <2> + maven-dependency-plugin <2> + + + org.apache.maven.plugins + maven-resources-plugin <3> org.asciidoctor - asciidoctor-maven-plugin <3> + asciidoctor-maven-plugin <4> org.apache.maven.plugins - maven-antrun-plugin <4> + maven-antrun-plugin <5> ---- -<1> This plugin downloads the resources of the `spring-cloud-build-docs` module -<2> This plugin unpacks the resources of the `spring-cloud-build-docs` module -<3> This plugin is required to parse the Asciidoctor documentation -<4> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links +<2> This plugin downloads sets up all the git information of the project +<2> This plugin downloads the resources of the `spring-cloud-build-docs` module +<3> This plugin unpacks the resources of the `spring-cloud-build-docs` module +<4> This plugin is required to parse the Asciidoctor documentation +<5> This plugin is required to copy resources into proper final destinations and to generate main README.adoc and to assert that no files use unresolved links IMPORTANT: The order of plugin declaration is important! diff --git a/docs/src/main/asciidoc/ghpages.sh b/docs/src/main/asciidoc/ghpages.sh index 8d315164..1e5b9d90 100755 --- a/docs/src/main/asciidoc/ghpages.sh +++ b/docs/src/main/asciidoc/ghpages.sh @@ -121,14 +121,6 @@ function retrieve_doc_properties() { echo "Will not extract any properties for release train" return fi - echo "Extracting doc properties" - MAIN_ADOC_VALUE=$("${MAVEN_EXEC}" -q \ - -Dexec.executable="echo" \ - -Dexec.args='${docs.main}' \ - org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \ - -P docs \ - -pl docs | tail -1 ) - echo "Extracted 'main.adoc' from Maven build [${MAIN_ADOC_VALUE}]" WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"} @@ -226,15 +218,8 @@ function copy_docs_for_current_version() { echo "The file [${file}] shouldn't be ignored" # Not ignored... # We want users to access 1.0.0.RELEASE/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html - if [[ "${file}" == "${MAIN_ADOC_VALUE}.html" ]] ; then - # We don't want to copy the spring-cloud-sleuth.html - # we want it to be converted to index.html - cp -rf "${f}" "${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html" - "${GIT_BIN}" add -A "${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html" - else - cp -rf "${f}" "${ROOT_FOLDER}/${CURRENT_BRANCH}" + cp -rf "${f}" "${ROOT_FOLDER}/${CURRENT_BRANCH}" "${GIT_BIN}" add -A "${ROOT_FOLDER}/${CURRENT_BRANCH}/${file}" || echo "Failed to add the file [${file}]" - fi fi done COMMIT_CHANGES="yes" @@ -268,14 +253,7 @@ function copy_docs_for_branch() { echo "Copying file [${file}] to destination [${destination}]" if ! "${GIT_BIN}" ls-files -i -o --exclude-standard --directory | grep -q ^"${file}"$; then # Not ignored... - # We want users to access 1.0.0.RELEASE/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html - if [[ ("${file}" == "${MAIN_ADOC_VALUE}.html") || ("${file}" == "${REPO_NAME}.html") ]] ; then - # We don't want to copy the spring-cloud-sleuth.html - # we want it to be converted to index.html - cp -rf "${f}" "${destination}"/index.html - else - cp -rf "${f}" "${destination}" - fi + cp -rf "${f}" "${destination}" "${GIT_BIN}" add -A "${destination}" fi } diff --git a/docs/src/test/bats/ghpages.bats b/docs/src/test/bats/ghpages.bats index 387a8c6c..5c5a13f9 100644 --- a/docs/src/test/bats/ghpages.bats +++ b/docs/src/test/bats/ghpages.bats @@ -36,7 +36,7 @@ function git_with_remotes { if [[ "$*" == *"set-url"* ]]; then echo "git $*" elif [[ "$*" == *"config remote.origin.url"* ]]; then - echo "git://foo.bar/baz.git" + echo "git://example1.example2/example3.git" else git $* fi @@ -56,7 +56,7 @@ function printing_git_failing_with_diff_index { function printing_git_with_remotes { if [[ "$*" == *"config remote.origin.url"* ]]; then - echo "git://foo.bar/baz.git" + echo "git://example1.example2/example3.git" else printing_git $* fi @@ -64,7 +64,7 @@ function printing_git_with_remotes { function stubbed_git { if [[ "$*" == *"config remote.origin.url"* ]]; then - echo "git://foo.bar/baz.git" + echo "git://example1.example2/example3.git" elif [[ "$*" == *"diff-index"* ]]; then return 1 elif [[ "$*" == *"symbolic-ref"* ]]; then @@ -88,13 +88,12 @@ export -f stubbed_git export RELEASER_GIT_OAUTH_TOKEN="mytoken" cd "${TEMP_DIR}/spring-cloud-stream/" mkdir -p docs/target/generated-docs/ - touch docs/target/generated-docs/${MAIN_ADOC_VALUE}.html - touch docs/target/generated-docs/foo.html + touch docs/target/generated-docs/example1.html run "${SOURCE_DIR}"/ghpages.sh assert_success - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" assert_output --partial "git fetch -q" assert_output --partial "git checkout master" assert_output --partial "git stash" @@ -103,7 +102,7 @@ export -f stubbed_git # Current branch is master - will copy the current docs only to the root folder assert_output --partial "git add -A ${TEMP_DIR}/spring-cloud-stream" assert_output --partial "git commit -a -m Sync docs from master to gh-pages" - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" assert_output --partial "git push origin gh-pages" assert_output --partial "git checkout master" assert_output --partial "git stash pop" @@ -118,13 +117,12 @@ export -f stubbed_git cd "${TEMP_DIR}/spring-cloud-stream/" mkdir -p docs/target/generated-docs/ - touch docs/target/generated-docs/${MAIN_ADOC_VALUE}.html - touch docs/target/generated-docs/foo.html + touch docs/target/generated-docs/example1.html run "${SOURCE_DIR}"/ghpages.sh assert_success - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" assert_output --partial "git remote set-branches --add origin gh-pages" assert_output --partial "git fetch -q" # Previous branch was [master] @@ -134,10 +132,10 @@ export -f stubbed_git assert_output --partial "git checkout gh-pages" assert_output --partial "git pull origin gh-pages" # Current branch is master - will copy the current docs only to the root folder - assert [ -f "${TEMP_DIR}/spring-cloud-static/spring-cloud-stream/${VERSION}/foo.html" ] + assert [ -f "${TEMP_DIR}/spring-cloud-static/spring-cloud-stream/${VERSION}/example1.html" ] assert_output --partial "git add -A ${TEMP_DIR}/spring-cloud-static/spring-cloud-stream/${VERSION}" assert_output --partial "git commit -a -m Sync docs from v1.0.0.RELEASE to gh-pages" - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" assert_output --partial "git push origin gh-pages" assert_output --partial "git checkout master" assert_output --partial "git stash pop" @@ -153,23 +151,22 @@ export -f stubbed_git cd "${TEMP_DIR}/spring-cloud-stream/" mkdir -p docs/target/generated-docs/ - touch docs/target/generated-docs/${MAIN_ADOC_VALUE}.html - touch docs/target/generated-docs/foo.html + touch docs/target/generated-docs/example1.html run "${SOURCE_DIR}"/ghpages.sh assert_success - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" # Previous branch was [master] assert_output --partial "git checkout master" assert_output --partial "git stash" assert_output --partial "git checkout gh-pages" assert_output --partial "git pull origin gh-pages" # Current branch is master - will copy the current docs only to the root folder - assert [ -f "${TEMP_DIR}/spring-cloud-static/${VERSION}/foo.html" ] + assert [ -f "${TEMP_DIR}/spring-cloud-static/${VERSION}/example1.html" ] assert_output --partial "git add -A ${TEMP_DIR}/spring-cloud-static/${VERSION}" assert_output --partial "git commit -a -m Sync docs from vGreenwich.SR2 to gh-pages" - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" assert_output --partial "git push origin gh-pages" assert_output --partial "git checkout master" assert_output --partial "git stash pop" @@ -200,7 +197,7 @@ export -f stubbed_git run add_oauth_token_to_remote_url assert_success - assert_output --partial "git remote set-url --push origin https://foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://example1.example2/example3.git" } @test "should add auth token to URL if token is present" { @@ -213,7 +210,7 @@ export -f stubbed_git run add_oauth_token_to_remote_url assert_success - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" } @test "should retrieve the name of the current branch" { @@ -325,8 +322,7 @@ export -f stubbed_git export CURRENT_BRANCH="master" cd "${TEMP_DIR}/spring-cloud-stream/" mkdir -p docs/target/generated-docs/ - touch docs/target/generated-docs/${MAIN_ADOC_VALUE}.html - touch docs/target/generated-docs/foo.html + touch docs/target/generated-docs/example1.html source "${SOURCE_DIR}"/ghpages.sh @@ -340,11 +336,10 @@ export -f stubbed_git export GIT_BIN="printing_git" export CURRENT_BRANCH="present" export WHITELISTED_BRANCHES_VALUE="present" - export MAIN_ADOC_VALUE="my_doc" cd "${TEMP_DIR}/spring-cloud-stream/" mkdir -p docs/target/generated-docs/ - touch docs/target/generated-docs/${MAIN_ADOC_VALUE}.html - touch docs/target/generated-docs/foo.html + touch docs/target/generated-docs/my_doc.html + touch docs/target/generated-docs/example1.html source "${SOURCE_DIR}"/ghpages.sh @@ -356,8 +351,8 @@ export -f stubbed_git run copy_docs_for_current_version assert_success - assert_output --partial "add -A ${ROOT_FOLDER}/present/index.html" - assert_output --partial "add -A ${ROOT_FOLDER}/present/foo.html" + assert_output --partial "add -A ${ROOT_FOLDER}/present/my_doc.html" + assert_output --partial "add -A ${ROOT_FOLDER}/present/example1.html" } @test "should do nothing if current branch is not whitelisted" { @@ -373,58 +368,6 @@ export -f stubbed_git assert [ "${COMMIT_CHANGES}" != "yes" ] } -@test "should reuse main adoc value as new index.html" { - export GIT_BIN="printing_git" - export DESTINATION_REPO_FOLDER="${TEMP_DIR}/spring-cloud-static" - export VERSION="1.0.0.RELEASE" - export MAIN_ADOC_VALUE="my_doc" - cd "${TEMP_DIR}/spring-cloud-stream/" - mkdir -p docs/target/generated-docs/ - touch docs/target/generated-docs/${MAIN_ADOC_VALUE}.html - touch docs/target/generated-docs/foo.html - - source "${SOURCE_DIR}"/ghpages.sh - - copy_docs_for_provided_version - - assert_success - assert [ "${COMMIT_CHANGES}" == "yes" ] - assert [ "${CURRENT_BRANCH}" == "v${VERSION}" ] - - run copy_docs_for_provided_version - - assert_success - assert_output --partial "add -A ${DESTINATION_REPO_FOLDER}/${VERSION}" - assert [ -f "${DESTINATION_REPO_FOLDER}/${VERSION}/index.html" ] - assert [ -f "${DESTINATION_REPO_FOLDER}/${VERSION}/foo.html" ] -} - -@test "should reuse repo name as new index.html" { - export GIT_BIN="printing_git" - export DESTINATION_REPO_FOLDER="${TEMP_DIR}/spring-cloud-static" - export VERSION="1.0.0.RELEASE" - export REPO_NAME="spring-cloud-stream" - cd "${TEMP_DIR}/spring-cloud-stream/" - mkdir -p docs/target/generated-docs/ - touch docs/target/generated-docs/${REPO_NAME}.html - touch docs/target/generated-docs/foo.html - - source "${SOURCE_DIR}"/ghpages.sh - - copy_docs_for_provided_version - - assert_success - assert [ "${COMMIT_CHANGES}" == "yes" ] - assert [ "${CURRENT_BRANCH}" == "v${VERSION}" ] - - run copy_docs_for_provided_version - - assert_success - assert_output --partial "add -A ${DESTINATION_REPO_FOLDER}/${VERSION}" - assert [ -f "${DESTINATION_REPO_FOLDER}/${VERSION}/index.html" ] - assert [ -f "${DESTINATION_REPO_FOLDER}/${VERSION}/foo.html" ] -} - @test "should not do anything if commit flag not set" { export GIT_BIN="printing_git_with_remotes" export COMMIT_CHANGES="no" @@ -448,7 +391,7 @@ export -f stubbed_git assert_success assert_output --partial "git commit -a -m Sync docs from to gh-pages" - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" assert_output --partial "git push origin gh-pages" } @@ -464,7 +407,7 @@ export -f stubbed_git assert_success assert_output --partial "git commit -a -m Sync docs from to gh-pages" - assert_output --partial "git remote set-url --push origin https://username:password@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://username:password@example1.example2/example3.git" assert_output --partial "git push origin gh-pages" } diff --git a/docs/src/test/bats/update-guides.bats b/docs/src/test/bats/update-guides.bats index bd804cf9..fc7871bc 100644 --- a/docs/src/test/bats/update-guides.bats +++ b/docs/src/test/bats/update-guides.bats @@ -33,7 +33,7 @@ function git_with_remotes { if [[ "$*" == *"set-url"* ]]; then echo "git $*" elif [[ "$*" == *"config remote.origin.url"* ]]; then - echo "git://foo.bar/baz.git" + echo "git://example1.example2/example3.git" else git $* fi @@ -45,7 +45,7 @@ function printing_git { function printing_git_with_remotes { if [[ "$*" == *"config remote.origin.url"* ]]; then - echo "git://foo.bar/baz.git" + echo "git://example1.example2/example3.git" else printing_git $* fi @@ -53,7 +53,7 @@ function printing_git_with_remotes { function stubbed_git { if [[ "$*" == *"config remote.origin.url"* ]]; then - echo "git://foo.bar/baz.git" + echo "git://example1.example2/example3.git" elif [[ "$*" == *"commit"* ]]; then printing_git $* elif [[ "$*" == *"push"* ]]; then @@ -111,7 +111,7 @@ export -f stubbed_git assert_success # change remote - assert_output --partial "git remote set-url --push origin https://mytoken@foo.bar/baz.git" + assert_output --partial "git remote set-url --push origin https://mytoken@example1.example2/example3.git" # commit and push assert_output --partial "git commit -m Updating guides" assert_output --partial "git push origin master" diff --git a/pom.xml b/pom.xml index ffef567c..c5cddbb9 100644 --- a/pom.xml +++ b/pom.xml @@ -31,12 +31,17 @@ 2.2.0.BUILD-SNAPSHOT 2.2.0.BUILD-SNAPSHOT ${project.build.directory}/build-docs + ${project.build.directory}/refdocs/ 0.1.0.RELEASE 0.1.3.RELEASE 1.5.0-alpha.18 + 1.5.18 ${project.version} deploy + ${project.version} + 1.5.8 + 9.2.7.0 jacoco @@ -61,7 +66,7 @@ 3.2.2 1.6.0 3.1.0 - 2.2.4 + 3.0.0 3.1.1 3.0.0-M2 1.6 @@ -91,6 +96,8 @@ 0.0.2.RELEASE true + 3.2.10 + 1.8.1 @@ -481,6 +488,7 @@ ${project.build.outputDirectory}/git.properties + false @@ -953,7 +961,7 @@ ${spring-doc-resources.version} zip true - ${project.build.directory}/refdocs/ + ${refdocs.build.directory} @@ -999,10 +1007,54 @@ asciidoctorj-pdf ${asciidoctorj-pdf.version} + + org.asciidoctor + asciidoctorj-diagram + ${asciidoctorj-diagram.version} + - ${project.build.directory}/refdocs/ - ${docs.main}.adoc + ${refdocs.build.directory} + + + ${refdocs.build.directory} + + **/*.*adoc + + + + + shared + true + + left + 4 + true + ${project.basedir}/src + ${project.basedir}/src/main/asciidoc + ${project.basedir}/target/generated-resources + + ${maven.multiModuleProjectDirectory} + ${docs.main} + https://raw.github.com/spring-cloud/${docs.main}/${github-tag} + https://github.com/spring-cloud/${docs.main}/tree/${github-tag} + https://github.com/spring-cloud/${docs.main}/issues/ + https://github.com/spring-cloud/${docs.main}/wiki + https://github.com/spring-cloud/${docs.main}/tree/master + ${index-link} + + + ${project.version} + ${github-tag} + ${version-type} + ${docs-url} + ${raw-docs-url} + ${project.version} + ${docs.main} + + + asciidoctor-diagram + @@ -1013,35 +1065,84 @@ html5 + + .adoc + .htmladoc + + ${project.build.directory}/generated-docs/reference/html + highlight.js book - // these attributes are required to use the doc resources - shared - css/ - spring.css - true - font js/highlight atom-one-dark-reasonable - true - - left - 4 - ${project.version} - true + true + ./images + font + css/ + spring.css + warn - ${docs.main}.html + + true + + + + + + + + generate-htmlsingle-documentation + prepare-package + + process-asciidoc + + + html5 + + .htmlsingleadoc + + + ${project.build.directory}/generated-docs/reference/htmlsingle + + highlight.js + book + + js/highlight + atom-one-dark-reasonable + true + ./images + font + css/ + spring.css + + + + + generate-pdf-documentation + prepare-package + + process-asciidoc + + + pdf + + .pdfadoc + + ${project.build.directory}/generated-docs/reference/pdf + + + + ${refdocs.build.directory} + + **/* + + + - - org.codehaus.mojo - build-helper-maven-plugin - ${build-helper-maven-plugin.version} - false - org.apache.maven.plugins maven-antrun-plugin @@ -1061,22 +1162,22 @@ org.apache.ant ant-nodeps - 1.8.1 + ${ant-nodeps.version} org.tigris.antelope antelopetasks - 3.2.10 + ${antelopetasks.version} org.jruby jruby-complete - 9.2.7.0 + ${jruby-complete.version} org.asciidoctor asciidoctorj - 1.6.2 + ${asciidoctorj.version} @@ -1119,6 +1220,25 @@ + + package-and-attach-docs-zip + package + + run + + + + + + + + + + + setup-maven-properties validate @@ -1128,48 +1248,79 @@ true - - - - - + + + + + - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + ${build-helper-maven-plugin.version} + false + + + attach-zip + + attach-artifact + + + + + + ${project.build.directory}/${project.artifactId}-${project.version}.zip + + zip + + + + + + org.jfrog.buildinfo artifactory-maven-plugin