You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pekko.apache.org by fa...@apache.org on 2023/05/21 20:58:44 UTC
[incubator-pekko-samples] branch main updated: publish docs (#43)
This is an automated email from the ASF dual-hosted git repository.
fanningpj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-samples.git
The following commit(s) were added to refs/heads/main by this push:
new e88e67f publish docs (#43)
e88e67f is described below
commit e88e67f400688161ff363c1b1cd3f82e36bef9ae
Author: PJ Fanning <pj...@users.noreply.github.com>
AuthorDate: Sun May 21 21:58:38 2023 +0100
publish docs (#43)
* publish docs
---
.github/actions/sync-nightlies/action.yml | 86 +++++++++++++++++++++++++++++++
.github/workflows/publish-nightly.yml | 57 ++++++++++++++++++++
2 files changed, 143 insertions(+)
diff --git a/.github/actions/sync-nightlies/action.yml b/.github/actions/sync-nightlies/action.yml
new file mode 100644
index 0000000..6a8deff
--- /dev/null
+++ b/.github/actions/sync-nightlies/action.yml
@@ -0,0 +1,86 @@
+# 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 sync-nightlies action
+# https://github.com/apache/arrow/blob/master/.github/actions/sync-nightlies/action.yml
+name: 'Sync Nightlies'
+description: 'Sync files to and from nightlies.apache.org'
+inputs:
+ upload:
+ description: 'Sync from local to remote'
+ default: false
+ required: false
+ switches:
+ description: 'see rsync --help'
+ required: true
+ local_path:
+ description: 'The relative local path within $GITHUB_WORKSPACE'
+ required: true
+ remote_path:
+ description: 'The remote path incl. sub dirs e.g. {{secrets.path}}/arrow/r'
+ required: true
+ remote_host:
+ description: 'The remote host'
+ required: true
+ remote_port:
+ description: 'The remote port'
+ required: false
+ default: 22
+ remote_user:
+ description: 'The remote user'
+ required: true
+ remote_key:
+ description: 'The remote key'
+ required: true
+
+runs:
+ using: "composite"
+ steps:
+ - name: Sync files
+ shell: bash
+ env:
+ SWITCHES: "${{ inputs.switches }}"
+ LOCAL_PATH: "${{ github.workspace }}/${{ inputs.local_path }}"
+
+ SSH_KEY: "${{ inputs.remote_key }}"
+ PORT: "${{ inputs.remote_port }}"
+ USER: "${{ inputs.remote_user }}"
+ HOST: "${{ inputs.remote_host }}"
+ REMOTE_PATH: "${{ inputs.remote_path }}"
+ run: |
+ # Make SSH key available and add remote to known hosts
+ eval "$(ssh-agent)" > /dev/null
+ echo "$SSH_KEY" | tr -d '\r' | ssh-add - >/dev/null
+ mkdir -p .ssh
+ chmod go-rwx .ssh
+ echo "$HOST_KEY" >> .ssh/known_hosts
+ # strict errors
+ set -eu
+ # We have to use a custom RSH to supply the port
+ RSH="ssh -o StrictHostKeyChecking=no -p $PORT"
+ DSN="$USER@$HOST"
+ # It is important to append '/' to the source path otherwise
+ # the entire source dir will be created as a sub dir in the destination
+ if [ "${{ inputs.upload }}" = true ]
+ then
+ SOURCE=$LOCAL_PATH/
+ DEST=$DSN:$REMOTE_PATH
+ else
+ SOURCE=$DSN:$REMOTE_PATH/
+ DEST=$LOCAL_PATH
+ fi
+ rsync $SWITCHES --rsh="$RSH" $SOURCE $DEST
diff --git a/.github/workflows/publish-nightly.yml b/.github/workflows/publish-nightly.yml
new file mode 100644
index 0000000..da58298
--- /dev/null
+++ b/.github/workflows/publish-nightly.yml
@@ -0,0 +1,57 @@
+name: Build and test
+
+on:
+ schedule:
+ - cron: "0 2 * * *"
+ workflow_dispatch:
+
+jobs:
+ publish-nightly:
+ name: Publish docs nightly
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ # we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves
+ fetch-depth: 0
+
+ - name: Setup Java 11
+ uses: actions/setup-java@v3
+ with:
+ distribution: temurin
+ java-version: 11
+
+ - name: Cache Coursier cache
+ uses: coursier/cache-action@v6.4
+
+ - name: Run docs gen
+ run: cd docs-gen && sbt paradox
+
+ # 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-samples/${{ github.ref_name }}-snapshot/docs
+ mv docs-gen/pekko-sample-fsm-java/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-fsm-java/
+ mv docs-gen/pekko-sample-fsm-scala/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-fsm-scala/
+ mv docs-gen/pekko-sample-sharding-java/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-sharding-java/
+ mv docs-gen/pekko-sample-sharding-scala/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-sharding-scala/
+ mv docs-gen/pekko-sample-persistence-java/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-persistence-java/
+ mv docs-gen/pekko-sample-persistence-scala/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-persistence-scala/
+ mv docs-gen/pekko-sample-cluster-java/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-cluster-java/
+ mv docs-gen/pekko-sample-cluster-scala/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-cluster-scala/
+ mv docs-gen/pekko-sample-distributed-data-java/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-distributed-data-java/
+ mv docs-gen/pekko-sample-distributed-data-scala/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-distributed-data-scala/
+ mv docs-gen/pekko-sample-distributed-workers-scala/target/paradox/site/main target/nightly-docs/docs/pekko-samples/${{ github.ref_name }}-snapshot/docs/pekko-sample-distributed-workers-scala/
+
+ - 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-samples/ # 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 }}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pekko.apache.org
For additional commands, e-mail: commits-help@pekko.apache.org