Update CommandPost Website & Publish to GitHub Pages #137
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 CommandPost Website & Publish to GitHub Pages | |
on: | |
schedule: | |
- cron: '0 0 * * *' # This will run the action once a day at midnight | |
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 Snippets Markdown | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
REPO_NAME: ${{ github.repository }} | |
run: node .github/scripts/generate-snippets.js | |
- name: Generate Sponsors Markdown | |
env: | |
GITHUB_TOKEN: ${{ secrets.SPONSORS_TOKEN }} | |
run: node .github/scripts/generate-sponsors.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/ | |
publish: | |
name: Publish to retype branch | |
needs: [generate_markdown] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: retypeapp/action-build@latest | |
with: | |
license: ${{ secrets.RETYPE_SECRET }} | |
- 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}' |