Skip to content

Latest commit

 

History

History
78 lines (60 loc) · 4.02 KB

README.md

File metadata and controls

78 lines (60 loc) · 4.02 KB

README

This application is being created to run a wrestling tournament.

Current master status

Build Status

Current development status

Build Status

Info

License: MIT License

Public Production Url: https://wrestlingdev.com

App Info

  • Ruby 3.0.0
  • Rails 6.1.2
  • DB mysql or mariadb
  • Memcached
  • Delayed Jobs

Development

All dependencies are wrapped in docker. Tests can be run with bash bin/run-tests-with-docker.sh. That is the same command used in CI.

If you want to run a full rails environment shell in docker run: bash bin/rails-dev-run.sh wrestlingapp-dev

From here, you can run the normal rails commands.

  • rake db:seed Development login email from seed data: [email protected] password: password
  • rake test
  • rails generate blah blah blah
  • rails s -b 0.0.0.0 port 3000 is exposed. You can open http://localhost:3000 after running that command
  • etc.
  • rake finish_seed_tournaments will complete all matches from the seed data. This command takes about 5 minutes to execute

To deploy a a full local version of the app bash deploy/deploy-test.sh (this requires docker-compose to be installed). This deploys a full version of the app. App, delayed job, memcached, and mariadb. Now, you can open http://localhost. Delayed jobs are turned off in dev and everything that is a delayed job in prod just runs in browser.

To run a single test file:

  1. Get a shell with ruby and rails: bash bin/rails-dev-run.sh wrestlingdev-development
  2. rake test TEST=test/models/match_test.rb

To run a single test inside a file:

  1. Get a shell with ruby and rails: bash bin/rails-dev-run.sh wrestlingdev-development
  2. rake test TEST=test/models/match_test.rb TESTOPTS="--name='/test_Match_should_not_be_valid_if_an_incorrect_win_type_is_given/'"

Update gems

  1. bash bin/rails-dev-run.sh wrestlingdev-dev to open a contianer with a rails shell available
  2. bundle config --delete without to remove the bundle config that ignores production gems
  3. bundle update

Note: If updating rails, do not change the version in Gemfile until after you run bash bin/run-rails-dev.sh wrestlingdev-dev. Creating the container will fail due to a mismatch in Gemfile and Gemfile.lock. Then run rails app:update to update rails.

Deployment

The production version of this is currently deployed in Kubernetes. See Deploying with Kubernetes

Required environment variables for deployment

  • WRESTLINGDEV_DB_NAME=databasename
  • WRESTLINGDEV_DB_USER=databaseusername
  • WRESTLINGDEV_DB_PWD=databasepassword
  • WRESTLINGDEV_DB_HOST=database.homename
  • WRESTLINGDEV_DB_PORT=databaseport
  • WRESTLINGDEV_DEVISE_SECRET_KEY=devise_key can be generated with rake secret
  • WRESTLINGDEV_SECRET_KEY_BASE=secret_key can be generated with rake secret
  • WRESTLINGDEV_EMAIL_PWD=emailpwd Email has to be a gmail account for now.
  • WRESTLINGDEV_EMAIL=email address

Optional environment variables

  • MEMCACHIER_PASSWORD=memcachier_password needed for caching password
  • MEMCACHIER_SERVERS=memcachier_hostname:memcachier_port needed for caching
  • MEMCACHIER_USERNAME=memcachier_username needed for caching
  • WRESTLINGDEV_NEW_RELIC_LICENSE_KEY=new_relic_license_key this is only needed to use new relic
  • WRESTLINGDEV_INFLUXDB_DATABASE=influx_db_name to send metrics to influxdb this is required
  • WRESTLINGDEV_INFLUXDB_HOST=influx_db_ip_or_hostname to send metrics to influxdb this is required
  • WRESTLINGDEV_INFLUXDB_PORT=influx_db_port to send metrics to influxdb this is required
  • WRESTLINGDEV_INFLUXDB_USERNAME=influx_db_username to send metrics to influxdb this is optional
  • WRESTLINGDEV_INFLUXDB_PASSWORD=influx_db_password to send metrics to influxdb this is optional