Skip to content

Update/project deps #3214

Update/project deps

Update/project deps #3214

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
paths-ignore:
- "**.md"
- scripts/**
- blog/**
- docs/**
- .github/**
- "!.github/workflows/ci.yml"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 3
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: pnpm/[email protected]
with:
version: ^8.0.0
run_install: true
- name: Use latest version of Node.j
uses: actions/setup-node@v4
with:
node-version: "*"
cache: "pnpm"
- name: Run lint
run: "pnpm lint"
types:
name: Check Types
runs-on: ubuntu-latest
timeout-minutes: 3
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: pnpm/[email protected]
with:
version: ^8.0.0
run_install: true
- name: Use latest version of Node.j
uses: actions/setup-node@v4
with:
node-version: "*"
cache: "pnpm"
- name: check types
run: pnpm check-types
unit-test:
name: Unit Test
timeout-minutes: 3
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: pnpm/[email protected]
with:
version: ^8.0.0
run_install: true
- name: Use latest version of Node.j
uses: actions/setup-node@v4
with:
node-version: "*"
cache: "pnpm"
- name: Run Test
run: CI=true pnpm jest --coverage
e2e-same-container-vertical:
name: One Container Vertically - Chrome
runs-on: ubuntu-latest
timeout-minutes: 20
if: github.repository_owner == 'dflex-js' && github.event.pull_request.draft != true
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: pnpm/[email protected]
with:
version: ^8.0.0
run_install: true
- name: Use latest version of Node.j
uses: actions/setup-node@v4
with:
node-version: "*"
cache: "pnpm"
- name: Build packages
run: "pnpm clean && pnpm bundle-types && pnpm build --production --release --minify"
- name: Building Vite DnD React App
run: pnpm -F dflex-dnd-playground build --mode CI
- name: Testing features for DnD with React APP - Chrome
run: pnpm test-e2e-vertical:chrome
e2e-multi-containers:
name: Multiple Containers - Chrome
runs-on: ubuntu-latest
timeout-minutes: 20
if: github.repository_owner == 'dflex-js' && github.event.pull_request.draft != true
# needs: install-build
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: pnpm/[email protected]
with:
version: ^8.0.0
run_install: true
- name: Use latest version of Node.j
uses: actions/setup-node@v4
with:
node-version: "*"
cache: "pnpm"
- name: Build packages
run: "pnpm clean && pnpm bundle-types && pnpm build --production --release --minify"
- name: Building Vite DnD React App
run: pnpm -F dflex-dnd-playground build --mode CI
- name: Testing features for DnD with React APP - Chrome
run: pnpm test-e2e-multi:chrome
e2e-linux:
runs-on: ubuntu-latest
timeout-minutes: 20
if: github.repository_owner == 'dflex-js' && github.event.pull_request.draft != true
strategy:
matrix:
node-version: ['21.x']
browser: ["chromium", "firefox"]
bundle: ["production"]
env:
CI: true
PACKAGE_BUNDLE: ${{ matrix.bundle }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: pnpm/[email protected]
name: Install pnpm
id: pnpm-install
with:
version: ^8.0.0
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build packages
if: matrix.bundle == 'production'
run: "pnpm build --production --release --minify"
- name: Building Vite DnD React App
run: pnpm -F dflex-dnd-playground build --mode CI
- name: Install browsers
run: pnpm exec playwright install
- name: Test Playwright
run: pnpm run test-e2e-ci:${{ matrix.browser }}
e2e-windows:
runs-on: windows-latest
timeout-minutes: 20
if: github.repository_owner == 'dflex-js' && github.event.pull_request.draft != true
strategy:
matrix:
node-version: ['21.x']
browser: ["chromium", "firefox"]
bundle: ["production"]
env:
CI: true
PACKAGE_BUNDLE: ${{ matrix.bundle }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: pnpm/[email protected]
name: Install pnpm
id: pnpm-install
with:
version: ^8.0.0
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build packages
if: matrix.bundle == 'production'
run: "pnpm build --production --release --minify"
- name: Building Vite DnD React App
run: pnpm -F dflex-dnd-playground build --mode CI
- name: Install browsers
run: pnpm exec playwright install
- name: Test Playwright
run: pnpm run test-e2e-ci:${{ matrix.browser }}
e2e-mac:
runs-on: macos-latest
timeout-minutes: 20
strategy:
matrix:
node-version: ['21.x']
browser: ["chromium", "firefox", "webkit"]
bundle: ["production", "development"]
env:
CI: true
PACKAGE_BUNDLE: ${{ matrix.bundle }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: pnpm/[email protected]
name: Install pnpm
id: pnpm-install
with:
version: ^8.0.0
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build packages
if: matrix.bundle == 'production'
run: "pnpm build --production --release --minify"
- name: Building Vite DnD React App
run: pnpm -F dflex-dnd-playground build --mode CI
- name: Install browsers
run: pnpm exec playwright install
- name: Test Playwright
run: pnpm run test-e2e-ci:${{ matrix.browser }}
e2e-persisted-store:
runs-on: macos-latest
timeout-minutes: 20
strategy:
matrix:
node-version: ['21.x']
browser: ["chromium"]
bundle: ["development"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: pnpm/[email protected]
name: Install pnpm
id: pnpm-install
with:
version: ^8.0.0
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build packages
if: matrix.bundle == 'production'
run: "pnpm build --production --release --minify"
- name: Install browsers
run: pnpm exec playwright install
- name: Test Playwright
run: pnpm run test-e2e-next:${{ matrix.browser }}
e2e-draggable-only:
runs-on: macos-latest
timeout-minutes: 20
strategy:
matrix:
node-version: ['21.x']
browser: ["chromium"]
bundle: ["development"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: pnpm/[email protected]
name: Install pnpm
id: pnpm-install
with:
version: ^8.0.0
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build packages
if: matrix.bundle == 'production'
run: "pnpm build --production --release --minify"
- name: Building Vite Draggable React App
run: pnpm -F dflex-draggable-playground build
- name: Install browsers
run: pnpm exec playwright install
- name: Test Playwright
run: pnpm run test-e2e-ci-draggable:${{ matrix.browser }}
release:
name: Publish to NPM
if: ${{ github.ref_name == 'main' && github.repository_owner == 'dflex-js' }}
runs-on: ubuntu-latest
needs:
[
lint,
unit-test,
types,
e2e-same-container-vertical,
e2e-multi-containers,
e2e-mac,
e2e-windows,
e2e-linux,
e2e-persisted-store,
e2e-draggable-only,
]
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: pnpm/[email protected]
with:
version: ^8.0.0
run_install: true
- name: Use latest version of Node.j
uses: actions/setup-node@v4
with:
node-version: "*"
cache: "pnpm"
- name: Build packages for production
run: "pnpm clean && pnpm bundle-types && pnpm build --production --release --minify"
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
# This expects you to have a script called release which does a build for your packages and calls changeset publish
publish: pnpm -r publish
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}