From 6fbfa62e4309d6bbfc434cd5ae2e6bec3f7f4f3c Mon Sep 17 00:00:00 2001 From: kor Date: Fri, 12 Jul 2024 08:25:17 +0200 Subject: [PATCH] Add github action --- .github/workflows/import-wiki.yml | 141 ++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 .github/workflows/import-wiki.yml diff --git a/.github/workflows/import-wiki.yml b/.github/workflows/import-wiki.yml new file mode 100644 index 00000000..9c3c132b --- /dev/null +++ b/.github/workflows/import-wiki.yml @@ -0,0 +1,141 @@ +# Summary: This GitHub Actions workflow fetches content from various external sources, updates a glossary, and deploys changes to GitHub Pages. + +name: 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 + +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: 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" + + 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 + # ############################## \ No newline at end of file