Skip to content

Commit

Permalink
Merge pull request #3 from procore-oss/jm-local-dev
Browse files Browse the repository at this point in the history
  • Loading branch information
jmeridth authored Feb 22, 2024
2 parents ee11e7c + 6e83921 commit 7afdec4
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 0 deletions.
60 changes: 60 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# -e says exit immediately when a command fails
# -o sets pipefail, meaning if it exits with a failing command, the exit code should be of the failing command
# -u fails a bash script immediately if a variable is unset
ENVIRONMENT := test
PGHOST := localhost
PGPORT := 5432
PGUSER := myuser
PGPASSWORD := mypassword
SHELL = /bin/bash -eu -o pipefail

define is_installed
if ! command -v $(1) &> /dev/null; \
then \
echo "$(1) not installed, please install it. 'brew install $(1)'"; \
exit; \
fi;
endef

.PHONY : help
help : # Display help
@awk -F ':|##' \
'/^[^\t].+?:.*?##/ {\
printf "\033[36m%-30s\033[0m %s\n", $$1, $$NF \
}' $(MAKEFILE_LIST)

.PHONY : ruby_installed
ruby_installed: ## check if ruby is installed
@$(call is_installed,ruby)

.PHONY : bundle
bundle: ruby_installed ## install gems
@bundle install --gemfile spec/Gemfile && cd spec/dummy && bundle install

.PHONY : setup_db
setup_db: ruby_installed postgres ## setup database
@echo "setting up database"
@cd spec/dummy && bundle exec rake db:create db:migrate --trace RAILS_ENV=${ENVIRONMENT}

.PHONY : initialize_profiling
initialize_profiling: ruby_installed ## initialize rspec_profiling
@echo "initializing rspec_profiling"
@cd spec/dummy && bundle exec rake rspec_profiling:install RAILS_ENV=${ENVIRONMENT}

.PHONY : spec
spec : bundle setup_db initialize_profiling ## run specs
@echo "running specs"
@bundle exec --gemfile=spec/dummy/Gemfile rspec

.PHONY : test
test: spec ## run specs
@echo "running specs"

.PHONY : docker_installed
docker_installed: ## check if docker and docker-compose are installed
@$(call is_installed,docker)
@$(call is_installed,docker-compose)

.PHONY : postgres
postgres: docker_installed ## start postgres in docker container
@docker-compose up -d || true
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,3 +218,17 @@ To remove the results database, run `bundle exec rake rspec_profiling:uninstall`
## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Local Development

Local tools needed:

- docker
- docker-compose
- ruby

To run the specs:

```bash
make spec
```
13 changes: 13 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: '3.9'

services:
postgres:
image: postgres:16-alpine
ports:
- 5432:5432
volumes:
- ~/apps/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_HOST=localhost
- POSTGRES_USER=myuser
- POSTGRES_PASSWORD=mypassword

0 comments on commit 7afdec4

Please sign in to comment.