name: CI on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: push content run: | REMOTE="https://${GITHUB_PAT}@github.com/${GITHUB_REPOSITORY}.git" COMMITER_NAME="${GITHUB_ACTOR}-github-actions" COMMITER_EMAIL="${GITHUB_ACTOR}-@users.noreply.github.com" REMOTE_BRANCH_EXISTS=$(git ls-remote --heads ${REMOTE} ${target_branch} | wc -l) echo "COMMITER_NAME: ${COMMITER_NAME}" echo "COMMITER_EMAIL: ${COMMITER_EMAIL}" echo "REMOTE: ${REMOTE}" mkdir /tmp/github-pages cd /tmp/github-pages if $keep_history && [ $REMOTE_BRANCH_EXISTS -ne 0 ] then echo remote exists echo clone repo git clone --quiet --branch ${target_branch} --depth 1 ${REMOTE} . else echo remote does not exist echo initialize repo git init . git checkout --orphan gh-pages fi echo "

hello there

" > index.html DIRTY=$(git status --short | wc -l) if $keep_history && [ $REMOTE_BRANCH_EXISTS -ne 0 ] && [ DIRTY = 0 ] then echo '⚠️ There are no changes to commit, stopping.' else echo echo log before commit git log git config user.name ${COMMITER_NAME} git config user.email ${COMMITER_EMAIL} git status --porcelain git add --all . git commit -m "DIST to ${target_branch}" echo echo log after commit git log echo 🏃 Deploying ${build_dir} directory to ${target_branch} branch on ${repo} repo if [ $keep_history == false] then echo pushing to remote git push --quiet ${REMOTE} ${target_branch} else echo force pushing to remote git push --quiet --force ${REMOTE} ${target_branch} fi fi echo 🎉 Content of ${build_dir} has been deployed to GitHub Pages. env: GITHUB_PAT: ${{ secrets.GITHUB_PAT }} target_branch: gh-pages keep_history: true