Skip to content

Vite + fix canary and beta ci jobs #545

Vite + fix canary and beta ci jobs

Vite + fix canary and beta ci jobs #545

Workflow file for this run

name: CI
on:
push:
branches:
- main
- master
pull_request: {}
jobs:
build_matrix:
name: "Build Matrix"
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version-file: package.json
cache: pnpm
- id: set-matrix
run: |
echo "matrix=$(pnpm dlx @embroider/try list)" >> $GITHUB_OUTPUT
working-directory: test-app
# We do this so we ensure that we test with the same
# assets each time.
# (And don't have build or use prepare each phase of ci,
# (saving water, hopefully))
build_addon:
name: "Build Addon"
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: wyvox/action-setup-pnpm@v3
- run: pnpm build
- uses: actions/upload-artifact@v4
with:
name: dist
path: |
addon/dist/
addon/declarations/
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 20
needs: [build_addon]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: wyvox/action-setup-pnpm@v3
- uses: actions/download-artifact@v4
with:
name: dist
path: addon
- name: Lint
run: pnpm lint
test:
name: Tests
runs-on: ${{ matrix.os }}
timeout-minutes: 20
needs: [build_addon]
strategy:
matrix:
os: [ubuntu-latest]
browser: [chrome, firefox]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: wyvox/action-setup-pnpm@v3
- uses: actions/download-artifact@v4
with:
name: dist
path: addon
- name: Test
run: pnpm test:ember
env:
CI_BROWSER: ${{ matrix.browser }}
working-directory: test-app
floating-dependencies:
name: Floating Dependencies
runs-on: ${{ matrix.os }}
timeout-minutes: 20
needs: lint
strategy:
matrix:
os: [ubuntu-latest]
browser: [chrome, firefox]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: wyvox/action-setup-pnpm@v3
with:
pnpm-args: "--no-lockfile"
- uses: actions/download-artifact@v4
with:
name: dist
path: addon
- name: Test
run: pnpm test:ember
env:
CI_BROWSER: ${{ matrix.browser }}
working-directory: test-app
typecheck:
name: "${{ matrix.typescript-scenario }}"
needs: [test]
runs-on: ubuntu-latest
timeout-minutes: 2
continue-on-error: true
strategy:
fail-fast: false
matrix:
typescript-scenario:
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- typescript@next
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- uses: actions/download-artifact@v4
with:
name: dist
path: addon
- name: "test-types : ${{ matrix.typescript-scenario }}"
working-directory: ./test-types
run: "pnpm add --save-dev ${{ matrix.typescript-scenario}}"
- name: "docs : ${{ matrix.typescript-scenario }}"
working-directory: ./docs
run: "pnpm add --save-dev ${{ matrix.typescript-scenario}}"
- name: "test-types"
working-directory: ./test-types
run: |
pnpm tsc -v
pnpm tsc --noEmit
- name: "Glint in the docs app"
working-directory: ./docs
run: |
pnpm tsc -v
pnpm ember-tsc --version
pnpm ember-tsc
try-scenarios:
runs-on: ubuntu-latest
timeout-minutes: 20
continue-on-error: ${{ matrix.allow-failure }}
needs: [test, build_matrix]
strategy:
fail-fast: false
matrix: ${{fromJson(needs.build_matrix.outputs.matrix)}}
name: "${{ matrix.name }}"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version-file: package.json
cache: pnpm
- run: pnpm dlx @embroider/try apply ${{ matrix.name }}
working-directory: test-app
- run: pnpm install --no-lockfile --ignore-scripts
- uses: actions/download-artifact@v4
with:
name: dist
path: addon
- run: pnpm test:ember
env: ${{ matrix.env }}
working-directory: test-app
docs:
name: Docs app
runs-on: ubuntu-latest
timeout-minutes: 20
needs: test
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: wyvox/action-setup-pnpm@v3
- uses: actions/download-artifact@v4
with:
name: dist
path: addon
- name: Test
run: pnpm test:ember
working-directory: docs