Merge pull request #2412 from tf/commenting-improvements #2422
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: tests | |
| on: [push, pull_request] | |
| env: | |
| RAILS_ENV: test | |
| PAGEFLOW_DB_HOST: mysql | |
| jobs: | |
| rspec: | |
| name: ${{ matrix.job }} (Rails ${{ matrix.rails-version }}) | |
| runs-on: ubuntu-latest | |
| container: ghcr.io/${{ github.repository }}/test:latest | |
| env: | |
| PAGEFLOW_RAILS_VERSION: ${{ matrix.rails-version }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| rails-version: ['~> 7.1.0', '~> 7.2.0'] | |
| job: | |
| - pageflow | |
| - pageflow_js | |
| - pageflow_paged | |
| - pageflow_scrolled | |
| - pageflow_scrolled_js | |
| include: | |
| - job: pageflow | |
| engine-name: pageflow | |
| engine-directory: . | |
| rspec-command: bin/rspec --tag ~js | |
| install-audiowaveform: true | |
| - job: pageflow_js | |
| engine-name: pageflow | |
| engine-directory: . | |
| rspec-command: bin/rspec-with-retry --tag js | |
| - job: pageflow_paged | |
| engine-name: pageflow_paged | |
| engine-directory: entry_types/paged | |
| plugin-name: pageflow_paged | |
| rspec-command: bin/rspec | |
| - job: pageflow_scrolled | |
| engine-name: pageflow_scrolled | |
| engine-directory: entry_types/scrolled | |
| plugin-name: pageflow_scrolled | |
| rspec-command: bin/rspec --tag ~js | |
| - job: pageflow_scrolled_js | |
| engine-name: pageflow_scrolled | |
| engine-directory: entry_types/scrolled | |
| plugin-name: pageflow_scrolled | |
| rspec-command: bin/rspec-with-retry-on-timeout --tag js | |
| services: | |
| mysql: | |
| image: mysql:5.7 | |
| env: | |
| MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
| ports: | |
| - 3306:3306 | |
| options: >- | |
| --health-cmd="mysqladmin ping" | |
| --health-interval=10s | |
| --health-timeout=5s | |
| --health-retries 5 | |
| redis: | |
| image: redis | |
| options: >- | |
| --health-cmd "redis-cli ping" | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Caching | |
| - name: Set up cache for Bundler | |
| uses: actions/cache@v4 | |
| with: | |
| path: vendor/bundle | |
| key: ${{ runner.os }}-gems-rails-${{ matrix.rails-version }}-${{ hashFiles('**/*.gemspec') }}-${{ hashFiles('**/Gemfile') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gems-rails-${{ matrix.rails-version }}- | |
| - name: Set up cache for Yarn | |
| uses: actions/cache@v4 | |
| with: | |
| path: .yarn-cache | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn- | |
| # Dependencies | |
| - name: Bundle install | |
| run: | | |
| bundle config path vendor/bundle | |
| bundle install --jobs 4 --retry 3 | |
| - name: Yarn install | |
| run: | | |
| yarn install --cache-folder .yarn-cache | |
| # Build | |
| - name: Build packages | |
| run: | | |
| bin/build-packages | |
| - name: Generate dummy app | |
| working-directory: ${{ matrix.engine-directory }} | |
| env: | |
| PAGEFLOW_PLUGIN_ENGINE: ${{ matrix.plugin-name }} | |
| run: | | |
| bin/rake ${{ matrix.engine-name }}:dummy | |
| - name: Precompile | |
| working-directory: ${{ matrix.engine-directory }} | |
| run: | | |
| WEBPACKER_PRECOMPILE=false SHAKAPACKER_PRECOMPILE=false bin/rake app:assets:precompile | |
| # Test | |
| - name: Run tests | |
| working-directory: ${{ matrix.engine-directory }} | |
| run: ${{ matrix.rspec-command }} | |
| jest: | |
| runs-on: ubuntu-latest | |
| container: ghcr.io/${{ github.repository }}/test:latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: pageflow | |
| package-directory: package | |
| - name: pageflow-paged | |
| package-directory: entry_types/paged/packages/pageflow-paged | |
| - name: pageflow-paged-react | |
| package-directory: entry_types/paged/packages/pageflow-paged-react | |
| - name: pageflow-scrolled | |
| package-directory: entry_types/scrolled/package | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up cache for Yarn | |
| uses: actions/cache@v4 | |
| with: | |
| path: .yarn-cache | |
| key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn- | |
| - name: Yarn install | |
| run: | | |
| yarn install --cache-folder .yarn-cache | |
| (cd entry_types/paged/packages/pageflow-paged-react; yarn install --cache-folder ../../../../.yarn-cache) | |
| - name: Build packages | |
| run: | | |
| yarn run build | |
| - name: Run ${{ matrix.name }} tests | |
| working-directory: ${{ matrix.package-directory }} | |
| run: | | |
| yarn test | |
| trigger-edge-build: | |
| if: ${{ github.ref == 'refs/heads/master' && github.repository == 'codevise/pageflow' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Trigger GitLab workflow | |
| run: | | |
| curl -X POST \ | |
| -F token=${{ secrets.GITLAB_WORKFLOW_TRIGGER_TOKEN }} \ | |
| -F ref=master \ | |
| https://gitlab.codevise.de/api/v4/projects/180/trigger/pipeline |