-
Notifications
You must be signed in to change notification settings - Fork 0
94 lines (83 loc) · 4.07 KB
/
deploy-docs.yml
File metadata and controls
94 lines (83 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: Deploy Documentation
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- name: Install dependencies
run: npm ci
- name: Checkout main plugin
uses: actions/checkout@v4
with:
repository: Ultimate-Multisite/ultimate-multisite
path: ultimate-multisite
token: ${{ secrets.DOCS_DISPATCH_TOKEN }}
- name: Checkout addons
run: |
mkdir -p addons
# Format: github-repo-name=local-dir-name
declare -A ADDONS=(
[ultimate-multisite-woocommerce]=ultimate-multisite-woocommerce
[multisite-ultimate-site-exporter]=ultimate-multisite-site-exporter
[multisite-ultimate-affiliatewp]=ultimate-multisite-affiliatewp
[multisite-ultimate-ai-site-builder]=ultimate-multisite-ai-site-builder
[ultimate-multisite-analytics]=ultimate-multisite-analytics
[multisite-ultimate-captcha]=ultimate-multisite-captcha
[ultimate-multisite-chuck-norris-facts]=ultimate-multisite-chuck-norris-facts
[ultimate-multisite-content-sync]=ultimate-multisite-content-sync
[multisite-ultimate-domain-seller]=ultimate-multisite-domain-seller
[ultimate-multisite-fluent-forms]=ultimate-multisite-fluent-forms
[multisite-ultimate-gocardless]=ultimate-multisite-gocardless
[ultimate-multisite-gravity-forms]=ultimate-multisite-gravity-forms
[multisite-ultimate-language-selector]=ultimate-multisite-language-selector
[ultimate-multisite-loco-translate]=ultimate-multisite-loco-translate
[multisite-ultimate-mailchimp]=ultimate-multisite-mailchimp
[ultimate-multisite-mailster]=ultimate-multisite-mailster
[multisite-ultimate-metered-plans]=ultimate-multisite-metered-plans
[ultimate-multisite-multinetwork]=ultimate-multisite-multinetwork
[ultimate-multisite-multi-tenancy]=ultimate-multisite-multi-tenancy
[multisite-ultimate-payfast]=ultimate-multisite-payfast
[multisite-ultimate-plugin-and-theme-manager]=ultimate-multisite-plugin-and-theme-manager
[multisite-ultimate-support-agents]=ultimate-multisite-support-agents
[multisite-ultimate-support-tickets]=ultimate-multisite-support-tickets
[multisite-ultimate-vat]=ultimate-multisite-vat
[multisite-ultimate-admin-page-creator]=ultimate-multisite-admin-page-creator
[ultimate-multisite-addon-template]=ultimate-multisite-addon-template
[tutor-multisite-compatibilty]=tutor-multisite-compatibility
[material-wp]=material-wp
)
for repo in "${!ADDONS[@]}"; do
local_dir="${ADDONS[$repo]}"
echo "Cloning $repo -> addons/$local_dir"
git clone --depth 1 "https://x-access-token:${{ secrets.DOCS_DISPATCH_TOKEN }}@github.com/Ultimate-Multisite/$repo.git" "addons/$local_dir" 2>/dev/null || echo " Skipped $repo (not found)"
done
shell: bash
- name: Update addon changelogs
run: python3 scripts/update-changelogs.py
continue-on-error: true
- name: Generate hooks documentation
run: bash scripts/generate-hooks.sh
continue-on-error: true
- name: Build documentation site
run: npx docusaurus build
- name: Deploy to server
if: github.ref == 'refs/heads/main'
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
rsync -avz --delete build/ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/srv/www/ultimatemultisite.com/docs/