Update FCP Cafe Website & Publish to GitHub Pages #942
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: | |
PAGE_NAME: "faq" | |
run: node .github/scripts/generate-faq.js | |
- name: Generate Developer FAQ Markdown | |
env: | |
PAGE_NAME: "developer-faq" | |
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: 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 | |
env: | |
SITE_TITLE: "FCP Cafe" | |
SITE_URL: "https://fcp.cafe" | |
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" | |
echo "Checking for changes to commit..." | |
git status | |
echo "Adding changes..." | |
git add -A docs/rss.xml | |
git status | |
echo "Committing changes..." | |
git commit -m "Update RSS Feed" || 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/ | |
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: 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: 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}' |