name: Build and deploy Jekyll documentation site on: push: branches: - master paths: - "docs/**" env: RUBY_VERSION: 2.7 jobs: deploy_docs: if: "!contains(github.event.commits[0].message, '[ci skip]')" runs-on: 'ubuntu-latest' env: BUNDLE_PATH: "vendor/bundle" BUNDLE_JOBS: 4 BUNDLE_RETRY: 3 steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ env.RUBY_VERSION }} bundler-cache: true - name: Clone target branch run: | REMOTE_BRANCH="${REMOTE_BRANCH:-gh-pages}" REMOTE_REPO="https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git" echo "Publishing to ${GITHUB_REPOSITORY} on branch ${REMOTE_BRANCH}" rm -rf docs/_site/ git clone --depth=1 --branch="${REMOTE_BRANCH}" --single-branch --no-checkout \ "${REMOTE_REPO}" docs/_site/ - name: Build site run: bundle exec jekyll build --source docs --destination docs/_site --verbose --trace env: # For jekyll-github-metadata JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Deploy to GitHub Pages run: | SOURCE_COMMIT="$(git log -1 --pretty="%an: %B" "$GITHUB_SHA")" pushd docs/_site &>/dev/null : > .nojekyll git add --all git -c user.name="${GITHUB_ACTOR}" -c user.email="${GITHUB_ACTOR}@users.noreply.github.com" \ commit --quiet \ --message "Deploy docs from ${GITHUB_SHA}" \ --message "$SOURCE_COMMIT" git push popd &>/dev/null