Skip to content

Commit

Permalink
Refactor e2e testing all the playground apps:
Browse files Browse the repository at this point in the history
- Improve install gem install options for pagy playground and apps
- Improve pnpm workspace
- Improve pagy-ci with node, pnpm install and cache
  • Loading branch information
ddnexus committed Apr 23, 2024
1 parent edcbcf7 commit 7b705d9
Show file tree
Hide file tree
Showing 36 changed files with 4,413 additions and 7,947 deletions.
60 changes: 35 additions & 25 deletions .github/workflows/pagy-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
branches: ['**']

jobs:

######################### Ruby #########################
ruby_check:
name: Ruby Check
continue-on-error: true
Expand All @@ -21,9 +21,9 @@ jobs:
with:
concurrent_skipping: 'never'
skip_after_successful_duplicate: 'true'
paths: '["gem/lib/**", "gem/locales/en.yml", ".simplecov", ".rubocop", "Rakefile", "test/**", "tasks/**"]'
paths: '[".github/workflows/pagy-ci.yml", "gem/lib/**", "gem/locales/en.yml", "Gemfile.lock", ".simplecov", ".rubocop", "Rakefile", "test/**", "tasks/**"]'
paths_ignore: '["**/*.md"]'
do_not_skip: '["workflow_dispatch", "schedule"]'
do_not_skip: '["workflow_dispatch"]'

ruby_test:
needs: ruby_check
Expand All @@ -34,26 +34,22 @@ jobs:
matrix:
ruby-version: ['3.1', '3.2', '3.3']
fail-fast: false

steps:
- uses: actions/checkout@v4

- name: Set up ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically

- name: Check Rubocop compliance
run: bundle exec rubocop --format github

- name: Check Tests
run: bundle exec rake test

- name: Check Coverage # fails unless 100%
run: bundle exec rake check_coverage


######################### E2E #########################
e2e_check:
name: E2E Check
continue-on-error: true
Expand All @@ -66,34 +62,48 @@ jobs:
with:
concurrent_skipping: 'never'
skip_after_successful_duplicate: 'true'
paths: '["gem/lib/**", "gem/locales/en.yml", "gem/javascripts/**", "e2e/**"]'
paths_ignore: '["**/*.md"]'
do_not_skip: '["workflow_dispatch", "schedule"]'
paths: '[".github/workflows/pagy-ci.yml", "gem/**", "e2e/**", "pnpm.lock.yaml"]'
paths_ignore: '["gem/config/**", "gem/locales/**", "!gem/locales/en.yml", "**/*.md"]'
do_not_skip: '["workflow_dispatch"]'

e2e_test:
needs: e2e_check
if: ${{ needs.e2e_check.outputs.should_skip != 'true' }}
name: E2E Test
name: E2E [${{ matrix.app }}] Test
runs-on: ubuntu-latest

strategy:
matrix:
app: ['demo', 'repro', 'rails']
fail-fast: false
steps:
- uses: actions/checkout@v4

- name: Set up ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true

- name: Install Cypress and Test Dependencies
working-directory: ./e2e
run: npm i

- name: Run Cypress Tests
uses: cypress-io/github-action@v6.6.0
- name: Install Pnpm
uses: pnpm/action-setup@v3
with:
version: 9 # optional because "packageManager" entry is set in package.json
- name: Install Node / Setup Pnpm Cache
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Setup Cypress Cache
uses: actions/cache@v4
with:
path: /home/runner/.cache/Cypress
key: ${{ runner.os }}-cypress-cache-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Cypress [${{ matrix.app }}] Test
uses: cypress-io/github-action@v6
with:
config: baseUrl=http://0.0.0.0:4567,video=false
start: bundle exec rackup -D -o 0.0.0.0 -p 4567 pagy_app.ru
working-directory: e2e
install: false
wait-on: http://0.0.0.0:4567
project: ./e2e
config: baseUrl=http://0.0.0.0:8080,video=false
start: ${{ github.workspace }}/gem/bin/pagy ${{ matrix.app }} -p 8080
wait-on: http://0.0.0.0:8080
spec: cypress/e2e/${{ matrix.app }}.cy.ts
4 changes: 0 additions & 4 deletions .github/workflows/retype-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,10 @@ on:
jobs:
publish:
name: Publish to docs-site branch

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: retypeapp/action-build@v3

- uses: retypeapp/action-github-pages@v3
with:
branch: docs-site
Expand Down
10 changes: 5 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
# that are quite a few and very useful not only for the author
/.idea/*
!/.idea/runConfigurations
/.retype/
/retype.manifest
/.bundle/
/.retype/
/coverage/
node_modules/
/gem/pkg/
/tmp/
pnpm
node_modules/
pnpm/
tmp/
/retype.manifest
.pnpm-debug.log

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/runConfigurations/e2e_test.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 0 additions & 12 deletions .idea/runConfigurations/pagy_app.xml

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/runConfigurations/repro.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@ end
group :playground do
gem 'puma'
gem 'rackup'
gem 'rails'
gem 'rerun'
gem 'rouge'
gem 'sinatra'
gem 'sinatra-contrib'
gem 'sqlite3', '~> 1.4.0' # actierecord/sqlite3_adapter.rb constraint !!!
end

# group :performance do
Expand Down
Loading

0 comments on commit 7b705d9

Please sign in to comment.