diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bef0533..83beb83 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,64 +9,40 @@ on: env: NODE_VERSION: 16.9.1 -jobs: - test-report: - runs-on: ubuntu-20.04 - - services: - postgres: - image: postgres:11 - ports: ["5432:5432"] - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - env: - POSTGRES_PASSWORD: postgres - env: - DATABASE_USERNAME: postgres - DATABASE_PASSWORD: postgres - DATABASE_HOST: localhost - BUNDLE_GEMFILE: ${{ matrix.gemfile }} - RUBY_VERSION: ${{ matrix.ruby }} +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true +jobs: + test: strategy: + fail-fast: false matrix: - gemfile: - - gemfiles/decidim_0.26.gemfile - - gemfiles/decidim_0.27.gemfile - ruby: - - 2.7.5 - - 3.0.2 - exclude: - - gemfile: gemfiles/decidim_0.26.gemfile - ruby: 3.0.2 - - gemfile: gemfiles/decidim_0.27.gemfile - ruby: 2.7.5 - - gemfile: gemfiles/decidim_0.27.gemfile - ruby: 3.0.2 - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 1 - - - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - bundler-cache: true - - - name: Setup Database - run: bundle exec rake test_app - - - name: Run RSpec - run: bundle exec rspec --exclude-pattern "spec/i18n_spec.rb" - env: - SIMPLECOV: 1 - CODECOV: 1 - - - uses: actions/upload-artifact@v2-preview - if: always() - with: - name: screenshots - path: ./spec/decidim_dummy_app/tmp/screenshots \ No newline at end of file + folder: + - "spec/accountability" + - "spec/budgets" + - "spec/commands" + - "spec/elections" + - "spec/forms" + - "spec/models" + - "spec/proposals/cells" + - "spec/proposals/commands" + - "spec/proposals/controllers" + - "spec/proposals/events" + - "spec/proposals/forms" + - "spec/proposals/helpers" + - "spec/proposals/lib" + - "spec/proposals/models" + - "spec/proposals/permissions" + - "spec/proposals/presenters" + - "spec/proposals/queries" + - "spec/proposals/services" + - "spec/proposals/system" + - "spec/proposals/types" + - "spec/sortitions" + - "spec/system" + uses: ./.github/workflows/test_app.yml + secrets: inherit + name: Testing ${{ matrix.folder }} + with: + folder: ${{ matrix.folder }} diff --git a/.github/workflows/test_app.yml b/.github/workflows/test_app.yml new file mode 100644 index 0000000..c468ef0 --- /dev/null +++ b/.github/workflows/test_app.yml @@ -0,0 +1,68 @@ +on: + workflow_call: + inputs: + folder: + required: true + type: string + +jobs: + test-report: + runs-on: ubuntu-20.04 + + services: + postgres: + image: postgres:11 + ports: ["5432:5432"] + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + POSTGRES_PASSWORD: postgres + env: + DATABASE_USERNAME: postgres + DATABASE_PASSWORD: postgres + DATABASE_HOST: localhost + BUNDLE_GEMFILE: ${{ matrix.gemfile }} + RUBY_VERSION: ${{ matrix.ruby }} + + strategy: + matrix: + gemfile: + - gemfiles/decidim_0.26.gemfile + - gemfiles/decidim_0.27.gemfile + ruby: + - 2.7.5 + - 3.0.2 + exclude: + - gemfile: gemfiles/decidim_0.26.gemfile + ruby: 3.0.2 + - gemfile: gemfiles/decidim_0.27.gemfile + ruby: 2.7.5 + - gemfile: gemfiles/decidim_0.27.gemfile + ruby: 3.0.2 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + + - name: Setup Database + run: bundle exec rake test_app + + - name: Run RSpec + run: bundle exec rspec ${{ inputs.folder }} + env: + SIMPLECOV: 1 + CODECOV: 1 + + - uses: actions/upload-artifact@v2-preview + if: always() + with: + name: screenshots + path: ./spec/decidim_dummy_app/tmp/screenshots \ No newline at end of file