Skip to content

Merge branch '4160-duplicate-requests' into develop #3887

Merge branch '4160-duplicate-requests' into develop

Merge branch '4160-duplicate-requests' into develop #3887

Workflow file for this run

name: CI
on:
push:
branches: [master, develop]
pull_request:
types:
- opened
- synchronize
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
jobs:
check:
runs-on: ubuntu-latest
outputs:
skip_rspec: ${{ steps.skip.outputs.skip_rspec }}
env:
GH_TOKEN: ${{ github.token }}
steps:
- name: Check for [skip rspec]
id: skip
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
PR_DESCRIPTION=$(gh pr view https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }} --json body -q '.body')
if echo "$PR_DESCRIPTION" | grep -q "\[skip rspec\]"; then
echo "Skip RSpec found in PR description. Passing the action."
echo "skip_rspec=true" >> $GITHUB_OUTPUT
exit
fi
fi
echo "skip_rspec=false" >> $GITHUB_OUTPUT
rspec:
name: Ruby ${{ matrix.ruby }} / PostgreSQL ${{ matrix.postgres }}
runs-on: ubuntu-latest
needs: check
if: needs.check.outputs.skip_rspec == 'false'
permissions:
checks: write # for coverallsapp/github-action to create new checks
strategy:
fail-fast: false
matrix:
include:
- { ruby: '3.1', postgres: 13.5 }
- { ruby: '3.2', postgres: 13.5 }
services:
postgres:
image: fixmystreet/postgres:${{ matrix.postgres }}
env:
POSTGRES_PASSWORD: postgres
ports:
- '5432:5432'
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/alaveteli_test
RAILS_ENV: test
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Install packages
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get -y update
sudo apt-get -y install exim4-daemon-light
sudo apt-get -y install `cut -d " " -f 1 config/packages | egrep -v "(^#|wkhtml|bundler|^ruby|^rake)"`
- name: Install Ruby ${{ matrix.ruby }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Setup database
run: |
psql postgres://postgres:postgres@localhost:5432 <<-EOSQL
CREATE DATABASE template_utf8 TEMPLATE template0 ENCODING "UTF-8";
UPDATE pg_database SET datistemplate=true WHERE datname='template_utf8';
CREATE DATABASE alaveteli_test TEMPLATE template_utf8;
EOSQL
- name: Configure application and storage
run: |
cp config/general.yml-example config/general.yml
cp config/storage.yml-example config/storage.yml
- name: Install theme
run: |
bundle exec rake themes:install
- name: Migrate database
run: |
bundle exec rails db:migrate
- name: Run core tests
run: |
bundle exec rspec --format Fivemat
- name: Run nested gems tests
run: |
bundle exec rspec gems/*/spec --format Fivemat
- name: Coveralls Parallel
uses: coverallsapp/github-action@master
continue-on-error: true
with:
github-token: ${{ secrets.github_token }}
flag-name: run-${{ matrix.ruby }}-${{ matrix.gemfile || 'Gemfile' }}
parallel: true
coveralls:
name: Coveralls
runs-on: ubuntu-latest
needs: rspec
permissions:
checks: write
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true