From 2dd0d93bb0edcb2aab7b18a83e0c21ce2a6bbf49 Mon Sep 17 00:00:00 2001 From: James Ives Date: Sun, 3 Mar 2019 16:12:26 -0500 Subject: [PATCH] Defaults --- README.md | 2 +- entrypoint.sh | 34 +++++++++++++++++++++------------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 4cfc9888..bf0cd95f 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ The `secrets` and `env` portion of the workflow **must** be configured before th | ------------- | ------------- | ------------- | ------------- | | `ACCESS_TOKEN` | In order for GitHub to trigger the rebuild of your page you must provide the action with a GitHub personal access token. You can [learn more about how to generate one here](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line). This **should be stored as a secret.** | `secrets` | **Yes** | | `BRANCH` | This is the branch you wish to deploy to, for example `gh-pages` or `docs`. | `env` | **Yes** | -| `FOLDER` | The folder in your repository that you want to deploy. If your build script compiles into a directory named `build` you'd put it here. You can instruct the action to deploy from the root directory by placing `/` in this field. | `env` | **Yes** | +| `FOLDER` | The folder in your repository that you want to deploy. If your build script compiles into a directory named `build` you'd put it here. | `env` | **Yes** | | `BASE_BRANCH` | The base branch of your repository which you'd like to checkout prior to deploying. This defaults to `master`. | `env` | **No** | | `BUILD_SCRIPT` | If you require a build script to compile your code prior to pushing it you can add the script here. The Docker container which powers the action runs Node which means `npm` commands are valid. If you're using a static site generator such as Jekyll I'd suggest compiling the code prior to pushing it to your base branch. | `env` | **No** | | `COMMIT_NAME` | Used to sign the commit, this should be your name. If not provided it will default to `username@users.noreply.github.com` | `env` | **No** | diff --git a/entrypoint.sh b/entrypoint.sh index 44e36e02..4971c1ab 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,4 +1,11 @@ #!/bin/sh -l + +if [ -z "$ACCESS_TOKEN" ] +then + echo "You must provide the action with a GitHub Personal Access Token secret in order to deploy." + exit 1 +fi + if [ -z "$BRANCH" ] then echo "You must provide the action with a branch name it should deploy to, for example gh-pages or docs." @@ -11,39 +18,40 @@ then exit 1 fi -if [ -z "$ACCESS_TOKEN" ] +if [ -z "$COMMIT_EMAIL" ] then - echo "You must provide the action with a GitHub Personal Access Token secret in order to deploy." - exit 1 + COMMIT_EMAIL="${GITHUB_ACTOR}@users.noreply.github.com" fi -if [[ "$FOLDER" == "/" ]]; then - FOLDER=":/" +if [ -z "$COMMIT_NAME" ] +then + COMMIT_NAME="${GITHUB_ACTOR}" fi -## Initializes Variables +## Initializes the repository path using the access token. REPOSITORY_PATH="https://${ACCESS_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" && \ + # Installs Git. apt-get update && \ apt-get install -y git && \ -# Re-directs to the the Github workspace. +# Directs the action to the the Github workspace. cd $GITHUB_WORKSPACE && \ # Configures Git and checks out the base branch. git init && \ -git config --global user.email "${COMMIT_EMAIL:-GITHUB_ACTOR@users.noreply.github.com}" && \ -git config --global user.name "${COMMIT_NAME:-GITHUB_ACTOR}" && \ +git config --global user.email "${COMMIT_EMAIL}" && \ +git config --global user.name "${COMMIT_NAME}" && \ git checkout "${BASE_BRANCH:-master}" && \ -# Builds the project if applicable. +# Builds the project if a build script is provided. echo "Running build scripts... $BUILD_SCRIPT" eval "$BUILD_SCRIPT" # Commits the data to Github. +echo "Deploying to GitHub..." && \ git add -f $FOLDER && \ -git commit -m "Deploying to ${FOLDER} - $(date +"%T")" && \ +git commit -m "Deploying to ${BRANCH} - $(date +"%T")" && \ git push $REPOSITORY_PATH `git subtree split --prefix $FOLDER master`:$BRANCH --force && \ -echo "Deployment Succesful!" - +echo "Deployment Succesful!" \ No newline at end of file