diff --git a/.github/pre-commit b/.github/pre-commit new file mode 100755 index 00000000..41ee58af --- /dev/null +++ b/.github/pre-commit @@ -0,0 +1,25 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". +#!/bin/sh + +set -e +rubyfiles=$(git diff --cached --name-only --diff-filter=ACM "*.rb" "Gemfile" | tr '\n' ' ') +[ -z "$rubyfiles" ] && exit 0 + +# Standardize all ruby files +echo "๐Ÿงน Formatting staged Ruby files using standardrb ($(echo $rubyfiles | wc -w | awk '{print $1}') total)" +echo "$rubyfiles" | xargs docker-compose run --rm web bundle exec standardrb --fix + +# Add back the modified/prettified files to staging +echo "$rubyfiles" | xargs git add + +echo "๐Ÿ“‹ Running tests with rspec" +docker-compose run --rm web bundle exec rspec --format progress + +exit 0 diff --git a/README.md b/README.md index ec39f110..37ebb60f 100644 --- a/README.md +++ b/README.md @@ -13,36 +13,13 @@ git clone git@github.com:mlibrary/account.git cd account ``` -copy .env-example to .env - +run the `init.sh` script. ```bash -cp .env-example .env +./init.sh ``` edit .env with the appropriate environment variables -build the containers - -```bash -docker-compose build -``` - -bundle install -```bash -docker-compose run --rm web bundle install -``` - -npm install -```bash -docker-compose run --rm web npm install -``` - -build styles and scripts - -```bash -docker-compose run --rm web npm run build -``` - start containers ```bash diff --git a/init.sh b/init.sh new file mode 100755 index 00000000..29eff300 --- /dev/null +++ b/init.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +#must be run from the project root directory +if [ -f ".env" ]; then + echo "๐ŸŒŽ .env exists. Leaving alone" +else + echo "๐ŸŒŽ .env does not exist. Copying env.example to .env" + cp env.example .env +fi + +if [ -f ".git/hooks/pre-commit" ]; then + echo "๐Ÿช .git/hooks/pre-commit exists. Leaving alone" +else + echo " ๐Ÿช .git/hooks/pre-commit does not exist. Copying .github/pre-commit to .git/hooks/" + cp .github/pre-commit .git/hooks/pre-commit +fi + +echo "๐Ÿšข Build docker images" +docker-compose build + +echo "๐Ÿ“ฆ Installing Gems" +docker-compose run --rm web bundle + +echo "๐Ÿ“ฆ Installing Node modules" +docker-compose run --rm web npm install + +echo "๐Ÿ“ฆ Building js and css" +docker-compose run --rm web npm run build