name: "[CI] <%= component_module_name %>" on: push: branches: - develop - release/* - "*-stable" pull_request: branches-ignore: - "chore/l10n*" env: CI: "true" RUBY_VERSION: <%= RUBY_VERSION %> NODE_VERSION: 18.17.1 concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: main: name: Tests runs-on: ubuntu-latest timeout-minutes: 30 services: postgres: image: postgres:14 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 steps: - uses: actions/checkout@v3 with: fetch-depth: 1 - uses: ruby/setup-ruby@v1 with: bundler-cache: true - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} - name: Get npm cache directory path id: npm-cache-dir-path run: echo "dir=$(npm get cache)-<%= component_name %>" >> $GITHUB_OUTPUT - uses: actions/cache@v3 id: npm-cache with: path: ${{ steps.npm-cache-dir-path.outputs.dir }} key: npm-${{ hashFiles('**/package-lock.json') }} restore-keys: | npm- - run: bundle exec rake test_app name: Create test app - run: mkdir -p ./spec/decidim_dummy_app/tmp/screenshots name: Create the screenshots folder - uses: nanasess/setup-chromedriver@v2 - run: RAILS_ENV=test bundle exec rails assets:precompile name: Precompile assets working-directory: ./spec/decidim_dummy_app/ - run: bundle exec rspec name: RSpec - uses: codecov/codecov-action@v3 - uses: actions/upload-artifact@v3 if: always() with: name: screenshots path: ./spec/decidim_dummy_app/tmp/screenshots if-no-files-found: ignore