-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b4fc50c
commit cba0d7d
Showing
3 changed files
with
239 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
# Use this starter workflow to deploy HTML generated by Antora to surge.sh | ||
# Docs are published at <org>-<repo>-<deployid>.surge.sh | ||
# | ||
# By default, this workflow runs on completion of a workflow called "Verify docs PR" | ||
# | ||
# This workflow expects the triggering workflow to generate an artifact called "docs" | ||
# - update the reference to "docs" and "docs.zip" in this workflow if your triggering workflow generates an artifact with a different name | ||
|
||
# change to force workflow with no changelog | ||
|
||
name: "Deploy docs preview" | ||
|
||
on: | ||
workflow_run: | ||
workflows: ["Verify docs PR"] | ||
types: | ||
- completed | ||
|
||
jobs: | ||
publish-docs: | ||
# Uncomment this if statement to deploy only when the PR builds cleanly | ||
# if: github.event.workflow_run.conclusion == 'success' | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: "Download built documentation" | ||
uses: actions/github-script@v7 | ||
env: | ||
RUN_ID: ${{ github.event.workflow_run.id }} | ||
WORKSPACE: ${{ github.workspace }} | ||
with: | ||
script: | | ||
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
run_id: ${{ env.RUN_ID }}, | ||
}); | ||
var matchArtifactDocs = artifacts.data.artifacts.filter((artifact) => { | ||
return artifact.name == "docs" | ||
})[0]; | ||
var downloadDocs = await github.rest.actions.downloadArtifact({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
artifact_id: matchArtifactDocs.id, | ||
archive_format: 'zip', | ||
}); | ||
var fs = require('fs'); | ||
fs.writeFileSync('${{ env.WORKSPACE }}/docs.zip', Buffer.from(downloadDocs.data)); | ||
var matchArtifactChangelog = artifacts.data.artifacts.filter((artifact) => { | ||
return artifact.name == "changelog" | ||
})[0]; | ||
var downloadChangelog = await github.rest.actions.downloadArtifact({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
artifact_id: matchArtifactChangelog.id, | ||
archive_format: 'zip', | ||
}); | ||
fs.writeFileSync('${{ env.WORKSPACE }}/changelog.zip', Buffer.from(downloadChangelog.data)); | ||
- id: unzip-docs | ||
run: unzip docs.zip | ||
|
||
- id: get-top-dir | ||
run: | | ||
root=$(ls -d */index.html | sed -r 's/(.*)\/index\.html/\1/') | ||
echo "top-dir=$root" >> $GITHUB_OUTPUT | ||
- id: unzip-changelog | ||
if: ${{ hashFiles('changelog.zip') != '' }} | ||
run: unzip changelog.zip | ||
|
||
- id: get-deploy-id | ||
run: | | ||
deployid=$(<deployid) | ||
case "$deployid" in ''|*[!0-9]*) echo "Provided PR number is not an integer"; exit 1 ;; esac | ||
echo "deploy-id=$deployid" >> "$GITHUB_OUTPUT" | ||
- id: get-deploy-url | ||
env: | ||
ORG: ${{ github.event.repository.owner.login }} | ||
REPO: ${{ github.event.repository.name }} | ||
DEPLOYID: ${{ steps.get-deploy-id.outputs.deploy-id }} | ||
run: | | ||
deployurl=$ORG-$REPO-$DEPLOYID.surge.sh | ||
echo "deploy-url=$deployurl" >> $GITHUB_OUTPUT | ||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: lts/* | ||
|
||
- name: Deploy docs to surge | ||
shell: bash | ||
env: | ||
DEPLOY_URL: ${{ steps.get-deploy-url.outputs.deploy-url }} | ||
SURGE_TOKEN: "${{ secrets.DOCS_SURGE_TOKEN }}" | ||
SITE_DIR: ${{ steps.get-top-dir.outputs.top-dir }} | ||
run: | | ||
npm install -g surge | ||
surge ./$SITE_DIR $DEPLOY_URL --token "$SURGE_TOKEN" | ||
# If the PR artifacts include a changelog file, add it to the PR as a comment | ||
# The changelog contains links to new and changed files in the deployed docs | ||
- name: Comment on PR (changelog) | ||
if: ${{ hashFiles('changelog') != '' }} | ||
uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 #v2.9.0 | ||
with: | ||
number: ${{ steps.get-deploy-id.outputs.deploy-id }} | ||
recreate: true | ||
header: docs-pr-changes | ||
path: changelog | ||
GITHUB_TOKEN: ${{ secrets.DOCS_PR_COMMENT_TOKEN }} | ||
|
||
# If there's no changelog, add a generic comment to the PR | ||
- name: Comment on PR (no changelog) | ||
if: ${{ hashFiles('changelog') == '' }} | ||
env: | ||
DEPLOY_URL: ${{ steps.get-deploy-url.outputs.deploy-url }} | ||
uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 #v2.9.0 | ||
with: | ||
number: ${{ steps.get-deploy-id.outputs.deploy-id }} | ||
header: docs-pr-changes | ||
message: | | ||
Looks like you've updated the documentation! | ||
Check out your changes at https://${{ env.DEPLOY_URL }} | ||
GITHUB_TOKEN: ${{ secrets.DOCS_PR_COMMENT_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
|
||
name: "Verify docs PR" | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- "dev" | ||
- "5.x" | ||
- "4.[0-9]" | ||
|
||
jobs: | ||
|
||
# Generate HTML | ||
docs-build-pr: | ||
uses: neo4j/docs-tools/.github/workflows/[email protected] | ||
with: | ||
deploy-id: ${{ github.event.number }} | ||
retain-artifacts: 14 | ||
|
||
# Parse the json log output from the HTML build, and output warnings and errors as annotations | ||
# Optionally, fail the build if there are warnings or errors | ||
# By default, the job fails if there are errors, passes if there are warnings only. | ||
docs-verify-pr: | ||
needs: docs-build-pr | ||
uses: neo4j/docs-tools/.github/workflows/[email protected] | ||
with: | ||
failOnWarnings: true | ||
|
||
# Get lists of changes in the PR | ||
# - all updated asciidoc files | ||
# - all updated asciidoc pages | ||
# - all new asciidoc pages | ||
docs-changes-pr: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
asciidoc-files: ${{ steps.get-file-changes.outputs.asciidoc_all_changed_files }} | ||
pages-modified: ${{ steps.get-file-changes.outputs.pages_modified_files }} | ||
pages-added: ${{ steps.get-file-changes.outputs.pages_added_files }} | ||
steps: | ||
- name: Get file changes | ||
id: get-file-changes | ||
uses: tj-actions/changed-files@cbda684547adc8c052d50711417fa61b428a9f88 # v41.1.2 | ||
with: | ||
separator: ',' | ||
files_yaml: | | ||
pages: | ||
- modules/**/pages/**/*.adoc | ||
asciidoc: | ||
- modules/**/*.adoc | ||
# Generate a PR comment if the docs are using the pageList extension | ||
# The extension maps asciidoc source files to their HTML output paths | ||
# The comment will contain links to new and changed pages in the deployed HTML docs | ||
docs-updates-comment-pr: | ||
if: needs.docs-build-pr.outputs.pages-listed == 'success' | ||
needs: [docs-build-pr, docs-changes-pr] | ||
uses: neo4j/docs-tools/.github/workflows/[email protected] | ||
with: | ||
pages-modified: ${{ needs.docs-changes-pr.outputs.pages-modified }} | ||
pages-added: ${{ needs.docs-changes-pr.outputs.pages-added }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# copy this workflow into your repo | ||
name: "Documentation Teardown" | ||
|
||
on: | ||
pull_request_target: | ||
branches: | ||
- "dev" | ||
- "5.x" | ||
- "4.[0-9]" | ||
types: | ||
- closed | ||
|
||
jobs: | ||
teardown-docs: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: lts/* | ||
|
||
- id: get-deploy-url | ||
env: | ||
ORG: ${{ github.event.repository.owner.login }} | ||
REPO: ${{ github.event.repository.name }} | ||
DEPLOYID: ${{ github.event.pull_request.number }} | ||
run: | | ||
deployurl=$ORG-$REPO-$DEPLOYID.surge.sh | ||
echo "deploy-url=$deployurl" >> $GITHUB_OUTPUT | ||
- name: Teardown documentation | ||
shell: bash | ||
env: | ||
SURGE_TOKEN: "${{ secrets.DOCS_SURGE_TOKEN }}" | ||
DEPLOY_URL: ${{ steps.get-deploy-url.outputs.deploy-url }} | ||
run: | | ||
npm install -g surge | ||
surge teardown $DEPLOY_URL --token "$SURGE_TOKEN" | ||
- name: Comment on PR | ||
uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 #v2.9.0 | ||
with: | ||
number: ${{ github.event.pull_request.number }} | ||
header: docs-pr-changes | ||
message: | | ||
Thanks for the documentation updates. | ||
The preview documentation has now been torn down - reopening this PR will republish it. | ||
GITHUB_TOKEN: ${{ secrets.DOCS_PR_COMMENT_TOKEN }} | ||
|