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
name: Update Resolve Cafe Website & Publish to GitHub Pages | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
tags: | |
- '*' | |
pull_request: | |
types: [closed] | |
issues: | |
types: [opened, closed, labeled, unlabeled] | |
release: | |
types: [created] | |
jobs: | |
generate_markdown: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: 16 | |
- name: Install dependencies | |
run: npm install axios | |
- name: Generate Bug Tracker Markdown | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
REPO_NAME: ${{ github.repository }} | |
run: node .github/scripts/generate-bug-tracker.js | |
- name: Generate Wish List Markdown | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
REPO_NAME: ${{ github.repository }} | |
run: node .github/scripts/generate-wishlist.js | |
- name: Generate Latest News Markdown | |
run: node .github/scripts/generate-latest-news.js | |
- name: Generate FAQ Markdown | |
run: node .github/scripts/generate-faq.js | |
- name: Generate Tools Markdown | |
env: | |
PAGE_NAME: "tools" | |
run: node .github/scripts/generate-markdown.js | |
- name: Generate Plugins Markdown | |
env: | |
PAGE_NAME: "plugins" | |
run: node .github/scripts/generate-markdown.js | |
- name: Generate Fusion Templates Markdown | |
env: | |
PAGE_NAME: "fusion-templates" | |
run: node .github/scripts/generate-markdown.js | |
- name: Generate Asset Management Markdown | |
env: | |
PAGE_NAME: "asset-management" | |
run: node .github/scripts/generate-markdown.js | |
- name: Commit and push if it's necessary | |
run: | | |
git config --local user.email "action@github.com" | |
git config --local user.name "GitHub Action" | |
git diff --quiet && git diff --staged --quiet || ( | |
git stash --include-untracked | |
git pull --rebase origin main | |
git stash pop | |
git add docs/_includes/* | |
git commit -m "Update Generated Markdown Files" | |
git push | |
) | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: docs | |
path: docs/ | |
generate_rss: | |
runs-on: ubuntu-latest | |
needs: generate_markdown | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: 16 | |
- name: Install dependencies | |
run: npm install rss markdown-it feedparser-promised deep-equal glob cheerio | |
- name: Generate RSS Feed | |
run: node .github/scripts/generate-rss.js || echo "An error occurred. See the stack trace above for more details." | |
- name: Commit and push if it's necessary | |
run: | | |
git config --local user.email "action@github.com" | |
git config --local user.name "GitHub Action" | |
git stash | |
git pull --rebase origin main | |
git stash pop | |
if git diff --exit-code --quiet docs/rss.xml; then | |
echo "No changes to commit" | |
else | |
git add docs/rss.xml | |
git commit -m "Update rss.xml" | |
git push | |
fi | |
publish: | |
name: Publish to retype branch | |
needs: [generate_markdown, generate_rss] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Download artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: docs | |
path: docs/ | |
- name: Copy rss.xml to a temporary location | |
run: | | |
cp docs/rss.xml /tmp/rss.xml | |
- name: Build and publish using Retype | |
uses: retypeapp/action-build@latest | |
with: | |
license: ${{ secrets.RETYPE_SECRET }} | |
- name: Push to retype branch | |
uses: retypeapp/action-github-pages@latest | |
with: | |
update-branch: true | |
- name: Checkout retype branch | |
uses: actions/checkout@v3 | |
with: | |
ref: retype | |
- name: Pull latest changes from retype branch | |
run: | | |
git config --local user.email "action@github.com" | |
git config --local user.name "GitHub Action" | |
git pull origin retype | |
- name: Copy rss.xml from the temporary location to retype branch | |
run: | | |
cp /tmp/rss.xml ./rss.xml | |
- name: Commit and push if it's necessary | |
run: | | |
git config --local user.email "action@github.com" | |
git config --local user.name "GitHub Action" | |
git add rss.xml | |
if git diff --exit-code --staged; then | |
echo "No changes to commit" | |
else | |
git commit -m "Update rss.xml" | |
git push | |
fi | |
- name: Purge CloudFlare cache | |
run: | | |
curl -X POST "https://api.cloudflare.com/client/v4/zones/${{ secrets.CLOUDFLARE_ZONE_ID }}/purge_cache" \ | |
-H "Authorization: Bearer ${{ secrets.CLOUDFLARE_API_TOKEN }}" \ | |
-H "Content-Type: application/json" \ | |
--data '{"purge_everything":true}' |