-
Notifications
You must be signed in to change notification settings - Fork 6
165 lines (126 loc) · 5.4 KB
/
A-import-wiki.yml
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# Summary: This GitHub Actions workflow fetches content from various external sources, updates a glossary, and deploys changes to GitHub Pages.
name: A - Import Wiki
on:
# A: Triggered on push to the main branch:
# push:
# branches:
# - main
# B: Triggered on manual workflow dispatch:
workflow_dispatch:
## C: Triggered on Wiki changes:
# gollum
## D: Triggered by a workflow call:
workflow_call:
secrets:
TERMS_WOT_MANAGE_JSON_ENDPOINT:
required: true
GENERIC_SCRAPER_JSON_ENDPOINT:
required: true
ANNOTATED_COPIES_JSON_ENDPOINT:
required: true
jobs:
##############################
##############################
deploy:
name: Import Wiki
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 19
cache: npm
- name: Install dependencies
run: npm ci
##############################
- name: Import Wiki
env:
TERMS_WOT_MANAGE_MARKDOWN: ./docs/02_overview/overview-and-context.mdx
TERMS_WOT_MANAGE_JSON_DIR_NAME: ./static/json/
TERMS_WOT_MANAGE_JSON_FILE_NAME: overview.json
TERMS_WOT_MANAGE_JSON_ENDPOINT: ${{ secrets.TERMS_WOT_MANAGE_JSON_ENDPOINT }}
ANNOTATED_COPIES_OUTPUT_DIR: ./docs/08_annotated-copies/
ANNOTATED_COPIES_INPUT_DIR: ./static/json/externalContentMetaData.json
SEARCH_INDEX_DIR: search-index-typesense
GENERIC_SCRAPER_JSON_ENDPOINT: ${{ secrets.GENERIC_SCRAPER_JSON_ENDPOINT }}
ANNOTATED_COPIES_JSON_ENDPOINT: ${{ secrets.ANNOTATED_COPIES_JSON_ENDPOINT }}
GLOSSARY_OVERVIEW_JSON_LABEL: Glossary
GLOSSARY_OVERVIEW_JSON_DESCRIPTION: Web of Trust Glossary
GLOSSARY_DIR: 04_glossary
GENERATED_JSON_GLOSSARIES_DIR: ./static/json/external-glosseries/glossaries/
GENERATED_JSON_DICTIONARY_DIR: static/json/external-glosseries/glossaries-combined
run: |
echo "Clone the wiki"
# Step 1: Checkout wiki
git clone https://github.com/WebOfTrust/WOT-terms.wiki.git temp-wiki
# remove the .git folder
rm -rf temp-wiki/.git
rm -rf temp-wiki/.gitignore
# Create a file in temp-wiki/ called ”_category_.json”
echo "{
\"label\": \"${GLOSSARY_OVERVIEW_JSON_LABEL}\",
\"link\": {
\"type\": \"generated-index\",
\"description\": \"${GLOSSARY_OVERVIEW_JSON_DESCRIPTION}.\"
}
}" > temp-wiki/_category_.json
# Step 2: Copy Wiki To Docusaurus Glossary directory
# Create the directory if it doesn't exist
mkdir -p docs/${GLOSSARY_DIR}
# Copy all new and updated files from temp-wiki/ to docs/04_glossary/
# Delete any files in docs/04_glossary/ that do not exist in temp-wiki/
rsync -a --delete --exclude='.gitignore' temp-wiki/ docs/${GLOSSARY_DIR}
# Step 3: Cleanup
# The /temp-wiki directory is not needed anymore
rm -rf temp-wiki/
# Step 4: Fixes
echo "Fix dashes in filenames coming from Wiki"
node maintenance/fixDashInWikiCopyFilenames.js
##############################
- name: Pull
run: |
git pull
echo $RANDOM > import-wiki.txt
##############################
##############################
- name: Commit and push the changes after fetching content from various external sources
run: |
echo "Initial status:"
git status
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
# Pull the latest changes from the repository
git pull origin main
git add -A
echo "Status after git add:"
git status
git diff --cached --exit-code && exit 0 # Exit if no changes in the staging area
echo "Committing changes:"
git commit -m "chore: fetch content from various external sources"
echo "Pushing changes:"
git push
echo "Final status:"
git status
##############################
# ##############################
# - name: Build website
# run: npm run build
# ##############################
# ##############################
# # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
# - name: Deploy to GitHub Pages
# uses: peaceiris/actions-gh-pages@v3
# with:
# # https://github.com/WebOfTrust/WOT-terms/settings/secrets/actions, section “Repository secrets”, entry: “ACCESS_TOKEN”
# github_token: ${{ secrets.GITHUB_TOKEN }}
#
# # Build output to publish to the `gh-pages` branch:
# publish_dir: ./build
# # The following lines assign commit authorship to the official
# # GH-Actions bot for deploys to `gh-pages` branch:
# # https://github.com/actions/checkout/issues/13#issuecomment-724415212
# # The GH actions bot is used by default if you didn't specify the two fields.
# # You can swap them out with your own user credentials.
# user_name: github-actions[bot]
# user_email: 41898282+github-actions[bot]@users.noreply.github.com
# ##############################