update dependencies #591
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: [push, pull_request, workflow_dispatch] | |
| concurrency: | |
| group: '${{ github.workflow }} - ${{ github.head_ref || github.ref }}' | |
| cancel-in-progress: true | |
| jobs: | |
| check-lint-and-formatting: | |
| name: Check lint and formatting with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [22, latest] | |
| os: [ubuntu-latest] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js ${{ matrix.node-version }} and Install dependencies on ${{ matrix.os }} | |
| uses: ./.github/actions/prepare | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Check for duplicate packages | |
| run: yarn dedupe --check --strategy highest | |
| - name: Check formatting | |
| run: yarn workspaces foreach -Ap -j unlimited run format-check | |
| - name: Lint files | |
| run: yarn workspaces foreach -Ap -j unlimited run lint | |
| test-types: | |
| name: Test types with TypeScript ${{ matrix.ts }} on ${{ matrix.os }} and Node.js ${{ matrix.node-version }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [22, latest] | |
| os: [ubuntu-latest] | |
| ts: [5.3, 5.4, 5.5, 5.6, 5.7, 5.8] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js ${{ matrix.node-version }} and Install dependencies on ${{ matrix.os }} | |
| uses: ./.github/actions/prepare | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install TypeScript ${{ matrix.ts }} | |
| run: yarn up typescript@${{ matrix.ts }} | |
| - name: Run type tests | |
| run: yarn workspaces foreach -Ap -j unlimited run test-types | |
| build: | |
| name: Build ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [20, 22, latest] | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| package: | |
| [ | |
| { directory: 'eslint', name: '@aryaemami59/eslint-config' }, | |
| { directory: 'prettier', name: '@aryaemami59/prettier-config' }, | |
| { directory: 'typescript', name: '@aryaemami59/tsconfig' }, | |
| { directory: 'vitest', name: '@aryaemami59/vitest-config' }, | |
| ] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js ${{ matrix.node-version }} and Install dependencies on ${{ matrix.os }} | |
| uses: ./.github/actions/prepare | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Pack ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| working-directory: packages/${{ matrix.package.directory }} | |
| id: pack | |
| run: yarn pack | |
| - name: Upload artifact ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| uses: actions/upload-artifact@v4 | |
| id: artifact-upload-step | |
| with: | |
| name: ${{ matrix.package.directory }}-${{ matrix.node-version }}-${{ matrix.os }} | |
| path: packages/${{ matrix.package.directory }}/package.tgz | |
| - name: Did we fail? | |
| if: failure() | |
| run: ls -R packages/${{ matrix.package.directory }} | |
| test: | |
| name: Test ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| needs: [build] | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [20, 22, latest] | |
| package: | |
| [ | |
| { directory: 'eslint', name: '@aryaemami59/eslint-config' }, | |
| { directory: 'prettier', name: '@aryaemami59/prettier-config' }, | |
| { directory: 'typescript', name: '@aryaemami59/tsconfig' }, | |
| { directory: 'vitest', name: '@aryaemami59/vitest-config' }, | |
| ] | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js ${{ matrix.node-version }} and Install dependencies on ${{ matrix.os }} | |
| uses: ./.github/actions/prepare | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Download build artifact for ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: ${{ matrix.package.directory }}-${{ matrix.node-version }}-${{ matrix.os }} | |
| path: examples/${{ matrix.package.directory }} | |
| - name: Display folder structure of examples/${{ matrix.package.directory }} | |
| run: ls -R examples/${{ matrix.package.directory }} | |
| - name: Install build artifact for ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| working-directory: examples/${{ matrix.package.directory }} | |
| run: yarn add -D ./package.tgz | |
| - name: Test examples for ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| working-directory: examples/${{ matrix.package.directory }} | |
| run: yarn test | |
| - name: Did we fail? | |
| if: failure() | |
| run: | | |
| yarn why ${{ matrix.package.name }} | |
| ls -R | |
| are-the-types-wrong: | |
| name: Check if the type definitions for ${{ matrix.package.name }} are correct with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| needs: [build] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [22, latest] | |
| package: | |
| [ | |
| { directory: 'eslint', name: '@aryaemami59/eslint-config' }, | |
| { directory: 'prettier', name: '@aryaemami59/prettier-config' }, | |
| { directory: 'typescript', name: '@aryaemami59/tsconfig' }, | |
| { directory: 'vitest', name: '@aryaemami59/vitest-config' }, | |
| ] | |
| os: [ubuntu-latest] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js ${{ matrix.node-version }} and Install dependencies on ${{ matrix.os }} | |
| uses: ./.github/actions/prepare | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Download build artifact for ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: ${{ matrix.package.directory }}-${{ matrix.node-version }}-${{ matrix.os }} | |
| path: packages/${{ matrix.package.directory }} | |
| - name: Display folder structure | |
| run: ls -l . | |
| - name: Run are-the-types-wrong for ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| run: yarn attw packages/${{ matrix.package.directory }}/package.tgz --format table | |
| - name: Did we fail? | |
| if: failure() | |
| run: ls -R | |
| publint: | |
| name: Check if the package.json for ${{ matrix.package.name }} is correct with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| needs: [build] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [22, latest] | |
| package: | |
| [ | |
| { directory: 'eslint', name: '@aryaemami59/eslint-config' }, | |
| { directory: 'prettier', name: '@aryaemami59/prettier-config' }, | |
| { directory: 'typescript', name: '@aryaemami59/tsconfig' }, | |
| { directory: 'vitest', name: '@aryaemami59/vitest-config' }, | |
| ] | |
| os: [ubuntu-latest] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js ${{ matrix.node-version }} and Install dependencies on ${{ matrix.os }} | |
| uses: ./.github/actions/prepare | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Download build artifact for ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: ${{ matrix.package.directory }}-${{ matrix.node-version }}-${{ matrix.os }} | |
| path: packages/${{ matrix.package.directory }} | |
| - name: Display folder structure | |
| run: ls -l . | |
| - name: Run publint for ${{ matrix.package.name }} with Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
| run: yarn packages/${{ matrix.package.directory }} run publint --strict ./package.tgz | |
| - name: Did we fail? | |
| if: failure() | |
| run: ls -R |