Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: refactoring project structure #227

Merged
merged 20 commits into from Mar 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
35 changes: 2 additions & 33 deletions .eslintrc.cjs
@@ -1,35 +1,4 @@
module.exports = {
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:vue/vue3-recommended",
"turbo",
"prettier",
],

// https://eslint.vuejs.org/user-guide/#how-to-use-a-custom-parser
parser: "vue-eslint-parser",
parserOptions: {
parser: "@typescript-eslint/parser",
},

plugins: ["@typescript-eslint", "vue", "prettier"],

rules: {
// Note: you must disable the base rule as it can report incorrect errors
semi: "off",
quotes: "off",
"no-undef": "off",
"vue/require-default-prop": "off",
"vue/no-deprecated-slot-attribute": "off",
"vue/component-definition-name-casing": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/no-this-alias": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-explicit-any": "off",
"turbo/no-undeclared-env-vars": "off",
"prettier/prettier": "error",
},
root: true,
extends: ["./node_modules/@terwer/eslint-config-custom/typescript/index.cjs"],
}
76 changes: 76 additions & 0 deletions .github/dependabot.yml
Expand Up @@ -19,6 +19,82 @@ updates:
- "npm dependencies"
- "npm"

- package-ecosystem: npm
directory: "/libs/zhi-picgo-core"
schedule:
interval: daily
time: "00:00"
open-pull-requests-limit: 10
reviewers:
- terwer
assignees:
- terwer
commit-message:
prefix: fix
prefix-development: chore
include: scope
labels:
- "npm dependencies"
- "npm"
- "picgo-core"

- package-ecosystem: npm
directory: "/libs/zhi-picgo-siyuan"
schedule:
interval: daily
time: "00:00"
open-pull-requests-limit: 10
reviewers:
- terwer
assignees:
- terwer
commit-message:
prefix: fix
prefix-development: chore
include: scope
labels:
- "npm dependencies"
- "npm"
- "picgo-siyuan"

- package-ecosystem: npm
directory: "/packages/picgo-plugin-bootstrap"
schedule:
interval: daily
time: "00:00"
open-pull-requests-limit: 10
reviewers:
- terwer
assignees:
- terwer
commit-message:
prefix: fix
prefix-development: chore
include: scope
labels:
- "npm dependencies"
- "npm"
- "bootstrap"

- package-ecosystem: npm
directory: "/packages/picgo-plugin-app"
schedule:
interval: daily
time: "00:00"
open-pull-requests-limit: 10
reviewers:
- terwer
assignees:
- terwer
commit-message:
prefix: fix
prefix-development: chore
include: scope
labels:
- "npm dependencies"
- "npm"
- "app"

# Fetch and update latest `github-actions` pkgs
- package-ecosystem: github-actions
directory: "/"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Expand Up @@ -13,7 +13,7 @@ jobs:

steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v3
with:
fetch-depth: 2

Expand All @@ -30,8 +30,8 @@ jobs:
- name: Install dependencies
run: pnpm install

- name: Build
run: pnpm build
- name: Prepare release
run: pnpm prepareRelease

- name: Package
run: pnpm package
58 changes: 23 additions & 35 deletions .github/workflows/release-please.yml
Expand Up @@ -10,94 +10,82 @@ jobs:
steps:
# Create release
- name: Create release
uses: google-github-actions/release-please-action@v3
uses: google-github-actions/release-please-action@v4
id: release
with:
release-type: node
package-name: release-please-action
## branch to open pull release PR against (detected by default)
default-branch: main
## Should breaking changes before 1.0.0 produce minor bumps? Default false
bump-minor-pre-major: false
## Should feat changes before 1.0.0 produce patch bumps instead of minor bumps? Default false
bump-patch-for-minor-pre-major: false
## If set, create releases that are pre-major or pre-release version marked as pre-release on GitHub. Defaults false
prerelease: false
## header used within the release PR body, defaults to using :robot: I have created a release *beep* *boop*
pull-request-header: ':robot: A new release will be created'
## A JSON formatted String containing to override the outputted changelog sections
changelog-types: '[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"refactor","section":"Code Refactoring","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":false},{"type":"perf","section":"Performance Improvements","hidden":false}]'
# this assumes that you have created a personal access token
# (PAT) and configured it as a GitHub action secret named
# `GH_TOKEN` (this secret name is not important).
token: ${{ secrets.GH_TOKEN }}
# optional. customize path to release-please-config.json
config-file: release-please-config.json
# optional. customize path to .release-please-manifest.json
manifest-file: .release-please-manifest.json

# Checkout
- name: Checkout
uses: actions/checkout@v3
if: ${{ steps.release.outputs.release_created }}
uses: actions/checkout@v4

# Install Node.js
- name: Install Node.js
if: ${{ steps.release.outputs.release_created }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18
registry-url: 'https://registry.npmjs.org'
if: ${{ steps.release.outputs.release_created }}

# Install pnpm
- name: Install pnpm
if: ${{ steps.release.outputs.release_created }}
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
id: pnpm-install
with:
version: 8
run_install: false
if: ${{ steps.release.outputs.release_created }}

# Get pnpm store directory
- name: Get pnpm store directory
if: ${{ steps.release.outputs.release_created }}
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
if: ${{ steps.release.outputs.release_created }}

# Setup pnpm cache
- name: Setup pnpm cache
if: ${{ steps.release.outputs.release_created }}
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
if: ${{ steps.release.outputs.release_created }}

# Install dependencies
- name: Install dependencies
if: ${{ steps.release.outputs.release_created }}
run: pnpm install
if: ${{ steps.release.outputs.release_created }}

# Prepare new version
# https://github.com/google-github-actions/release-please-action#outputs
- name: Prepare new version
if: ${{ steps.release.outputs.release_created }}
run: |
pnpm prepareRelease

# Build for production
- name: Build for production
if: ${{ steps.release.outputs.release_created }}
run: pnpm build

# Archive package
- name: Archive package
if: ${{ steps.release.outputs.release_created }}
# Build for production and Archive package
- name: Build for production
run: pnpm package
if: ${{ steps.release.outputs.release_created }}

# Upload package to release
# https://github.com/philips-labs/terraform-aws-github-runner/blob/main/.github/workflows/release.yml#L46
- name: Upload package.zip to the release
if: ${{ steps.release.outputs.releases_created }}
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
ls -l ./build
for f in $(find ./build -name '*.zip'); do
gh release upload ${{ steps.release.outputs.tag_name }} $f
done
done
if: ${{ steps.release.outputs.releases_created }}
58 changes: 36 additions & 22 deletions .gitignore
@@ -1,28 +1,42 @@
# Logs
logs
*.log
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
node_modules
.pnp
.pnp.js

# testing
coverage

# next.js
.next/
out/
build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local
build
lib
__pycache__
# local env files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# turbo
.turbo

# Editor directories and files
.vscode/*
!.vscode/extensions.json
# vercel
.vercel

# IDE
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
coverage
artifacts
cookie.txt
token.txt
2 changes: 2 additions & 0 deletions .npmrc
@@ -0,0 +1,2 @@
auto-install-peers=true
shamefully-hoist=true
6 changes: 3 additions & 3 deletions .prettierrc.cjs
Expand Up @@ -24,7 +24,7 @@
*/

module.exports = {
semi: false,
singleQuote: false,
printWidth: 120,
semi: false,
singleQuote: false,
printWidth: 120
}
3 changes: 3 additions & 0 deletions .release-please-manifest.json
@@ -0,0 +1,3 @@
{
".": "1.5.1"
}
35 changes: 35 additions & 0 deletions DEVELOPMENT.md
@@ -0,0 +1,35 @@
# Development

## Prerequisites

```bash
pnpm install
```

## Development

serve

```bash
pnpm serve -F picgo-plugin-app
```

dev

```bash
pnpm dev -F picgo-plugin-app
pnpm dev -F picgo-plugin-bootstrap
```

## Build

```bash
pnpm package
```

artifacts structure

```
├── build
├── package.zip
```