Skip to content

Commit

Permalink
Use bin scripts for setup and updates
Browse files Browse the repository at this point in the history
This saves bunch of reading, copying, pasting, debugging on first setup
or when returning after a while.
  • Loading branch information
erbridge committed Sep 14, 2022
1 parent 41102e7 commit 805f6b3
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 32 deletions.
42 changes: 20 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,47 +62,45 @@ POSTGRES_USER=postgres
PGPASSWORD=foobar
```

### Set up the local placecal repository, set up the database, and run it
### Clone this Git repository

```
```sh
git clone https://github.com/geeksforsocialchange/PlaceCal.git
bundle && yarn
bundle exec rails db:setup db:migrate seed:migrate
bundle exec rails import:all_events
./bin/dev
cd PlaceCal
```

- Start the server with `./bin/dev` instead of `bundle exec rails server` due to migration to jsbundling
- Make sure you use `lvh.me:3000` instead of `localhost` or you **will** have authentication problems.
- Admin interface is `admin.lvh.me:3000` (You will need to make a new admin user -- see below)
- Access code docs through your local filesystem, and update with `bundle exec rails yard`
### Run the setup script

To set up your own server, take a look at `INSTALL.md`.
```sh
bin/setup
```

### Creating an admin user
Amongst other things, this will create an admin user for you:

To create an admin user, open the console (`bin/rails c`) and run the following:
- Username: `[email protected]`
- Password: `password`

```
User.create!(email: '[email protected]', password: 'password', password_confirmation: 'password', role: :root)
```
### Run the thing

(Note: You should replace '[email protected]' and 'password' with more appropriate values)
- Start the server with `bin/dev`
- Make sure you use `lvh.me:3000` instead of `localhost:3000` or you **will** have authentication problems
- The admin interface is at `admin.lvh.me:3000`
- Access code docs through your local filesystem and update them with `bin/rails yard`

## Testing

PlaceCal tests are written in minitest. Before running the tests please ensure your dev environment has all of the migrations run, and ensure you have loaded the schema into the test database by running:

```sh
rails db:test:prepare
bin/rails db:test:prepare
```

The following commands are used for running tests:

```sh
rails test # To run all of the unit tests
rails test:system # To run all of the system tests (Invokes a headless browser)
rails test:all # To run both the unit tests and the system tests at once
bin/rails test # To run all of the unit tests
bin/rails test:system # To run all of the system tests (Invokes a headless browser)
bin/rails test:all # To run both the unit tests and the system tests at once
```

Please note that when running unit tests, system tests are **not** run, this is because they can take a while to run and are quite resource intensive. To perform more advanced usage like executing only a specific test or test file, see the documentation [here](https://guides.rubyonrails.org/testing.html)
Expand All @@ -116,7 +114,7 @@ We use [Prettier](https://prettier.io/) to format everything it's able to parse.
If you do want to run it manually, you can:

```sh
yarn run format
bin/yarn run format
```

Note that we use tabs over spaces because [tabs are more accessible to people using braille displays](https://twitter.com/Rich_Harris/status/1541761871585464323).
Expand Down
21 changes: 13 additions & 8 deletions bin/setup
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,23 @@ FileUtils.chdir APP_ROOT do

puts '== Installing dependencies =='
system! 'gem install bundler --conservative'
system('bundle check') || system!('bundle install')
system('bin/bundle check') || system!('bin/bundle install')
system! 'bin/yarn install'

# Install JavaScript dependencies
# system('bin/yarn')

# puts "\n== Copying sample files =="
# unless File.exist?('config/database.yml')
# FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
# end
puts "\n== Copying sample files =="
unless File.exist?('.env')
FileUtils.cp '.env.example', '.env'
end

puts "\n== Preparing database =="
system! 'bin/rails db:prepare'
system! 'bin/rails seed:migrate'

puts "\n== Importing events =="
system! 'bin/rails import:all_events'

puts "\n== Creating admin user =="
system! 'bin/rails runner \'User.where(email: "[email protected]").exists? || User.create!(email: "[email protected]", password: "password", password_confirmation: "password", role: :root)\''

puts "\n== Removing old logs and tempfiles =="
system! 'bin/rails log:clear tmp:clear'
Expand Down
4 changes: 3 additions & 1 deletion bin/update
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@ chdir APP_ROOT do

puts '== Installing dependencies =='
system! 'gem install bundler --conservative'
system('bundle check') || system!('bundle install')
system('bin/bundle check') || system!('bin/bundle install')
system! 'bin/yarn install'

puts "\n== Updating database =="
system! 'bin/rails db:migrate'
system! 'bin/rails seed:migrate'

puts "\n== Removing old logs and tempfiles =="
system! 'bin/rails log:clear tmp:clear'
Expand Down
2 changes: 1 addition & 1 deletion bin/yarn
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Dir.chdir(APP_ROOT) do
exec "yarnpkg", *ARGV
rescue Errno::ENOENT
$stderr.puts "Yarn executable was not detected in the system."
$stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
$stderr.puts "Download Yarn at https://classic.yarnpkg.com/en/docs/install"
exit 1
end
end

0 comments on commit 805f6b3

Please sign in to comment.