Skip to content

Lock file maintenance #414

Lock file maintenance

Lock file maintenance #414

Workflow file for this run

name: CI
on:
push:
branches:
- main
- master
pull_request: {}
concurrency:
group: ci-${{ github.head_ref || github.ref }}
cancel-in-progress: true
env:
TURBO_API: http://127.0.0.1:9080
TURBO_TOKEN: this-is-not-a-secret
TURBO_TEAM: myself
jobs:
setup:
name: 'Setup'
runs-on: ubuntu-latest
timeout-minutes: 10
outputs:
pending: ${{ steps.set-pending.outputs.pending }}
steps:
- uses: wyvox/action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: pnpm build
- id: set-pending
run: echo "pending=$(./cache-status.sh)" >> $GITHUB_OUTPUT
debug:
name: Debug
runs-on: ubuntu-latest
needs: [setup]
timeout-minutes: 5
steps:
- name: raw json
run: echo "${{ needs.setup.outputs.pending }}"
continue-on-error: true
- name: json
run: echo '${{ needs.setup.outputs.pending }}' | jq -C
continue-on-error: true
- name: test condition
run: echo '${{ fromJSON(needs.setup.outputs.pending).test-app.test.status }}'
continue-on-error: true
- name: types condition
run: echo "${{ fromJSON(needs.setup.outputs.pending).test-app['lint:types'].status }}"
continue-on-error: true
# Every PR will need linting. Turbo's cache can optimize per-package
lint:
name: Lint
runs-on: ubuntu-latest
needs: [setup]
timeout-minutes: 5
steps:
- uses: wyvox/action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: pnpm lint
test:
name: "Default Tests"
runs-on: ubuntu-latest
needs: [setup]
timeout-minutes: 5
if: ${{ fromJSON(needs.setup.outputs.pending).test-app.test.status != 'HIT' }}
steps:
- uses: wyvox/action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: pnpm turbo test --filter test-app
floating:
name: "Floating Dependencies"
runs-on: ubuntu-latest
needs: [test]
timeout-minutes: 5
if: ${{ fromJSON(needs.setup.outputs.pending).test-app.test.status != 'HIT' }}
steps:
- uses: wyvox/action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
pnpm-args: --no-lockfile
- run: pnpm build
- run: pnpm i -f
- run: pnpm turbo test --filter test-app
try-scenarios:
name: ${{ matrix.try-scenario }}
runs-on: ubuntu-latest
needs: [test]
timeout-minutes: 10
if: ${{ fromJSON(needs.setup.outputs.pending).test-app.test.status != 'HIT' }}
strategy:
fail-fast: false
matrix:
try-scenario:
- "ember-3.13"
- "ember-3.14"
- "ember-3.16"
- "ember-3.18"
- "ember-3.20"
- "ember-3.24"
- "ember-3.28"
- "ember-4.4"
- "ember-4.8"
- "ember-4.12"
- "ember-5.0"
- ember-release
- ember-beta
- ember-canary
steps:
- uses: wyvox/action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: pnpm build
- name: Run Tests
run: ./node_modules/.bin/ember try:one ${{ matrix.try-scenario }} --skip-cleanup
working-directory: test-app
# NOTE: Docs' types don't need checking because we check types in the
# Lint phase up above
# This job is for checking specific versions of typescript
typecheck:
name: '${{ matrix.typescript-scenario }}'
runs-on: ubuntu-latest
if: ${{ fromJSON(needs.setup.outputs.pending).test-app['lint:types'].status != 'HIT' }}
timeout-minutes: 5
needs: [test]
continue-on-error: true
strategy:
fail-fast: true
matrix:
typescript-scenario:
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- typescript@rc
- typescript@next
steps:
- uses: wyvox/action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: pnpm build
- run: pnpm i -f
- name: 'Change TS to ${{ matrix.typescript-scenario }}'
run: 'pnpm add --save-dev ${{ matrix.typescript-scenario}}'
working-directory: ./test-app
- name: 'Type checking'
run: pnpm turbo --filter 'test-app' lint:types