-
Notifications
You must be signed in to change notification settings - Fork 110
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
RSamaium
committed
Dec 15, 2024
1 parent
0475239
commit f04d65d
Showing
1 changed file
with
87 additions
and
15 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,101 @@ | ||
name: CanvasEngine CI | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- '*' | ||
- "*" | ||
paths-ignore: | ||
- 'docs/**' | ||
- "docs/**" | ||
pull_request: | ||
branches: | ||
- '*' | ||
- "*" | ||
paths-ignore: | ||
- 'docs/**' | ||
- "docs/**" | ||
|
||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
matrix: | ||
node-version: [20.x] | ||
node-version: [20] | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: 'npm' | ||
- run: npm i | ||
- run: npm test | ||
- uses: actions/checkout@v4 | ||
- name: Install pnpm | ||
uses: pnpm/action-setup@v4 | ||
with: | ||
version: 9 | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: "pnpm" | ||
- name: Install dependencies | ||
run: pnpm install | ||
- name: Build | ||
run: pnpm build | ||
- name: Run Tests | ||
run: pnpm test | ||
|
||
build_and_publish: | ||
needs: tests | ||
if: github.ref == 'refs/heads/v2' | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
node-version: [lts/*] | ||
pnpm-version: [latest] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: ⬇️ Checkout | ||
id: checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: 🟢 Setup node | ||
id: setup-node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: 🥡 Setup pnpm | ||
id: setup-pnpm | ||
uses: pnpm/action-setup@v4 | ||
with: | ||
version: ${{ matrix.pnpm-version }} | ||
run_install: false | ||
|
||
- name: 🎈 Get pnpm store directory | ||
id: get-pnpm-cache-dir | ||
run: | | ||
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" | ||
- name: 🔆 Cache pnpm modules | ||
uses: actions/cache@v4 | ||
id: pnpm-cache | ||
with: | ||
path: ${{ steps.get-pnpm-cache-dir.outputs.pnpm_cache_dir }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: 🧩 Install Dependencies | ||
id: install-dependencies | ||
run: pnpm install | ||
|
||
- name: 🏗️ Build | ||
id: build-the-mono-repo | ||
run: | | ||
pnpm build | ||
- name: 📣 Create Release Pull Request or Publish to npm | ||
id: changesets | ||
uses: changesets/action@v1 | ||
with: | ||
title: "chore(release): version packages 🦋" | ||
publish: pnpm publish:packages | ||
version: pnpm version:packages | ||
commit: "chore(release): version packages 🦋 [skip ci]" | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |