This is an automated email from the ASF dual-hosted git repository.

mbo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/db-jdo-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 15f6aa7  Add GitHub workflow to auto-deploy site (#6)
15f6aa7 is described below

commit 15f6aa74e303362e686782b403a9c5462cab0c8c
Author: Tobias Bouschen <tobias.bousc...@googlemail.com>
AuthorDate: Wed Jul 22 21:38:46 2020 +0200

    Add GitHub workflow to auto-deploy site (#6)
    
    Adds a GitHub workflow to auto-deploy the site if any of its sources
    have changed and the build was successful.
    
    The action is only run if
    - the correct branches are pushed (currently only 'master')
    AND
    - at least one file in the correct paths was modified (currently
      'src/main/asciidoc/**' and 'src/main/template/**').
    
    If the build was successful, the action copies the build results from
    'target/site/*' to 'docs/' and creates a new commit with all changed
    files in 'docs/'. This commit is automatically pushed to the branch that
    triggered the GitHub action. The new commit is attributed to the author
    of the latest commit on that branch.
    
    Removed the note to move the build results into the 'docs/' folder when
    creating a commit from the README as this is now done automatically.
---
 .github/workflows/deploy-site.yml | 55 +++++++++++++++++++++++++++++++++++++++
 README.md                         |  3 +--
 2 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/deploy-site.yml 
b/.github/workflows/deploy-site.yml
new file mode 100644
index 0000000..8d1ee0e
--- /dev/null
+++ b/.github/workflows/deploy-site.yml
@@ -0,0 +1,55 @@
+# Builds and deploys the site if the build was successful
+name: Build & Deploy Site
+
+# Conditions necessary to trigger a build
+on:
+  push:
+    # Ignore pushes on all branches by default
+    # branches that should trigger a build must be explicitly excluded from 
the ignore using '!BRANCH_NAME'
+    branches-ignore:
+      - '**'
+      - '!master'
+
+    # Only build if a file in one of these paths has been changed
+    paths:
+      - 'src/main/asciidoc/**'
+      - 'src/main/template/**'
+
+jobs:
+  build:
+    name: Build & Deploy Site
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 1
+
+      - name: Build Site
+        run: mvn clean compile
+
+      # Determines the short sha of the commit that triggered the build
+      - name: Determine Short SHA
+        if: success()
+        id: short-sha
+        run: |
+          short_sha=$(git rev-parse --short=10 $GITHUB_SHA)
+          echo "::set-output name=short_sha::$short_sha"
+        shell: 'bash'
+
+      # Copies the build artifacts to 'docs/'
+      - name: Deploy Site
+        if: success()
+        run: cp -r target/site* docs/
+
+      # Commits any changes to the 'docs/' directory using the credentials of 
the commit that triggered the action
+      # Uses the GitHub action 
https://github.com/marketplace/actions/add-commit
+      - name: Commit Result
+        if: success()
+        uses: EndBug/add-and-commit@v4
+        with:
+          add: 'docs/'
+          message: 'Auto-deploy site for commit ${{ 
steps.short-sha.outputs.short_sha }}'
+        env:
+          # This is necessary in order to push a commit to the repo
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Leave this line unchanged
diff --git a/README.md b/README.md
index 97f566f..c0b7a3a 100644
--- a/README.md
+++ b/README.md
@@ -16,12 +16,11 @@ How to build the website:
  * Use `git branch MyBranchName` and `git checkout MyBranchName` to create a 
branch and check it out.
  * Adapt the asciidoc files in `src/main/asciidoc` or the website menu in  
`src/main/template`
  * Call `mvn clean compile`. This generates html files in `target/site`. 
- * Copy all files from `target/site` into the `docs` folder, do not forget 
subfolders.
  * Verify the generated website by viewing it locally with a web browser. 
  * Commit changes with `git commit -m 'my commit message' `.
  * Push changes to the repository with `git push`.
  * Go to Github.com and create a PR for your branch
- * Once the PR is accepted, the changes should be visible on the website (you 
may have to refresh the browser). 
+ * Once the PR is accepted, the changes should be visible on the website (you 
may have to refresh the browser).
 
 How to add javadoc
 * Create the javadoc jar (e.g. jdo-api-3.2-javadoc.jar) in the db-jdo 
repository by calling `mvn clean install -Papache-release` in the api submodule.

Reply via email to