Skip to content

Commit

Permalink
Fixes #36913 - Set up GHA with matrix to run test on Ruby 2.7
Browse files Browse the repository at this point in the history
Co-Authored-by: Ewoud Kohl van Wijngaarden <[email protected]>
Co-Authored-by: Evgeni Golov <[email protected]>
  • Loading branch information
3 people committed Nov 23, 2023
1 parent 19262bd commit c186ca9
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/matrix.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"postgresql": ["12"],
"ruby": ["2.7"],
"node": ["14"]
}
65 changes: 65 additions & 0 deletions .github/workflows/foreman.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
name: Foreman

on:
- pull_request

env:
RAILS_ENV: test
DATABASE_URL: postgresql://postgres:password@localhost/test
DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: true
BUNDLE_WITHOUT: "console:development:journald"

jobs:
setup_matrix:
name: Setup matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.build_matrix.outputs.matrix }}
steps:
- name: Build test matrix
id: build_matrix
uses: theforeman/gha-matrix-builder@v0
test:
name: "Ruby ${{ matrix.ruby }} and Node ${{ matrix.node }} on PostgreSQL ${{ matrix.postgresql }}"
runs-on: ubuntu-latest
needs: setup_matrix
services:
postgres:
image: 'postgres:${{ matrix.postgresql }}'
ports: ['5432:5432']
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
env:
POSTGRES_PASSWORD: password
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup_matrix.outputs.matrix) }}
steps:
- run: sudo apt-get update
- run: sudo apt-get -qq -y install build-essential libcurl4-openssl-dev zlib1g-dev libpq-dev libvirt-dev
- name: "Check out Foreman"
uses: actions/checkout@v4
- name: "Set up Ruby ${{ matrix.ruby }}"
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Archive Gemfile.lock
uses: actions/upload-artifact@v3
with:
name: Gemfile-ruby-${{ matrix.ruby }}-node-${{ matrix.node }}-pg-${{ matrix.postgresql }}.lock
path: Gemfile.lock
- name: "Set up Node ${{ matrix.node }}"
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Prepare test env
run: |
bundle exec rake db:create
bundle exec rake db:migrate
- name: Run unit tests
run: bundle exec rake test:units
- name: Run functional tests
run: bundle exec rake test:functionals
- name: Run graphql tests
run: bundle exec rake test:graphql

0 comments on commit c186ca9

Please sign in to comment.