Skip to content

refactor: switch to a monorepo structure WIP #12

refactor: switch to a monorepo structure WIP

refactor: switch to a monorepo structure WIP #12

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# This job installs dependencies once and caches them.
build:
runs-on: ubuntu-latest
outputs:
yarn-types-cache-key: ${{ steps.restore-yarn-types.outputs.cache-primary-key }}
nc-cache-key: ${{ steps.restore-nc.outputs.cache-primary-key }}
steps:
- uses: actions/checkout@v4
- name: Enable Corepack
shell: bash
run: corepack enable
- name: Restore Yarn Cache & Types
id: restore-yarn-types
uses: actions/cache/restore@v4
with:
path: |
**/node_modules
${{ github.workspace }}/.yarn/install-state.gz
${{ github.workspace }}/src/types
key: ${{ runner.os }}-web-core-modules-${{ hashFiles('**/package.json', '**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-web-core-modules-
- name: Restore Nextjs/Cypress Cache
id: restore-nc
uses: actions/cache/restore@v4
with:
path: |
${{ github.workspace }}/.next/cache
/home/runner/.cache/Cypress
key: ${{ runner.os }}-nextjs-cypress-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/yarn.lock') }}-
- name: Yarn install & after-install generate types
if: steps.restore-yarn-types.outputs.cache-hit != 'true'
run: |
yarn install --immutable
yarn after-install
- name: Save Yarn Cache
uses: actions/cache/save@v4
with:
path: |
**/node_modules
${{ github.workspace }}/.yarn/install-state.gz
${{ github.workspace }}/src/types
key: ${{ steps.restore-yarn-types.outputs.cache-primary-key }}
- name: Save Nextjs/Cypress Cache
uses: actions/cache/save@v4
with:
path: |
${{ github.workspace }}/.next/cache
/home/runner/.cache/Cypress
key: ${{ steps.restore-nc.outputs.cache-primary-key }}
eslint:
needs: build
permissions:
checks: write
pull-requests: read
statuses: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Restore Yarn Cache
uses: actions/cache/restore@v4
with:
path: |
**/node_modules
${{ github.workspace }}/.yarn/install-state.gz
key: ${{ needs.build.outputs.yarn-types-cache-key }}
- uses: CatChen/[email protected]
with:
request-changes: true # optional
fail-check: true # optional
github-token: ${{ secrets.GITHUB_TOKEN }} # optional
directory: './' # optional
targets: 'src' # optional
config-path: './eslint.config.mjs'
test:
needs: build
permissions:
contents: read
checks: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Enable Corepack
shell: bash
run: corepack enable
- name: Restore Yarn Cache
uses: actions/cache/restore@v4
with:
path: |
**/node_modules
${{ github.workspace }}/.yarn/install-state.gz
${{ github.workspace }}/src/types
key: ${{ needs.build.outputs.yarn-types-cache-key }}
- name: Annotations and coverage report
uses: ArtiomTr/[email protected]
with:
skip-step: install
annotations: failed-tests
package-manager: yarn
test-script: yarn test:ci
github-token: ${{ secrets.GITHUB_TOKEN }}