diff --git a/.github/workflows/build-site.yml b/.github/workflows/build-site.yml index 08d85cbe..5fbdba00 100644 --- a/.github/workflows/build-site.yml +++ b/.github/workflows/build-site.yml @@ -5,10 +5,11 @@ on: branches: - '*' - '!staging.tmp' - - '!master' # TODO re-enable when reusing artifacts for deploying tags: - '*' pull_request: + schedule: + - cron: '0 0 1/4 * *' # every 4 days jobs: build_site: @@ -64,3 +65,58 @@ jobs: name: "Install misspell" - run: bin/misspell -error blog/content name: "Check for common typos" + + deploy_site: + name: "Deploy Generated Site" + runs-on: ubuntu-latest + needs: [build_site, check_spelling] + if: github.ref == 'master' && github.event_name == 'push' + + steps: + - name: "Download Generated Site" + uses: actions/download-artifact@v1 + 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 ::set-env name=SSH_AUTH_SOCK::$SSH_AUTH_SOCK + 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" diff --git a/.github/workflows/deploy-site.yml b/.github/workflows/deploy-site.yml deleted file mode 100644 index 766eebd4..00000000 --- a/.github/workflows/deploy-site.yml +++ /dev/null @@ -1,105 +0,0 @@ -name: Deploy Site - -on: - push: - branches: - - master - schedule: - - cron: '0 0 1/4 * *' # every 4 days - -jobs: - deploy_site: - name: "Deploy Generated Site" - runs-on: ubuntu-latest - needs: [build_site, check_spelling] - - steps: - - name: "Download Generated Site" - uses: actions/download-artifact@v1 - 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 ::set-env name=SSH_AUTH_SOCK::$SSH_AUTH_SOCK - 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" - - # TODO: Reuse artifact by `build-site` workflow when - # https://github.com/actions/download-artifact/issues/3 is resolved. - 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.9.0/zola-v0.9.0-x86_64-unknown-linux-gnu.tar.gz | tar zxv - - name: "Install Python Tools" - run: python -m pip install --upgrade pip setuptools wheel - - 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@v1.0.0 - with: - name: generated_site - path: blog/public - - check_spelling: - name: "Check Spelling" - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - - run: curl -L https://git.io/misspell | bash - name: "Install misspell" - - run: bin/misspell -error blog/content - name: "Check for common typos"