Skip to content

Commit 49ac2b6

Browse files
committed
feat: add BrainX shared header integration for documentation
1 parent b45a334 commit 49ac2b6

13 files changed

Lines changed: 572 additions & 1988 deletions

.github/workflows/deploy-docs.yml

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
- name: Build documentation
4444
run: |
4545
sphinx-build -b html docs docs/_build/html
46+
test -f docs/_build/html/index.html
4647
4748
- name: Upload documentation artifact
4849
uses: actions/upload-artifact@v7
@@ -51,29 +52,56 @@ jobs:
5152
path: docs/_build/html/
5253
if-no-files-found: error
5354

54-
- name: Clean remote target
55+
- name: Create release id
56+
id: release
57+
run: echo "id=$(date -u +%Y%m%d%H%M%S)-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
58+
59+
- name: Prepare remote release
5560
uses: appleboy/ssh-action@v1.2.0
5661
with:
5762
host: ${{ secrets.DEPLOY_HOST }}
5863
port: ${{ secrets.DEPLOY_PORT }}
5964
username: ${{ secrets.DEPLOY_USER }}
6065
key: ${{ secrets.DEPLOY_SSH_KEY }}
6166
script: |
62-
mkdir -p ${{ secrets.DEPLOY_PATH }}
63-
find ${{ secrets.DEPLOY_PATH }} -mindepth 1 -delete
67+
set -e
68+
base="${{ secrets.DEPLOY_PATH }}"
69+
release="$base/releases/${{ steps.release.outputs.id }}"
70+
mkdir -p "$base/releases"
71+
rm -rf "$release"
72+
mkdir -p "$release"
6473
65-
- name: Upload docs via SCP
74+
- name: Upload docs to release
6675
uses: appleboy/scp-action@v0.1.7
6776
with:
6877
host: ${{ secrets.DEPLOY_HOST }}
6978
port: ${{ secrets.DEPLOY_PORT }}
7079
username: ${{ secrets.DEPLOY_USER }}
7180
key: ${{ secrets.DEPLOY_SSH_KEY }}
7281
source: "docs/_build/html/*"
73-
target: ${{ secrets.DEPLOY_PATH }}
82+
target: ${{ secrets.DEPLOY_PATH }}/releases/${{ steps.release.outputs.id }}
7483
strip_components: 3
7584

76-
- name: Reload nginx
85+
- name: Activate release
86+
uses: appleboy/ssh-action@v1.2.0
87+
with:
88+
host: ${{ secrets.DEPLOY_HOST }}
89+
port: ${{ secrets.DEPLOY_PORT }}
90+
username: ${{ secrets.DEPLOY_USER }}
91+
key: ${{ secrets.DEPLOY_SSH_KEY }}
92+
script: |
93+
set -e
94+
base="${{ secrets.DEPLOY_PATH }}"
95+
release="$base/releases/${{ steps.release.outputs.id }}"
96+
test -f "$release/index.html"
97+
ln -sfn "$release" "$base/current.next"
98+
mv -Tf "$base/current.next" "$base/current"
99+
current="$(readlink -f "$base/current")"
100+
find "$base/releases" -mindepth 1 -maxdepth 1 -type d \
101+
! -samefile "$current" \
102+
-exec rm -rf {} +
103+
104+
- name: Reload nginx (optional)
77105
uses: appleboy/ssh-action@v1.2.0
78106
with:
79107
host: ${{ secrets.DEPLOY_HOST }}

0 commit comments

Comments
 (0)