Sometimes a test gets stuck and and we have to wait until it times out in order to check which files were being tested at the time. The default timeout is six hours. I'm reducing it to one hour which should still be plenty of time even on repositories with no knapsack token.
71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
name: tests
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches-ignore:
|
|
- i18n_master
|
|
|
|
jobs:
|
|
tests:
|
|
runs-on: ubuntu-18.04
|
|
timeout-minutes: 60
|
|
services:
|
|
postgres:
|
|
image: postgres:10.10
|
|
ports: ["5432:5432"]
|
|
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
|
env:
|
|
POSTGRES_USER: consul
|
|
POSTGRES_PASSWORD: ""
|
|
env:
|
|
CI_BUILD_NUMBER: ${{ github.run_number }}
|
|
COVERALLS_FLAG_NAME: run-${{ matrix.ci_node_index }}
|
|
COVERALLS_PARALLEL: true
|
|
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
|
PGUSER: consul
|
|
POSTGRES_HOST: postgres
|
|
RAILS_ENV: test
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
ci_node_total: [5]
|
|
ci_node_index: [0, 1, 2, 3, 4]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true
|
|
- name: Setup NPM
|
|
uses: actions/setup-node@v1
|
|
- name: Copy secrets and database files
|
|
run: for i in config/*.example; do cp "$i" "${i/.example}"; done
|
|
- name: Setup database
|
|
run: bundle exec rake db:setup
|
|
- name: Compile assets
|
|
run: bundle exec rake assets:precompile > /dev/null 2>&1
|
|
- name: Run test suite
|
|
env:
|
|
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }}
|
|
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
|
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
|
KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true
|
|
KNAPSACK_PRO_LOG_LEVEL: info
|
|
run: bin/knapsack_pro_rspec
|
|
- name: Upload screenshots
|
|
if: failure()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: screenshots
|
|
path: tmp/screenshots
|
|
coveralls:
|
|
runs-on: ubuntu-18.04
|
|
needs: tests
|
|
env:
|
|
CI_BUILD_NUMBER: ${{ github.run_number }}
|
|
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
|
steps:
|
|
- name: Finish coveralls
|
|
run: curl -k https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN -d "payload[build_num]=$CI_BUILD_NUMBER&payload[status]=done"
|