This codebase generates the agweather website which serves in part as a frontend for the agweather backend API.
# install rbenv
sudo apt -y install rbenv
# install ruby-build
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
# or update ruby-build if already installed
git -C "$(rbenv root)"/plugins/ruby-build pull
# may need to force git to use https
# per https://stackoverflow.com/questions/70663523/the-unauthenticated-git-protocol-on-port-9418-is-no-longer-supported
git config --global url."https://github.com/".insteadOf git://github.com/
# install ruby with rbenv
rbenv install 3.3.6 # or latest version
# update bundler to latest
gem install bundler
# update gems...
bundle update
# OR if migrating to a new version of Ruby...
rm Gemfile.lock
bundle install
When upgrading Ruby versions, need to change the version number in the documentation above, in .ruby-version
, and in config/deploy.rb
.
When upgrading to a new version of Rails, run the update task with THOR_MERGE="code -d $1 $2" rails app:update
. This will use VSCode as the merge conflict tool.
# install postgres
sudo apt -y install postgresql-16 postgresql-client-16 libpq-dev
sudo service postgresql start
# Set postgres user password to 'password'
sudo su - postgres
psql -c "alter user postgres with password 'password'"
exit
# install gem pg
gem install pg
- Ensure project dependencies outlined above are satisfied
- Clone the project
- Install gems with
bundle install
in project directory - Create database and schema with
bundle exec rake db:setup
- Ensure ag-weather is set up and running on port
8080
- Run the server with
bundle exec rails s
- Launch the site with
localhost:3000
# check code for style before commit
bundle exec standardrb --fix
Agweather must be running on port 8080
for some tests to pass.
bundle exec rake test TESTOPTS = "-v"
Work with db admin to authorize your ssh key for the deploy user. Confirm you can access the dev and production servers:
ssh [email protected] -p 216
ssh [email protected] -p 216
Then run the following commands from the main branch to deploy:
- Staging:
cap staging deploy
- Production:
cap production deploy
Deployment targets:
- Staging: https://dev.agweather.cals.wisc.edu/
- Production: https://agweather.cals.wisc.edu/