Blog #784
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: Blog | |
on: | |
push: | |
branches: | |
- '*' | |
- '!staging.tmp' | |
tags: | |
- '*' | |
pull_request: | |
schedule: | |
- cron: '0 0 1/4 * *' # every 4 days | |
jobs: | |
build_site: | |
name: "Zola Build" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: 'Download Zola' | |
run: curl -sL https://github.com/getzola/zola/releases/download/v0.19.0/zola-v0.19.0-x86_64-unknown-linux-gnu.tar.gz | tar zxv | |
- name: 'Install Python Libraries' | |
run: python -m pip install --user -r requirements.txt | |
working-directory: "blog" | |
- name: "Run before_build.py script" | |
run: python before_build.py | |
working-directory: "blog" | |
- name: "Build Site" | |
run: ../zola build | |
working-directory: "blog" | |
- name: Upload Generated Site | |
uses: actions/upload-artifact@v4 | |
with: | |
name: generated_site | |
path: blog/public | |
check_spelling: | |
name: "Check Spelling" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Typo Check | |
uses: crate-ci/[email protected] | |
with: | |
files: blog | |
deploy_site: | |
name: "Deploy Generated Site" | |
runs-on: ubuntu-latest | |
needs: [build_site, check_spelling] | |
if: github.ref == 'refs/heads/main' && (github.event_name == 'push' || github.event_name == 'schedule') | |
steps: | |
- name: "Download Generated Site" | |
uses: actions/download-artifact@v4 | |
with: | |
name: generated_site | |
path: generated_site | |
- name: Setup SSH Keys and known_hosts | |
run: | | |
mkdir -p ~/.ssh | |
ssh-keyscan github.com >> ~/.ssh/known_hosts | |
ssh-agent -a $SSH_AUTH_SOCK > /dev/null | |
ssh-add - <<< "$deploy_key" | |
echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> $GITHUB_ENV | |
env: | |
SSH_AUTH_SOCK: /tmp/ssh_agent.sock | |
deploy_key: ${{ secrets.DEPLOY_SSH_KEY }} | |
- name: "Clone blog_os_deploy Repo" | |
run: git clone [email protected]:phil-opp/blog_os_deploy.git --branch gh-pages | |
- name: "Set Up Git Identity" | |
run: | | |
git config --local user.name "GitHub Actions Deploy" | |
git config --local user.email "[email protected]" | |
working-directory: "blog_os_deploy" | |
- name: "Delete Old Content" | |
run: "rm -r ./*" | |
working-directory: "blog_os_deploy" | |
- name: "Add New Content" | |
run: cp -r generated_site/* blog_os_deploy | |
- name: "Commit New Content" | |
run: | | |
git add . | |
git commit --allow-empty -m "Deploy ${GITHUB_SHA} | |
Deploy of commit https://github.com/phil-opp/blog_os/commit/${GITHUB_SHA}" | |
working-directory: "blog_os_deploy" | |
- name: "Show Changes" | |
run: "git show" | |
working-directory: "blog_os_deploy" | |
- name: "Push Changes" | |
run: "git push" | |
working-directory: "blog_os_deploy" |