name: CI

on:
  pull_request:
  push:
    branches:
      - main
      - master
  schedule:
    - cron: "0 3 * * 0" # every Sunday at 3am

env:
  CI: true

jobs:
  tests:
    name: Base Tests
    timeout-minutes: 5
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: wyvox/action-setup-pnpm@v3
        with:
          node-version: 20.x
      - run: pnpm ember test

  lint:
    name: Lints
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - uses: wyvox/action-setup-pnpm@v3
        with:
          node-version: 20.x
      - run: pnpm lint:js
      - run: pnpm lint:hbs

  types:
    name: Type Checking
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - uses: wyvox/action-setup-pnpm@v3
        with:
          node-version: 20.x
      - run: pnpm prepack

  try-scenarios:
    name: "Compatibility"
    timeout-minutes: 7
    runs-on: ubuntu-latest
    needs: tests

    strategy:
      fail-fast: true
      matrix:
        ember-try-scenario:
          - ember-3.25
          - ember-3.28-lts
          - first-inert
          - ember-could-get-used-to-this
          - embroider-safe
          - embroider-optimized
    steps:
      - uses: actions/checkout@v4
      - uses: wyvox/action-setup-pnpm@v3
        with:
          node-version: 20.x
      - run: node_modules/.bin/ember try:one ${{ matrix.ember-try-scenario }} --skip-cleanup

