Skip to content

Split tests into separate steps #7

Split tests into separate steps

Split tests into separate steps #7

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
# services:
# postgres:
# image: postgres
# ports:
# - 5432:5432
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# env:
# POSTGRES_DB: thredded_gem_test
# POSTGRES_USER: thredded
# POSTGRES_PASSWORD: thredded
# mysql:
# image: mysql
# ports:
# - 3306:3306
# options: >-
# --health-cmd mysqladmin ping
# --health-interval 10s
# --health-timeout 5s
# --health-retries 3
# env:
# MYSQL_DATABASE: thredded_gem_test
# MYSQL_USER: thredded
# MYSQL_PASSWORD: thredded
# MYSQL_ROOT_PASSWORD: thredded
strategy:
fail-fast: false
matrix:
# ruby: ["2.7.8", "3.0.7", "3.2.4", "3.3.4"]
ruby: ["3.3.4"]
node: ["14"]
gemfile:
# - spec/gemfiles/rails_6_0.gemfile
# - spec/gemfiles/rails_6_1.gemfile
- spec/gemfiles/rails_7_0.gemfile
# - spec/gemfiles/rails_7_2.gemfile
# - spec/gemfiles/rails_main.gemfile
# - spec/gemfiles/rubocop.gemfile
# - spec/gemfiles/i18n-tasks.gemfile
# db: [sqlite3, postgres, mysql]
db: [sqlite3]
# include:
# - ruby: 2.7
# rails: rubocop
# db: null
# - ruby: 2.7
# rails: i18n-tasks
# db: null
env:
RAILS_ENV: test
COVERAGE: 1
FERRUM_DEFAULT_TIMEOUT: 20
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
DB_USERNAME: thredded
DB_PASSWORD: thredded
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true # install gems and cache
- uses: browser-actions/setup-chrome@v1
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'npm'
# - name: Before script
# run: |
# if [[ $BUNDLE_GEMFILE != "${PWD}/spec/gemfiles/rails_5_2.gemfile" ]] && [[ -z $THREDDED_TESTAPP_SPROCKETS_JS ]]; then
# cd spec/dummy && yarn && cd -
# fi
# curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
# chmod +x ./cc-test-reporter
# ./cc-test-reporter before-build
- name: "Run Tests: test:nojs"
run: |
SIMPLECOV_NAME="test:nojs" bundle exec rspec --force-color --format d --tag=~js --tag=~i18n_tasks
- name: "Run Tests: test:js"
run: |
SIMPLECOV_NAME="test:js" bundle exec rspec --force-color --format d --tag=js
- name: "Run Tests: spec/migrations"
run: |
MIGRATION_SPEC=1 SIMPLECOV_NAME="test:migrations" bundle exec rspec spec/migration --force-color --format d
- name: "Run Tests: All"
run: |
spec/configuration/run_all
# - name: "Run Tests: run_spec_repeatedly"
# run: |
# bin/run_specs_repeatedly --tag=threaded_render
# - name: After script
# run: ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
# - name: Cache Onebox Data and Views
# uses: actions/cache@v2
# with:
# path: |
# tmp/cache/onebox-data
# tmp/cache/onebox-views
# spec/dummy/tmp/cache/onebox-data
# spec/dummy/tmp/cache/onebox-views
# key: onebox-${{ runner.os }}-${{ matrix.ruby }}-${{ matrix.gemfile }}
# restore-keys: |
# onebox-${{ runner.os }}-${{ matrix.ruby }}-${{ matrix.gemfile }}
# - name: Notify Slack
# uses: 8398a7/action-slack@v3
# with:
# status: ${{ job.status }}
# author_name: GitHub Actions
# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}