diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ba5974f..d293a857 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,42 +4,87 @@ on: push: branches: - main - tags: - - '*' - pull_request: + pull_request: {} + merge_group: + types: [checks_requested] + +concurrency: + group: ci-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +env: + CI: true + dist: ember-apache-echarts/dist jobs: - test: - name: Tests + install_dependencies: + name: Install runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - - name: Setup node.js - uses: actions/setup-node@v4 + - uses: wyvox/action-setup-pnpm@v3 with: - node-version: 20 - cache: 'pnpm' - - name: Setup pnpm cache - uses: actions/cache@v4 + node-version: 18.18.1 + + lint: + name: Lint + runs-on: ubuntu-latest + needs: [install_dependencies] + steps: + - uses: actions/checkout@v4 + - uses: wyvox/action-setup-pnpm@v3 with: - path: | - node_modules - */node_modules - key: node_modules-${{runner.os}}-${{hashFiles('**/pnpm-lock.yaml')}}-v2 - - name: Install dependencies - run: CI=true pnpm i --frozen-lockfile + node-version: 18.18.1 - name: Lint run: pnpm lint - - name: Test - run: pnpm test + + + build: + name: Build Tests + needs: [install_dependencies] + timeout-minutes: 5 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: wyvox/action-setup-pnpm@v3 + with: + node-version: 18.18.1 + - uses: ./.github/actions/assert-build + + default_tests: + name: Default Tests + timeout-minutes: 5 + runs-on: ubuntu-latest + needs: [build] + steps: + - uses: actions/checkout@v4 + - uses: wyvox/action-setup-pnpm@v3 + with: + node-version: 18.18.1 + - uses: ./.github/actions/download-built-package + - run: pnpm --filter test-app test:ember + + floating_tests: + name: Floating Deps Test + timeout-minutes: 5 + runs-on: ubuntu-latest + needs: [build] + steps: + - uses: actions/checkout@v4 + - uses: wyvox/action-setup-pnpm@v3 + with: + node-version: 18.18.1 + args: '--no-lockfile' + - uses: ./.github/actions/download-built-package + - run: pnpm i -f + - run: pnpm --filter test-app test:ember + try_scenarios: name: ${{ matrix.try-scenario }} timeout-minutes: 5 runs-on: ubuntu-latest - needs: [test] + needs: [default_tests] strategy: fail-fast: false @@ -50,6 +95,7 @@ jobs: - ember-4.4 - ember-4.8 - ember-4.12 + - ember-5.4 - ember-release - ember-beta - ember-canary @@ -57,23 +103,33 @@ jobs: - embroider-optimized steps: - - uses: pnpm/action-setup@v4 - - name: Setup node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - name: Setup pnpm cache - uses: actions/cache@v4 + - uses: actions/checkout@v4 + - uses: wyvox/action-setup-pnpm@v3 with: - path: | - node_modules - */node_modules - key: node_modules-${{runner.os}}-${{hashFiles('**/pnpm-lock.yaml')}}-v2 - - name: Install dependencies - run: CI=true pnpm i --frozen-lockfile - - name: Test + node-version: 18.18.1 + - uses: ./.github/actions/download-built-package + - name: Run Tests + working-directory: ./test-app run: >- node_modules/.bin/ember try:one ${{ matrix.try-scenario }} --skip-cleanup - working-directory: ./test-app + + MeasureAssetSizes: + name: Measure Asset Sizes + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + - uses: wyvox/action-setup-pnpm@v3 + with: + node-version: 18.18.1 + - uses: ./.github/actions/download-built-package + - name: measure asset sizes + run: node ./dev/estimate-bytes/index.js + - name: comment on PR + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: asset-sizes + path: ./dev/estimate-bytes/comment.txt