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/typos@v1.1.9 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 - 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 git@github.com: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 "github-actions-deploy@phil-opp.com" 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"