diff --git a/.github/workflows/publish-nightly-docs.yml b/.github/workflows/publish-nightly-docs.yml deleted file mode 100644 index c6b88245f8..0000000000 --- a/.github/workflows/publish-nightly-docs.yml +++ /dev/null @@ -1,76 +0,0 @@ -# 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. - -# Based on Apache Arrow's java-nightly workflow -# https://github.com/apache/arrow/blob/master/.github/workflows/java_nightly.yml -name: Publish nightly documentation - -on: - workflow_dispatch: - schedule: - - cron: "0 0 * * *" - -permissions: - contents: read - -jobs: - publish-nightly: - name: Publish nightly documentation - runs-on: ubuntu-20.04 - if: github.repository == 'apache/incubator-pekko' - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup Java 11 - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 11 - - - name: Install Graphviz - run: |- - sudo apt-get install graphviz - - - name: Cache Coursier cache - uses: coursier/cache-action@v6.4.0 - - - name: Build Documentation - run: |- - sbt -Dpekko.genjavadoc.enabled=true docs/paradox unidoc - - # Create directory structure upfront since rsync does not create intermediate directories otherwise - - name: Create nightly directory structure - run: |- - mkdir -p target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/ - mv docs/target/paradox/site/main/ target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/docs - mv target/scala-2.13/unidoc target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/api - mv target/javaunidoc target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/japi - - - name: Upload nightly docs - uses: ./.github/actions/sync-nightlies - with: - upload: true - switches: --archive --compress --update --delete --progress --relative - local_path: target/nightly-docs/./docs/pekko/ # The intermediate dot is to show `--relative` which paths to operate on - remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko/ - 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/.github/workflows/publish-nightly.yml b/.github/workflows/publish-nightly.yml index 23fbca1beb..09ad846d24 100644 --- a/.github/workflows/publish-nightly.yml +++ b/.github/workflows/publish-nightly.yml @@ -17,7 +17,7 @@ # Based on Apache Arrow's java-nightly workflow # https://github.com/apache/arrow/blob/master/.github/workflows/java_nightly.yml -name: Publish nightly artifacts +name: Publish nightly snapshots and documentation on: workflow_dispatch: @@ -49,6 +49,9 @@ jobs: distribution: temurin java-version: 11 + - name: Cache Coursier cache + uses: coursier/cache-action@v6 + - name: Install Graphviz run: |- sudo apt-get install graphviz @@ -64,62 +67,25 @@ jobs: NEXUS_PW: ${{ secrets.NEXUS_PW }} run: sbt +publish - - name: Publish local + - name: Build Documentation run: |- - sbt +publishM2 + sbt -Dpekko.genjavadoc.enabled=true docs/paradox unidoc - - name: Cache Coursier cache - uses: coursier/cache-action@v6.4.0 + # Create directory structure upfront since rsync does not create intermediate directories otherwise + - name: Create nightly directory structure + run: |- + mkdir -p target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/ + mv docs/target/paradox/site/main/ target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/docs + mv target/scala-2.13/unidoc target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/api + mv target/javaunidoc target/nightly-docs/docs/pekko/${{ github.ref_name }}-snapshot/japi - - name: Sync from remote - uses: ./.github/actions/sync-nightlies - with: - switches: -avzh --update --delete --progress - local_path: repo - remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko/snapshots - remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }} - remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }} - remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }} - remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }} - - - shell: bash - name: Show local repo sync from remote - run: | - for i in `ls -t repo/org/apache/pekko/`; do - echo "- $i: $(find repo/org/apache/pekko/$i -mindepth 1 -maxdepth 1 -type d \ - | wc -l \ - | xargs) versions available" - done - - - shell: bash - name: Copy snapshots from local m2 repository - run: | - mkdir -p repo/org/apache/pekko/ - cp -R $HOME/.m2/repository/org/apache/pekko/ repo/org/apache - - - name: Prune repository - shell: bash - env: - KEEP: ${{ github.event.inputs.keep || 30 }} - run: | - for i in `ls -t repo/org/apache/pekko/`; do - find repo/org/apache/pekko/$i -mindepth 1 -maxdepth 1 -type d -print0 \ - | xargs -0 ls -t -d \ - | tail -n +$((KEEP + 1)) \ - | xargs rm -rf - done - - - name: Show repo contents - run: tree repo - - - name: Sync to Remote - if: ${{ github.repository == 'apache/incubator-pekko' }} + - name: Upload nightly docs uses: ./.github/actions/sync-nightlies with: upload: true - switches: -avzh --omit-dir-times --update --delete --progress - local_path: repo - remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko/snapshots + switches: --archive --compress --update --delete --progress --relative + local_path: target/nightly-docs/./docs/pekko/ # The intermediate dot is to show `--relative` which paths to operate on + remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko/ remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }} remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }} remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }}