Update FCP Cafe Website & Publish to GitHub Pages #1496
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_and_rss: | |
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 rss markdown-it feedparser-promised deep-equal glob cheerio | |
- 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 All News Markdown | |
run: node .github/scripts/generate-all-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 RSS Feed | |
env: | |
SITE_TITLE: "FCP Cafe" | |
SITE_URL: "https://fcp.cafe" | |
run: node .github/scripts/generate-rss.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/* docs/rss.xml | |
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/ | |
publish: | |
name: Publish to retype branch | |
needs: [generate_markdown_and_rss] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Download updated docs | |
uses: actions/download-artifact@v3 | |
with: | |
name: docs | |
path: docs/ | |
- 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}' |