Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"$schema": "https://unpkg.com/@changesets/config@1.6.4/schema.json",
"$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"linked": [],
"access": "restricted",
"access": "public",
"baseBranch": "master",
"updateInternalDependencies": "patch",
"ignore": []
}
}
5 changes: 5 additions & 0 deletions .changeset/real-seals-impress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@aiou/monorepo-template": patch
---

MVP release
3 changes: 3 additions & 0 deletions .czrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"path": "node_modules/cz-emoji"
}
3 changes: 0 additions & 3 deletions .eslintrc

This file was deleted.

36 changes: 27 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Node.js CI
on:
push:
pull_request:
branches: [master,release]
branches: [master, release]

jobs:
test:
Expand All @@ -12,22 +12,40 @@ jobs:

strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
node-version: [18.x, 20.x]

steps:
- name: checkout code repository
uses: actions/checkout@v2
- name: Checkout code repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install pnpm
run: npm i pnpm@latest -g
- name: Install
# Install pnpm depends on package.json packageManager field
- uses: pnpm/action-setup@v2
name: Install pnpm
id: pnpm-install
with:
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install
run: |
pnpm install --frozen-lockfile=false
# - name: Build
# run: |
# pnpm build
- name: Test
run: |
pnpm test
pnpm test
46 changes: 33 additions & 13 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,53 @@ on:
branches:
- main
- master
- 'releases/*'
- "releases/*"
env:
CI: true
jobs:
version:
release:
timeout-minutes: 15
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
pull-requests: write
steps:
- name: checkout code repository
uses: actions/checkout@v2
- name: Checkout code repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@v2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 14
- name: install pnpm
run: npm i pnpm@latest -g
- name: install dependencies
run: pnpm install --frozen-lockfile=false
node-version: 18
# Install pnpm depends on package.json packageManager field
- uses: pnpm/action-setup@v2
name: Install pnpm
id: pnpm-install
with:
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install
run: |
pnpm install --frozen-lockfile=false
- name: create and publish versions
uses: changesets/action@master
uses: changesets/action@v1
with:
version: pnpm ci:version
commit: "chore: update versions"
title: "chore: update versions"
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
66 changes: 51 additions & 15 deletions .github/workflows/snapshot-release.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,70 @@
name: Release
name: Snapshot Release
on:
push:
paths:
- ".changeset/**"
branches:
- snapshot
pull_request:
paths:
- ".changeset/**"
branches: [master, main, release]
env:
CI: true
jobs:
version:
timeout-minutes: 15
snapshot-release:
# Only repo owner can publish snapshot version when create pr target master
if: ${{ github.triggering_actor == github.repository_owner }}
runs-on: ubuntu-latest
steps:
- name: checkout code repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: 14
- name: install pnpm
run: npm i pnpm@latest -g
node-version: 18
- uses: pnpm/action-setup@v2
name: Install pnpm
id: pnpm-install
with:
run_install: false
- name: get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: install dependencies
run: pnpm install --frozen-lockfile=false
- name: Creating .npmrc
run: |
cat << EOF > "$HOME/.npmrc"
//registry.npmjs.org/:_authToken=$NPM_TOKEN
EOF
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# enable it if develop swc plugin
# - name: install Rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# - name: install wasm target
# shell: bash
# run: |
# rustup target add wasm32-wasi
- name: create and publish versions
uses: changesets/action@master
with:
version: pnpm ci:snapshot
commit: "chore: update versions"
title: "chore: update versions"
publish: pnpm ci:prerelease
run: |
pnpm ci:snapshot
pnpm changeset pre enter snapshot
pnpm ci:prerelease
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

pnpx lint-staged
pnpm lint-staged
11 changes: 11 additions & 0 deletions .husky/pre-merge
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

check_run() {
if [ $(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD | grep -c "package.json") -gt 0 ]
then
pnpm install
fi
}

check_run
7 changes: 7 additions & 0 deletions .lintstagedrc.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export default {
'**/**/*.{js,ts,tsx,vue,yaml,yml,json,md}': ['eslint --fix'],
// Lint Markdown files with remark
'**/**/README.md': filenames => [
`remark ${filenames.join(' ')} -o`,
],
}
3 changes: 3 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
const { aiou } = require('@aiou/eslint-config')

module.exports = aiou({ ssr: false })
41 changes: 21 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
{
"name": "@aiou/monorepo-template",
"version": "1.0.0",
"packageManager": "pnpm@9.15.2",
"description": "monorepo template",
"keywords": [
"monorepo",
"template",
"neo"
],
"license": "MIT",
"engines": {
"node": ">=18"
},
"homepage": "https://github.com/neo-hack/monorepo-template#readme",
"repository": {
"type": "git",
Expand All @@ -20,35 +24,32 @@
"name": "jiangweixian"
},
"scripts": {
"lint": "eslint '**/*.{js,ts,tsx,json}'",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"build": "pnpm build -r",
"build": "pnpm -r build",
"ci:version": "pnpm changeset version",
"ci:publish": "pnpm run build && pnpm changeset publish",
"ci:snapshot": "pnpx changeset version --snapshot beta",
"ci:prerelease": "pnpm run build && pnpx changeset publish --tag beta",
"ci:snapshot": "pnpm changeset version --snapshot snapshot",
"ci:prerelease": "pnpm run build && pnpm changeset publish --no-git-tag --snapshot",
"prepare": "husky install",
"test": "pnpm jest -r"
"test": "pnpm -r vitest"
},
"lint-staged": {
"**/**/*.{js,ts,tsx,vue,json}": [
"eslint --fix"
]
"**/**/*.{js,ts,tsx,json,yml,yaml,md}": ["eslint --fix"]
},
"devDependencies": {
"@aiou/eslint-config": "^0.4.0",
"@changesets/cli": "latest",
"@aiou/eslint-config": "^1.2.1",
"@aiou/remark-config": "0.2.0",
"@changesets/cli": "^2.26.0",
"@tsconfig/node18": "^18.2.4",
"@types/node": "^18",
"cz-emoji": "^1.3.1",
"eslint": "^8.6.0",
"eslint": "^8.56.0",
"fs-extra": "^10.0.0",
"husky": "^7.0.0",
"lint-staged": "^12.1.7",
"prettier": "^2.5.1",
"typescript": "^4.5.5"
},
"config": {
"commitizen": {
"path": "cz-emoji"
}
"husky": "^8.0.3",
"lint-staged": "^13.1.0",
"remark": "^15.0.1",
"remark-cli": "^11.0.0",
"typescript": "5.7.3"
}
}
Loading