Update FCP Cafe Website & Publish to GitHub Pages #884
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 FCP 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@v3 | |
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 FAQ Markdown | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
REPO_NAME: ${{ github.repository }} | |
run: node .github/scripts/generate-faq.js | |
- name: Generate Latest News Markdown | |
run: node .github/scripts/generate-latest-news.js | |
- name: Generate Workflow Extensions Markdown | |
env: | |
PAGE_NAME: "workflow-extensions" | |
run: node .github/scripts/generate-markdown.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 Motion Templates Markdown | |
env: | |
PAGE_NAME: "motion-templates" | |
run: node .github/scripts/generate-markdown.js | |
- name: Generate Camera Formats Markdown | |
env: | |
PAGE_NAME: "camera-formats" | |
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: Generate Developer Tools & Frameworks Markdown | |
env: | |
PAGE_NAME: "developer-tools-and-frameworks" | |
run: node .github/scripts/generate-markdown.js | |
- name: Generate FxPlug Markdown | |
env: | |
PAGE_NAME: "fxplug" | |
run: node .github/scripts/generate-markdown.js | |
- name: Commit and push if it's necessary | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
echo "Checking for changes to commit..." | |
git status | |
echo "Adding changes..." | |
git add -A docs/news/* docs/_includes/* | |
git status | |
echo "Committing changes..." | |
git commit -m "Update Generated Markdown Files" || echo "No changes to commit" | |
git status | |
echo "Pushing changes..." | |
git push | |
echo "Completed commit step." | |
- 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@v3 | |
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 "[email protected]" | |
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 "[email protected]" | |
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 "[email protected]" | |
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}' |