diff --git a/.github/workflows/docs.sh b/.github/workflows/docs.sh new file mode 100755 index 00000000000..fa0fd21bd6d --- /dev/null +++ b/.github/workflows/docs.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 -e + +mvn --version +java -version +javadoc -J-version + +# setup hugo +HUGO_REPO=https://github.com/gohugoio/hugo/releases/download/v0.80.0/hugo_extended_0.80.0_Linux-64bit.tar.gz +HUGO_ARTIFACT=hugo_extended_0.80.0_Linux-64bit.tar.gz +if ! curl --fail -OL $HUGO_REPO ; then + echo "Failed to download Hugo binary" + exit 1 +fi +tar -zxvf $HUGO_ARTIFACT +git submodule update --init --recursive +# generate docs into docs/target +./hugo -v --source docs --destination target +if [ $? -ne 0 ]; then + echo "Error building the docs" + exit 1 +fi + +# build Flink; required for Javadoc step +mvn clean install -B -DskipTests -Dfast -Pskip-webui-build + +# build java/scala docs +mkdir -p docs/target/api +mvn javadoc:aggregate -B \ + -Paggregate-scaladoc \ + -DadditionalJOption="-Xdoclint:none --allow-script-in-comments" \ + -Dmaven.javadoc.failOnError=false \ + -Dcheckstyle.skip=true \ + -Dspotless.check.skip=true \ + -Denforcer.skip=true \ + -Dheader="

Back to Flink Website

" +mv target/site/apidocs docs/target/api/java +pushd flink-scala +mvn scala:doc -B +mv target/site/scaladocs ../docs/target/api/scala +popd + +# build python docs +if [ -f ./flink-python/dev/lint-python.sh ]; then + # Just completely ignore sudo in conda. + unset SUDO_UID SUDO_GID SUDO_USER + + # build python docs + # disable the gateway, because otherwise it tries to find FLINK_HOME to access Java classes + PYFLINK_GATEWAY_DISABLED=1 ./flink-python/dev/lint-python.sh -i "sphinx" + + # move python docs + mv flink-python/docs/_build/html docs/target/api/python +fi diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000000..205fc20bb32 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,58 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. + +name: "Build documentation" +on: + workflow_dispatch: +jobs: + build-documentation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Set branch environment variable + run: | + currentBranch=$(git branch --show-current) + + echo "flink_branch=${currentBranch}" >> ${GITHUB_ENV} + + if [ "${currentBranch} = "master" ]; then + echo "flink_alias=release-1.16" >> ${GITHUB_ENV} + elif [ "${currentBranch} = "release-1.14" ]; then + echo "flink_alias=stable" >> ${GITHUB_ENV} + fi + - name: Build documentation + run: | + docker run --rm --volume "$PWD:/root/flink" chesnay/flink-ci:java_8_11 bash -c "cd /root/flink && ./.github/workflows/docs.sh" + - name: Upload documentation + uses: burnett01/rsync-deployments@5.2 + with: + switches: --archive --compress + path: docs/target/ + remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/flink/testing-flink-docs-${{ env.flink_branch }}/ + remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }} + remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }} + remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }} + remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }} + - name: Upload documentation alias + if: env.flink_alias != '' + uses: burnett01/rsync-deployments@5.2 + with: + switches: --archive --compress + path: docs/target/ + remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/flink/testing-flink-docs-${{ env.flink_alias }}/ + remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }} + remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }} + remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }} + remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }} diff --git a/tools/ci/build_docs.sh b/tools/ci/build_docs.sh deleted file mode 100755 index 165d99f0e9b..00000000000 --- a/tools/ci/build_docs.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -################################################################################ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you 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. -################################################################################ - -HUGO_REPO=https://github.com/gohugoio/hugo/releases/download/v0.80.0/hugo_extended_0.80.0_Linux-64bit.tar.gz -HUGO_ARTIFACT=hugo_extended_0.80.0_Linux-64bit.tar.gz - -if ! curl --fail -OL $HUGO_REPO ; then - echo "Failed to download Hugo binary" - exit 1 -fi - -tar -zxvf $HUGO_ARTIFACT - -git submodule update --init --recursive -# generate docs into docs/target -./hugo -v --source docs --destination target - -if [ $? -ne 0 ]; then - echo "Error building the docs" - exit 1 -fi - diff --git a/tools/ci/docs.sh b/tools/ci/docs.sh deleted file mode 100755 index e089170cb1b..00000000000 --- a/tools/ci/docs.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -################################################################################ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you 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. -################################################################################ - -HUGO_REPO=https://github.com/gohugoio/hugo/releases/download/v0.80.0/hugo_extended_0.80.0_Linux-64bit.tar.gz -HUGO_ARTIFACT=hugo_extended_0.80.0_Linux-64bit.tar.gz - -if ! curl --fail -OL $HUGO_REPO ; then - echo "Failed to download Hugo binary" - exit 1 -fi - -tar -zxvf $HUGO_ARTIFACT - -git submodule update --init --recursive -./hugo --source docs - -if [ $? -ne 0 ]; then - echo "Error building the docs" - exit 1 -fi -