Add markdownlint to project and builds
This commit is contained in:
parent
7f37a826fe
commit
a077eec7fa
6 changed files with 150 additions and 69 deletions
5
.github/workflows/full_build.yml
vendored
5
.github/workflows/full_build.yml
vendored
|
@ -135,7 +135,7 @@ jobs:
|
||||||
bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-
|
bundle-use-node-js-${{ matrix.os }}-${{ matrix.node }}-
|
||||||
- name: run jest
|
- name: run jest
|
||||||
run: yarn jest
|
run: yarn jest
|
||||||
eslint:
|
lint:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -156,6 +156,9 @@ jobs:
|
||||||
- name: run yarn eslint
|
- name: run yarn eslint
|
||||||
run: |
|
run: |
|
||||||
yarn eslint
|
yarn eslint
|
||||||
|
- name: run yarn markdownlint
|
||||||
|
run: |
|
||||||
|
yarn markdownlint
|
||||||
main_build:
|
main_build:
|
||||||
needs: ['install_yarn', 'install_gems']
|
needs: ['install_yarn', 'install_gems']
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
6
.markdownlint.jsonc
Normal file
6
.markdownlint.jsonc
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"default": true,
|
||||||
|
"no-hard-tabs": false,
|
||||||
|
"MD013": {"line_length": 80},
|
||||||
|
"MD007": {"indent": 1}
|
||||||
|
}
|
104
docs/docker.md
104
docs/docker.md
|
@ -1,69 +1,99 @@
|
||||||
#### Docker install (if you don't have docker and docker-compose installed)
|
# Using docker (outdated)
|
||||||
##### install Docker and Docker compose
|
|
||||||
|
## Docker install (if you don't have docker and docker-compose installed)
|
||||||
|
|
||||||
|
### install Docker and Docker compose
|
||||||
|
|
||||||
You need to install Docker and Docker Compose.
|
You need to install Docker and Docker Compose.
|
||||||
* *Note:* Docker and Docker Compose binaries from Docker itself are proprietary software based entirely upon
|
|
||||||
free software. If you feel more comfortable, you may build them from source.
|
|
||||||
|
|
||||||
* *Note 2:* For Debian, the Docker package is simply too out of date to be usable.
|
* *Note:* Docker and Docker Compose binaries from Docker itself are proprietary
|
||||||
|
software based entirely upon free software. If you feel more comfortable,
|
||||||
|
you may build them from source.
|
||||||
|
|
||||||
|
* *Note 2:* For Debian, the Docker package is simply too out of date to be usable.
|
||||||
Even the version for latest Ubuntu LTS is too old. For reliability, we strongly
|
Even the version for latest Ubuntu LTS is too old. For reliability, we strongly
|
||||||
recommend using the Docker debian feed from docker itself OR making sure you keep your
|
recommend using the Docker debian feed from docker itself OR making sure you
|
||||||
own build up to date.
|
keep your own build up to date.
|
||||||
|
|
||||||
|
### Add yourself to the docker group
|
||||||
|
|
||||||
##### Add yourself to the docker group
|
|
||||||
Adding yourself as a Docker group user as follows:
|
Adding yourself as a Docker group user as follows:
|
||||||
|
|
||||||
`sudo usermod -aG docker $USER`
|
`sudo usermod -aG docker $USER`
|
||||||
|
|
||||||
You will likely need to logout and log back in again.
|
You will likely need to logout and log back in again.
|
||||||
|
|
||||||
#### Build your docker-container and start it up for initial set up.
|
## Build your docker-container and start it up for initial set up
|
||||||
|
|
||||||
We'll keep this running in the console we'll call **console 1**
|
We'll keep this running in the console we'll call **console 1**
|
||||||
```
|
|
||||||
|
```ruby
|
||||||
./dc build
|
./dc build
|
||||||
./dc up
|
./dc up
|
||||||
```
|
```
|
||||||
#### System configuration
|
|
||||||
There are a number of steps for configuring your Houdini instance for startup
|
|
||||||
##### Start a new console we'll call **console 2**.
|
|
||||||
|
|
||||||
##### In console 2, copy the env template to your .env file
|
## System configuration
|
||||||
```
|
|
||||||
|
There are a number of steps for configuring your Houdini instance for startup
|
||||||
|
|
||||||
|
### Start a new console we'll call **console 2**
|
||||||
|
|
||||||
|
### In console 2, copy the env template to your .env file
|
||||||
|
|
||||||
|
```shell
|
||||||
cp .env.template .env
|
cp .env.template .env
|
||||||
```
|
```
|
||||||
##### In console 2, run the following and copy the output to you .env file to set you `DEVISE_SECRET_KEY` environment variable.
|
|
||||||
`./run rake secret # copy this result into your DEVISE_SECRET_KEY`
|
|
||||||
|
|
||||||
##### In console 2, , run the following and copy the output to you .env file to set you `SECRET_TOKEN` environment variable.
|
### In console 2, run the following fill your `DEVISE_SECRET_KEY`
|
||||||
```
|
|
||||||
./run rake secret # copy this result into your SECRET_TOKEN
|
`./run rake secret ## copy this result into your DEVISE_SECRET_KEY`
|
||||||
|
|
||||||
|
Now copy the output to you .env file to set you `DEVISE_SECRET_KEY` environment variable
|
||||||
|
|
||||||
|
### In console 2, run the following to fill your `SECRET_TOKEN`
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
./run rake secret ## copy this result into your SECRET_TOKEN
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Set the following secrets in your .env file with your Stripe account information
|
Now copy the output to you .env file to set you `SECRET_TOKEN` environment variable
|
||||||
- `STRIPE_API_KEY` with your Stripe PRIVATE key
|
|
||||||
- `STRIPE_API_PUBLIC` with your Stripe PUBLIC key
|
### Set the following secrets in your .env file with your Stripe account information
|
||||||
|
|
||||||
|
* `STRIPE_API_KEY` with your Stripe PRIVATE key
|
||||||
|
* `STRIPE_API_PUBLIC` with your Stripe PUBLIC key
|
||||||
|
|
||||||
|
### You SHOULD set your AMAZON s3 information (optional but STRONGLY recommended)
|
||||||
|
|
||||||
##### You SHOULD set your AMAZON s3 information (optional but STRONGLY recommended)
|
|
||||||
If you don't, file uploads WILL NOT WORK but it's not required.
|
If you don't, file uploads WILL NOT WORK but it's not required.
|
||||||
|
|
||||||
##### In console 2, install yarn
|
### In console 2, install yarn
|
||||||
|
|
||||||
`./run yarn`
|
`./run yarn`
|
||||||
|
|
||||||
##### In console 2, fill the db
|
### In console 2, fill the db
|
||||||
`./run rake db:create db:structure:load db:seed test:prepare`
|
|
||||||
|
|
||||||
##### Set up mailer info
|
`./run rake db:create db:structure:load db:seed test:prepare`
|
||||||
You can set this in `config/default_organization.yml` or better yet, make a copy with your own org name and add that to your .env file as `ORG_NAME`
|
|
||||||
If you need help setting up your mailer, visit `config/environment.rb` where the settings schema is verified and documented.
|
|
||||||
|
|
||||||
#### Startup
|
### Set up mailer info
|
||||||
##### Switch back to console 1 and run `Ctrl-c` to end the session.
|
|
||||||
|
You can set this in `config/default_organization.yml` or better yet, make
|
||||||
|
a copy with your own org name and add that to your .env file as `ORG_NAME`
|
||||||
|
If you need help setting up your mailer, visit `config/environment.rb` where
|
||||||
|
the settings schema is verified and documented.
|
||||||
|
|
||||||
|
## Startup
|
||||||
|
|
||||||
|
### Switch back to console 1 and run `Ctrl-c` to end the session
|
||||||
|
|
||||||
|
### In console 1, restart the containers
|
||||||
|
|
||||||
##### In console 1, restart the containers
|
|
||||||
`./dc up`
|
`./dc up`
|
||||||
|
|
||||||
##### In console 2, run:
|
### In console 2, run
|
||||||
|
|
||||||
`./run yarn watch`
|
`./run yarn watch`
|
||||||
|
|
||||||
##### You can go to http://localhost:5000
|
### You can go to <http://localhost:5000>
|
||||||
|
|
||||||
To get started, register your nonprofit using the "Get Started" link.
|
To get started, register your nonprofit using the "Get Started" link.
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
You'll need to have in your Mac the following dependencies installed, if you don't want to use the provided Docker containers.
|
You'll need to have in your Mac the following dependencies installed, if you
|
||||||
|
don't want to use the provided Docker containers.
|
||||||
|
|
||||||
- Ruby `2.5.1`
|
- Ruby `2.5.1`
|
||||||
- Rails `5.0.7.1`
|
- Rails `5.0.7.1`
|
||||||
|
@ -20,22 +21,29 @@ Instructions for running Development environment using macOS Catalina
|
||||||
|
|
||||||
_Dependencies:_
|
_Dependencies:_
|
||||||
|
|
||||||
Have a ruby version installed, you can learn more about how to use multiple versions of Ruby installed in your computer with [rbenv](https://github.com/rbenv/rbenv) or [rvm](https://rvm.io).
|
Have a ruby version installed, you can learn more about how to use multiple
|
||||||
|
versions of Ruby installed in your computer with
|
||||||
|
[rbenv](https://github.com/rbenv/rbenv) or [rvm](https://rvm.io).
|
||||||
|
|
||||||
An instance of PostgresSQL running.
|
An instance of PostgresSQL running.
|
||||||
|
|
||||||
_Setting up secrets:_
|
_Setting up secrets:_
|
||||||
|
|
||||||
Run `cp .env.template .env` to copy the provided template file for env variables to create your own.
|
Run `cp .env.template .env` to copy the provided template file for env
|
||||||
|
variables to create your own.
|
||||||
|
|
||||||
You'll need to provide a `DEVISE_SECRET_KEY` and `SECRET_TOKEN` which you can obtain by running `bundle exec rake secret`.
|
You'll need to provide a `DEVISE_SECRET_KEY` and `SECRET_TOKEN` which you can
|
||||||
|
obtain by running `bundle exec rake secret`.
|
||||||
|
|
||||||
Set the following secrets in your `.env` file with your _Stripe account_ information.
|
Set the following secrets in your `.env` file with your _Stripe account_ information.
|
||||||
|
|
||||||
- `STRIPE_API_KEY` with your Stripe _private_ key.
|
- `STRIPE_API_KEY` with your Stripe _private_ key.
|
||||||
- `STRIPE_API_PUBLIC` with your Stripe _public_ key.
|
- `STRIPE_API_PUBLIC` with your Stripe _public_ key.
|
||||||
|
|
||||||
The last secrets you'll need are related to AWS. You can learn how to [create an S3 Bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html) within the AWS Documentation, and to obtain your access and secret key, you can [learn more here](https://aws.amazon.com/blogs/security/wheres-my-secret-access-key/).
|
The last secrets you'll need are related to AWS. You can learn how
|
||||||
|
to [create an S3 Bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html)
|
||||||
|
within the AWS Documentation, and to obtain your access and secret key, you
|
||||||
|
can [learn more here](https://aws.amazon.com/blogs/security/wheres-my-secret-access-key/).
|
||||||
|
|
||||||
- `S3_BUCKET_NAME`
|
- `S3_BUCKET_NAME`
|
||||||
- `AWS_ACCESS_KEY`
|
- `AWS_ACCESS_KEY`
|
||||||
|
@ -43,21 +51,27 @@ The last secrets you'll need are related to AWS. You can learn how to [create an
|
||||||
|
|
||||||
_Setting up the local database:_
|
_Setting up the local database:_
|
||||||
|
|
||||||
Run `rake db:setup` to run all the db tasks within one command. This will create the dbs for each environment, load the `structure.sql`, run pending migrations and will also run the seed functionality.
|
Run `rake db:setup` to run all the db tasks within one command. This will
|
||||||
|
create the dbs for each environment, load the `structure.sql`, run
|
||||||
|
pending migrations and will also run the seed functionality.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Known problems**
|
**Known problems**
|
||||||
If you encounter `database doesnt exist in rake db create` after running both `rake db:setup` and `rake db:create`, you'll need to comment out the lines these lines at `pg_type_map.rb`
|
If you encounter `database doesnt exist in rake db create` after running
|
||||||
|
both `rake db:setup` and `rake db:create`, you'll need to comment out
|
||||||
|
the lines these lines at `pg_type_map.rb`
|
||||||
|
|
||||||
```
|
```ruby
|
||||||
Qx.config(type_map: PG::BasicTypeMapForResults.new(ActiveRecord::Base.connection.raw_connection))
|
Qx.config(type_map: PG::BasicTypeMapForResults.new(ActiveRecord::Base.connection.raw_connection))
|
||||||
Qx.execute("SET TIME ZONE utc")
|
Qx.execute("SET TIME ZONE utc")
|
||||||
```
|
```
|
||||||
|
|
||||||
### How to run
|
### How to run
|
||||||
|
|
||||||
You'll need 2 consoles to run the project. One for the rails env and another one to run the asset pipeline through [webpack](https://webpack.js.org) , since it's _not incorporated yet_ into the rails asset pipeline.
|
You'll need 2 consoles to run the project. One for the rails env and another
|
||||||
|
one to run the asset pipeline through [webpack](https://webpack.js.org),
|
||||||
|
since it's _not incorporated yet_ into the rails asset pipeline.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Console one (1)
|
# Console one (1)
|
||||||
|
@ -85,7 +99,11 @@ Run `bundle exec rspec` to run test suite.
|
||||||
|
|
||||||
## Formatting
|
## Formatting
|
||||||
|
|
||||||
We are using [Standard](https://github.com/testdouble/standard) that is a wrapper on top of Rubocop with a predefined set of Rules. If you use VS Code you will want to install [vscode-ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) extension and enable formatting on save.
|
We are using [Standard](https://github.com/testdouble/standard) that is a
|
||||||
|
wrapper on top of Rubocop with a predefined set of Rules. If you use VS Code
|
||||||
|
you will want to install
|
||||||
|
[vscode-ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby)
|
||||||
|
extension and enable formatting on save.
|
||||||
|
|
||||||
To enable formatting on save add these lines to your `settings.json`.
|
To enable formatting on save add these lines to your `settings.json`.
|
||||||
|
|
||||||
|
|
|
@ -1,41 +1,63 @@
|
||||||
|
# Known issues
|
||||||
|
|
||||||
## Byebug or Pry won't start - image not found readline.bundle
|
## Byebug or Pry won't start - image not found readline.bundle
|
||||||
----------
|
|
||||||
|
---
|
||||||
|
|
||||||
Error reported.
|
Error reported.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pry
|
pry
|
||||||
# Sorry, you can't use byebug without Readline. To solve this, you need to
|
# Sorry, you can't use byebug without Readline. To solve this, you need to
|
||||||
# rebuild Ruby with Readline support. If using Ubuntu, try `sudo apt-get
|
# rebuild Ruby with Readline support. If using Ubuntu, try `sudo apt-get
|
||||||
# install libreadline-dev` and then reinstall your Ruby.
|
# install libreadline-dev` and then reinstall your Ruby.
|
||||||
```
|
```
|
||||||
### What's the problem?
|
|
||||||
Ruby installation with gems, specifically the `readline` gem already installed on a system that had a macOS upgrade.
|
|
||||||
|
|
||||||
### How to solve it?
|
### What's the problem
|
||||||
If **you use `rvm` to manage your ruby versions**. You can use `rvm` to recompile ruby from source to solve the problem.
|
|
||||||
|
Ruby installation with gems, specifically the `readline` gem already installed
|
||||||
|
on a system that had a macOS upgrade.
|
||||||
|
|
||||||
|
### How to solve it
|
||||||
|
|
||||||
|
If **you use `rvm` to manage your ruby versions**. You can use `rvm` to
|
||||||
|
recompile ruby from source to solve the problem.
|
||||||
|
|
||||||
_Note:_ You'll need to rebuild `ruby` as a best practice after `macOS` upgrades.
|
_Note:_ You'll need to rebuild `ruby` as a best practice after `macOS` upgrades.
|
||||||
|
|
||||||
#### Steps to rebuild ruby via **RVM**
|
#### Steps to rebuild ruby via **RVM**
|
||||||
Make sure you've installed the latest Xcode + tools before proceeding; check App Store for updates. Be sure to accept the Xcode License before proceeding!
|
|
||||||
|
Make sure you've installed the latest Xcode + tools before proceeding; check
|
||||||
|
App Store for updates. Be sure to accept the Xcode License before proceeding!
|
||||||
|
|
||||||
Update Xcode and accept the license:
|
Update Xcode and accept the license:
|
||||||
* Update Xcode to latest via App Store, be sure to update the Xcode Tools as well.
|
|
||||||
* In a terminal window, exec this command: `sudo xcodebuild -license accept`
|
- Update Xcode to latest via App Store, be sure to update the Xcode Tools as well.
|
||||||
|
- In a terminal window, exec this command: `sudo xcodebuild -license accept`
|
||||||
|
|
||||||
Make sure you have the **readline** lib installed:
|
Make sure you have the **readline** lib installed:
|
||||||
|
|
||||||
* `brew --prefix readline`
|
- `brew --prefix readline`
|
||||||
* if you get Error: No available formula with the name "readline", install readline:
|
- if you get Error: No available formula with the name "readline", install readline:
|
||||||
* `brew install readline`
|
- `brew install readline`
|
||||||
* `brew link --force readline` You'll need to use `--force` to make it work.
|
- `brew link --force readline` You'll need to use `--force` to make it work.
|
||||||
* `vi ~/.rvm/user/db` and add the following: `ruby_configure_flags=--with-readline-dir=/usr/local/opt/readline`
|
- `vi ~/.rvm/user/db` and add the following: `ruby_configure_flags=--with-readline-dir=/usr/local/opt/readline`
|
||||||
|
|
||||||
Reinstall Ruby, with a rebuild of sources:
|
Reinstall Ruby, with a rebuild of sources:
|
||||||
|
|
||||||
* `rvm reinstall <your_ruby_version>` This command removes the specified version's ruby binaries and libs, and rebuilds from source code on your system, with the latest macOS headers and libs.
|
- `rvm reinstall <your_ruby_version>` This command removes the
|
||||||
* `rvm reinstall <your_ruby_version> --gems` This command repro's the same steps as above, but it removes the gems first as well. The next time you run bundle install the gems will be downloaded and rebuilt against your latest ruby. This can help resolve other potential issues with gems after rebuilding ruby on macOS.
|
specified version's ruby binaries and libs, and rebuilds
|
||||||
* Change the specified version (2.5.1 in my case) to match your needs.
|
from source code on your system, with the latest macOS headers and libs.
|
||||||
* **I ended up using the second syntax for a completely fresh start.**
|
- `rvm reinstall <your_ruby_version> --gems` This command repro's the same
|
||||||
|
steps as above, but it removes the gems first as well. The next time
|
||||||
|
you run bundle install the gems will be downloaded and rebuilt against
|
||||||
|
your latest ruby. This can help resolve other potential issues with
|
||||||
|
gems after rebuilding ruby on macOS.
|
||||||
|
- Change the specified version (2.5.1 in my case) to match your needs.
|
||||||
|
- **I ended up using the second syntax for a completely fresh start.**
|
||||||
|
|
||||||
_Gotchas:_ If you're in the project directory running a terminal window when finished this process, You'll had to `cd ..` up a level and then `cd project-folder` back into the project so that RVM would reactivate your gemset.
|
_Gotchas:_ If you're in the project directory running a terminal window when
|
||||||
Run `gem install bundler` and then `bundle install` to re-hydrate the gems for the project.
|
finished this process, You'll had to `cd ..` up a level and then `cd project-folder`
|
||||||
|
back into the project so that RVM would reactivate your gemset.
|
||||||
|
Run `gem install bundler` and then `bundle install` to re-hydrate the gems
|
||||||
|
for the project.
|
||||||
|
|
|
@ -8,13 +8,15 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build-all": "yarn install --frozen-lockfile && script/compile-assets.sh && yarn build",
|
"build-all": "yarn install --frozen-lockfile && script/compile-assets.sh && yarn build",
|
||||||
"ci-build-all": "script/compile-assets.sh && yarn build",
|
"ci-build-all": "script/compile-assets.sh && yarn build",
|
||||||
"test": "rake -v spec && yarn build && yarn jest",
|
"test": "bin/rails spec && yarn jest",
|
||||||
"jest": "jest",
|
"jest": "jest",
|
||||||
"eslint": "eslint . --ext .ts,.js,.es6,.tsx",
|
"eslint": "eslint . --ext .ts,.js,.es6,.tsx",
|
||||||
"storybook": "start-storybook -p 6006 -c .storybook/react",
|
"storybook": "start-storybook -p 6006 -c .storybook/react",
|
||||||
"build-storybook": "build-storybook -c .storybook/react",
|
"build-storybook": "build-storybook -c .storybook/react",
|
||||||
"html-storybook": "bin/start-html-storybook -p 6007 -c .storybook/html",
|
"html-storybook": "bin/start-html-storybook -p 6007 -c .storybook/html",
|
||||||
"build-html-storybook": "bin/build-html-storybook -c .storybook/html"
|
"build-html-storybook": "bin/build-html-storybook -c .storybook/html",
|
||||||
|
"markdownlint": "npx markdownlint-cli **/*.md --ignore node_modules",
|
||||||
|
"prepare-for-push": "yarn test && yarn markdownlint --fix && bin/rails notice:update"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.0.0",
|
"@babel/core": "^7.0.0",
|
||||||
|
|
Loading…
Reference in a new issue