diff --git a/.github/workflows/run-foss-spec.yml b/.github/workflows/run-foss-spec.yml new file mode 100644 index 000000000..3a6ff5f7b --- /dev/null +++ b/.github/workflows/run-foss-spec.yml @@ -0,0 +1,72 @@ +# # +# # This action will strip the enterprise folder +# # and run the spec. +# # This is set to run against every PR. +# # + +name: Run Chatwoot CE spec +on: + push: + branches: + - develop + - master + pull_request: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + services: + postgres: + image: postgres:10.8 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: "" + POSTGRES_DB: postgres + ports: + - 5432:5432 + # needed because the postgres container does not provide a healthcheck + # tmpfs makes DB faster by using RAM + options: >- + --mount type=tmpfs,destination=/var/lib/postgresql/data + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + redis: + image: redis + ports: + - 6379:6379 + options: --entrypoint redis-server + + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.0.2 # Not needed with a .ruby-version file + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + + - name: yarn + run: yarn install + + - name: Strip enterprise code + run: | + rm -rf enterprise + rm -rf spec/enterprise + + - name: Create database + run: bundle exec rake db:create + + - name: Seed database + run: bundle exec rake db:schema:load + + - name: yarn check-files + run: yarn install --check-files + + # Run rails tests + - name: Run backend tests + run: | + bundle exec rspec --profile=10 --format documentation