Skip to content

Workflow file for this run

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}'