diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..a0376ee --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,44 @@ +name: Lint + +on: + push: + branches: + - main + pull_request: + +env: + RUBY_VERSION: 3.1.1 + NODE_VERSION: 18.17.1 + +jobs: + lint: + name: Lint code + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.0.0 + with: + fetch-depth: 1 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ env.RUBY_VERSION }} + bundler-cache: true + + - uses: actions/setup-node@master + with: + node-version: ${{ env.NODE_VERSION }} + + - run: bundle exec rubocop -P + name: Lint Ruby files + + - run: bundle exec mdl *.md + name: Lint Markdown files + + - run: bundle exec erblint app/views/**/*.erb + name: Lint ERB files + + - run: npm run stylelint + name: Lint SCSS files + + - run: npm run lint + name: Lint JS files diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..b62df29 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,66 @@ +name: Test + +on: + push: + branches: + - main + pull_request: + +env: + RUBY_VERSION: 3.1.1 + NODE_VERSION: 18.17.1 + +jobs: + test: + name: Test + runs-on: ubuntu-latest + services: + postgres: + image: postgres:11 + ports: + - 5432:5432 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_HOST_AUTH_METHOD: trust + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ env.RUBY_VERSION }} + bundler-cache: true + + - uses: actions/setup-node@master + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Bundle Install + run: bundle install + + - name: Setup & create Database + run: bundle exec rake db:test:prepare + env: + RAILS_ENV: test + DATABASE_USERNAME: postgres + DATABASE_PASSWORD: postgres + + - name: Precompile assets + run: | + npm install + bundle exec rake assets:precompile + env: + RAILS_ENV: test + DATABASE_USERNAME: postgres + DATABASE_PASSWORD: postgres + + - name: Run RSpec + run: SIMPLECOV=1 bundle exec rspec + env: + RAILS_ENV: test + DATABASE_USERNAME: postgres + DATABASE_PASSWORD: postgres