mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-11 18:26:50 +00:00
569 lines
20 KiB
YAML
569 lines
20 KiB
YAML
name: Build
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches-ignore:
|
|
- 'dependabot/**'
|
|
pull_request:
|
|
|
|
env:
|
|
DISABLE_KNAPSACK_PRO: false
|
|
TIMEZONE: UTC
|
|
COVERAGE: true
|
|
RAILS_ENV: test
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
controllers:
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
postgres:
|
|
image: postgres:10
|
|
ports: ["5432:5432"]
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
env:
|
|
POSTGRES_DB: open_food_network_test
|
|
POSTGRES_USER: ofn
|
|
POSTGRES_PASSWORD: f00d
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# [n] - where the n is a number of parallel jobs you want to run your tests on.
|
|
# Use a higher number if you have slow tests to split them between more parallel jobs.
|
|
# Remember to update the value of the `ci_node_index` below to (0..n-1).
|
|
ci_node_total: [8]
|
|
# Indexes for parallel jobs (starting from zero).
|
|
# E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc.
|
|
ci_node_index: [0, 1, 2, 3, 4, 5, 6, 7]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup redis
|
|
uses: supercharge/redis-github-action@1.4.0
|
|
with:
|
|
redis-version: 6
|
|
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
# JS is required in order for webpacker to compile, in order to render templates containing image urls
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version-file: .node-version
|
|
cache: yarn
|
|
|
|
- name: Install JS dependencies
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Set up database
|
|
run: |
|
|
bin/rake db:create db:schema:load
|
|
|
|
- name: Run tests
|
|
env:
|
|
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: 864ef557d85ea8e603e086c0387d5154
|
|
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
|
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
|
KNAPSACK_PRO_LOG_LEVEL: info
|
|
# if you use Knapsack Pro Queue Mode you must set below env variable
|
|
# to be able to retry CI build and run previously recorded tests
|
|
# https://github.com/KnapsackPro/knapsack_pro-ruby#knapsack_pro_fixed_queue_split-remember-queue-split-on-retry-ci-node
|
|
# KNAPSACK_PRO_FIXED_QUEUE_SPLIT: false
|
|
# RSpec split test files by test examples feature - it's optional
|
|
# https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it
|
|
#KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true
|
|
KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/controllers/**/*_spec.rb}"
|
|
run: |
|
|
git show --no-patch # the commit being tested (which is often a merge due to actions/checkout@v3)
|
|
bin/rake knapsack_pro:rspec
|
|
|
|
- name: Save SimpleCov file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: simplecov-chunk-controllers-${{ matrix.ci_node_index }}
|
|
path: coverage/*.*
|
|
retention-days: 2 # doesn't need to be long, because it's the combined results that matter
|
|
if-no-files-found: ignore
|
|
include-hidden-files: true
|
|
|
|
models:
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
postgres:
|
|
image: postgres:10
|
|
ports: ["5432:5432"]
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
env:
|
|
POSTGRES_DB: open_food_network_test
|
|
POSTGRES_USER: ofn
|
|
POSTGRES_PASSWORD: f00d
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# [n] - where the n is a number of parallel jobs you want to run your tests on.
|
|
# Use a higher number if you have slow tests to split them between more parallel jobs.
|
|
# Remember to update the value of the `ci_node_index` below to (0..n-1).
|
|
ci_node_total: [4]
|
|
# Indexes for parallel jobs (starting from zero).
|
|
# E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc.
|
|
ci_node_index: [0, 1, 2, 3]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup redis
|
|
uses: supercharge/redis-github-action@1.4.0
|
|
with:
|
|
redis-version: 6
|
|
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
- name: Set up database
|
|
run: |
|
|
bin/rake db:create db:schema:load
|
|
|
|
- name: Run tests
|
|
env:
|
|
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: 09476e2ce491c12083df62768667c674
|
|
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
|
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
|
KNAPSACK_PRO_LOG_LEVEL: info
|
|
# if you use Knapsack Pro Queue Mode you must set below env variable
|
|
# to be able to retry CI build and run previously recorded tests
|
|
# https://github.com/KnapsackPro/knapsack_pro-ruby#knapsack_pro_fixed_queue_split-remember-queue-split-on-retry-ci-node
|
|
# KNAPSACK_PRO_FIXED_QUEUE_SPLIT: false
|
|
# RSpec split test files by test examples feature - it's optional
|
|
# https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it
|
|
#KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true
|
|
KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/models/**/*_spec.rb}"
|
|
run: |
|
|
bin/rake knapsack_pro:rspec
|
|
|
|
- name: Save SimpleCov file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: simplecov-chunk-models-${{ matrix.ci_node_index }}
|
|
path: coverage/*.*
|
|
retention-days: 2 # doesn't need to be long, because it's the combined results that matter
|
|
if-no-files-found: ignore
|
|
include-hidden-files: true
|
|
|
|
system_admin:
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
postgres:
|
|
image: postgres:10
|
|
ports: ["5432:5432"]
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
env:
|
|
POSTGRES_DB: open_food_network_test
|
|
POSTGRES_USER: ofn
|
|
POSTGRES_PASSWORD: f00d
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# [n] - where the n is a number of parallel jobs you want to run your tests on.
|
|
# Use a higher number if you have slow tests to split them between more parallel jobs.
|
|
# Remember to update the value of the `ci_node_index` below to (0..n-1).
|
|
ci_node_total: [14]
|
|
# Indexes for parallel jobs (starting from zero).
|
|
# E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc.
|
|
ci_node_index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup redis
|
|
uses: supercharge/redis-github-action@1.4.0
|
|
with:
|
|
redis-version: 6
|
|
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version-file: .node-version
|
|
cache: yarn
|
|
|
|
- name: Install JS dependencies
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Set up database
|
|
run: |
|
|
bin/rake db:create db:schema:load
|
|
|
|
- name: Run tests
|
|
|
|
env:
|
|
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: ff2456e64c9f2aa5157eb0daf711d3c3
|
|
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
|
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
|
KNAPSACK_PRO_LOG_LEVEL: info
|
|
# if you use Knapsack Pro Queue Mode you must set below env variable
|
|
# to be able to retry CI build and run previously recorded tests
|
|
# https://github.com/KnapsackPro/knapsack_pro-ruby#knapsack_pro_fixed_queue_split-remember-queue-split-on-retry-ci-node
|
|
KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true
|
|
# RSpec split test files by test examples feature - it's optional
|
|
# https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it
|
|
#KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true
|
|
KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/system/admin/**/*_spec.rb}"
|
|
|
|
run: |
|
|
bin/rake knapsack_pro:queue:rspec
|
|
|
|
- name: Save SimpleCov file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: simplecov-chunk-system-admin-${{ matrix.ci_node_index }}
|
|
path: coverage/*.*
|
|
retention-days: 2 # doesn't need to be long, because it's the combined results that matter
|
|
if-no-files-found: ignore
|
|
include-hidden-files: true
|
|
|
|
- name: Archive failed tests screenshots
|
|
if: failure()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: failed-admin_${{ matrix.ci_node_index }}-tests-screenshots
|
|
path: tmp/capybara/screenshots/*.png
|
|
retention-days: 7
|
|
if-no-files-found: ignore
|
|
|
|
system_consumer:
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
postgres:
|
|
image: postgres:10
|
|
ports: ["5432:5432"]
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
env:
|
|
POSTGRES_DB: open_food_network_test
|
|
POSTGRES_USER: ofn
|
|
POSTGRES_PASSWORD: f00d
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# [n] - where the n is a number of parallel jobs you want to run your tests on.
|
|
# Use a higher number if you have slow tests to split them between more parallel jobs.
|
|
# Remember to update the value of the `ci_node_index` below to (0..n-1).
|
|
ci_node_total: [12]
|
|
# Indexes for parallel jobs (starting from zero).
|
|
# E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc.
|
|
ci_node_index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup redis
|
|
uses: supercharge/redis-github-action@1.4.0
|
|
with:
|
|
redis-version: 6
|
|
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version-file: .node-version
|
|
cache: yarn
|
|
|
|
- name: Install JS dependencies
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Set up database
|
|
run: |
|
|
bin/rake db:create db:schema:load
|
|
|
|
- name: Run tests
|
|
|
|
env:
|
|
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: e52bd4390c853e6c5bdfe4d0334586c1
|
|
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
|
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
|
KNAPSACK_PRO_LOG_LEVEL: info
|
|
# if you use Knapsack Pro Queue Mode you must set below env variable
|
|
# to be able to retry CI build and run previously recorded tests
|
|
# https://github.com/KnapsackPro/knapsack_pro-ruby#knapsack_pro_fixed_queue_split-remember-queue-split-on-retry-ci-node
|
|
KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true
|
|
# RSpec split test files by test examples feature - it's optional
|
|
# https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it
|
|
#KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true
|
|
KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/system/consumer/**/*_spec.rb}"
|
|
|
|
run: |
|
|
bin/rake knapsack_pro:queue:rspec
|
|
|
|
- name: Save SimpleCov file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: simplecov-chunk-system-consumer-${{ matrix.ci_node_index }}
|
|
path: coverage/*.*
|
|
retention-days: 2 # doesn't need to be long, because it's the combined results that matter
|
|
if-no-files-found: ignore
|
|
include-hidden-files: true
|
|
|
|
- name: Archive failed tests screenshots
|
|
if: failure()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: failed-consumer_${{ matrix.ci_node_index }}-tests-screenshots
|
|
path: tmp/capybara/screenshots/*.png
|
|
retention-days: 7
|
|
if-no-files-found: ignore
|
|
|
|
engines:
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
postgres:
|
|
image: postgres:10
|
|
ports: ["5432:5432"]
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
env:
|
|
POSTGRES_DB: open_food_network_test
|
|
POSTGRES_USER: ofn
|
|
POSTGRES_PASSWORD: f00d
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# [n] - where the n is a number of parallel jobs you want to run your tests on.
|
|
# Use a higher number if you have slow tests to split them between more parallel jobs.
|
|
# Remember to update the value of the `ci_node_index` below to (0..n-1).
|
|
ci_node_total: [2]
|
|
# Indexes for parallel jobs (starting from zero).
|
|
# E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc.
|
|
ci_node_index: [0, 1]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup redis
|
|
uses: supercharge/redis-github-action@1.4.0
|
|
with:
|
|
redis-version: 6
|
|
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
# JS is required in order for webpacker to compile, in order to render templates linking to mail.css
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version-file: .node-version
|
|
cache: yarn
|
|
|
|
- name: Install JS dependencies
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Set up database
|
|
run: |
|
|
bin/rake db:create db:schema:load
|
|
|
|
- name: Run tests
|
|
|
|
env:
|
|
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: d6ea7ceb766404ccd016c19aa2c81b1c
|
|
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
|
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
|
KNAPSACK_PRO_LOG_LEVEL: info
|
|
# if you use Knapsack Pro Queue Mode you must set below env variable
|
|
# to be able to retry CI build and run previously recorded tests
|
|
# https://github.com/KnapsackPro/knapsack_pro-ruby#knapsack_pro_fixed_queue_split-remember-queue-split-on-retry-ci-node
|
|
# KNAPSACK_PRO_FIXED_QUEUE_SPLIT: false
|
|
# RSpec split test files by test examples feature - it's optional
|
|
# https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it
|
|
#KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true
|
|
KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/lib/**/*_spec.rb,spec/migrations/**/*_spec.rb,spec/serializers/**/*_spec.rb,engines/**/*_spec.rb}"
|
|
|
|
run: |
|
|
bin/rake knapsack_pro:rspec
|
|
|
|
- name: Save SimpleCov file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: simplecov-chunk-engines-${{ matrix.ci_node_index }}
|
|
path: coverage/*.*
|
|
retention-days: 2 # doesn't need to be long, because it's the combined results that matter
|
|
if-no-files-found: ignore
|
|
include-hidden-files: true
|
|
|
|
test_the_rest:
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
postgres:
|
|
image: postgres:10
|
|
ports: ["5432:5432"]
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
env:
|
|
POSTGRES_DB: open_food_network_test
|
|
POSTGRES_USER: ofn
|
|
POSTGRES_PASSWORD: f00d
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# [n] - where the n is a number of parallel jobs you want to run your tests on.
|
|
# Use a higher number if you have slow tests to split them between more parallel jobs.
|
|
# Remember to update the value of the `ci_node_index` below to (0..n-1).
|
|
ci_node_total: [5]
|
|
# Indexes for parallel jobs (starting from zero).
|
|
# E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc.
|
|
ci_node_index: [0, 1, 2, 3, 4]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup redis
|
|
uses: supercharge/redis-github-action@1.4.0
|
|
with:
|
|
redis-version: 6
|
|
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
# JS is required in order for webpacker to compile, in order to render templates linking to mail.css
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version-file: .node-version
|
|
cache: yarn
|
|
|
|
- name: Install JS dependencies
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Set up database
|
|
run: |
|
|
bin/rake db:create db:schema:load
|
|
|
|
- name: Run tests
|
|
env:
|
|
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: e3b8800198d2d89b70c7edbdd85f8fd8
|
|
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
|
|
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
|
|
KNAPSACK_PRO_LOG_LEVEL: info
|
|
# if you use Knapsack Pro Queue Mode you must set below env variable
|
|
# to be able to retry CI build and run previously recorded tests
|
|
# https://github.com/KnapsackPro/knapsack_pro-ruby#knapsack_pro_fixed_queue_split-remember-queue-split-on-retry-ci-node
|
|
# KNAPSACK_PRO_FIXED_QUEUE_SPLIT: false
|
|
# RSpec split test files by test examples feature - it's optional
|
|
# https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it
|
|
#KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true
|
|
KNAPSACK_PRO_TEST_FILE_EXCLUDE_PATTERN: "{engines/**/*_spec.rb,spec/models/**/*_spec.rb,spec/controllers/**/*_spec.rb,spec/serializers/**/*_spec.rb,spec/lib/**/*_spec.rb,spec/migrations/**/*_spec.rb,spec/system/**/*_spec.rb}"
|
|
run: |
|
|
bin/rake knapsack_pro:rspec
|
|
|
|
- name: Save SimpleCov file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: simplecov-chunk-the-rest-${{ matrix.ci_node_index }}
|
|
path: coverage/*.*
|
|
retention-days: 2 # doesn't need to be long, because it's the combined results that matter
|
|
if-no-files-found: ignore
|
|
include-hidden-files: true
|
|
|
|
non_knapsack_jest_karma:
|
|
runs-on: ubuntu-22.04
|
|
services:
|
|
postgres:
|
|
image: postgres:10
|
|
ports: ["5432:5432"]
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
env:
|
|
POSTGRES_DB: open_food_network_test
|
|
POSTGRES_USER: ofn
|
|
POSTGRES_PASSWORD: f00d
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# Rails is required for the Karma rake script
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version-file: .node-version
|
|
cache: yarn
|
|
|
|
- name: Install JS dependencies
|
|
run: yarn install --frozen-lockfile
|
|
|
|
- name: Run JS tests
|
|
run: bin/rake karma:run
|
|
|
|
- name: Run jest tests
|
|
run: yarn jest
|
|
|
|
collate_simplecov_results:
|
|
runs-on: ubuntu-22.04
|
|
needs:
|
|
- controllers
|
|
- models
|
|
- engines
|
|
- system_admin
|
|
- system_consumer
|
|
- test_the_rest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
|
|
- name: Download individual results from individual runners
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
pattern: simplecov-chunk-*
|
|
path: tmp/simplecov
|
|
merge-multiple: true
|
|
|
|
- name: collate results from each of the workers
|
|
run: bundle exec rake 'simplecov:collate_results[tmp/simplecov]'
|
|
|
|
- name: Upload collated results
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: combined-simplecov-report
|
|
path: coverage/**/*.*
|
|
retention-days: 7
|
|
if-no-files-found: ignore
|
|
include-hidden-files: true
|