2 Commits
master ... dev

Author SHA1 Message Date
ren
c9a9632ccc feat: 优化项目结构
All checks were successful
CI / 测试 (push) Successful in 20s
2025-10-21 12:05:15 +08:00
ren
4174e14517 feat: 更新项目构建脚本
Some checks failed
CI / 测试 (push) Failing after 58s
2025-10-21 11:52:04 +08:00
6 changed files with 78 additions and 48 deletions

View File

@@ -2,45 +2,83 @@ name: CI
on: on:
push: push:
branches: [main] branches: [dev, release, master]
pull_request: pull_request:
branches: [main] branches: [dev, release, master]
jobs: jobs:
lint-and-test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Lint and Test name: 测试
steps: steps:
- name: Checkout - name: 准备 | 签出代码
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: 准备 | 配置开发环境
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: '20' node-version: '20'
- name: Setup pnpm - name: 准备 | 获取包管理器版本
uses: pnpm/action-setup@v4 run: |
PNPM_VERSION=$(grep -o '"packageManager": "[^"]*"' package.json | cut -d'@' -f2 | tr -d '"')
echo "PNPM_VERSION=$PNPM_VERSION" >> $GITHUB_ENV
echo "✅ 包管理器版本为 pnpm@$PNPM_VERSION"
- name: 准备 | 配置全局缓存
uses: actions/cache@v3
with: with:
version: 9 path: ~/.npm
key: ${{ runner.os }}-npm-pnpm-${{ env.PNPM_VERSION }}
restore-keys: |
${{ runner.os }}-npm-pnpm-
- name: Install dependencies - name: 准备 | 安装包管理器
run: pnpm install --frozen-lockfile
- name: Check JavaScript Syntax
run: | run: |
echo "🔍 Checking JavaScript syntax..." npm install -g pnpm
node -c index.js pnpm --version
echo "✅ All JavaScript files have valid syntax" echo "✅ 包管理器安装成功"
- name: Run Tests - name: 准备 | 获取项目依赖哈希
run: | id: files-hash
echo "🧪 Running test suite..."
pnpm test
- name: Test Action Execution
uses: ./ uses: ./
with: with:
files: 'examples/*' files: '**/pnpm-lock.yaml'
algorithm: 'sha256'
- name: 准备 | 配置依赖缓存
uses: actions/cache@v3
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-store-${{ steps.files-hash.outputs.hash }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: 准备 | 安装依赖
run: |
pnpm install --frozen-lockfile
echo "✅ 依赖安装完成"
- name: 测试 | 执行语法检查
run: |
echo "🔍 执行 JavaScript 语法检查..."
node -c src/index.js
echo "✅ 语法检查通过"
- name: 测试 | 执行 Lint 检查
run: |
echo "🔍 执行 Lint 检查..."
pnpm run lint
echo "✅ Lint 检查通过"
- name: 测试 | 执行格式化检查
run: |
echo "🔍 执行格式化检查..."
pnpm run format:check
echo "✅ 格式化检查通过"
- name: 测试 | 执行测试
run: |
echo "🧪 执行测试..."
pnpm run test
echo "✅ 测试通过"

View File

@@ -72,10 +72,10 @@ jobs:
## 输入参数 ## 输入参数
| 输入参数 | 描述 | 必需 | 默认值 | | 输入参数 | 描述 | 必需 | 默认值 |
| ----------------- | ------------------------------------------- | ----- | -------- | | ----------- | ------------------------------------------- | ----- | -------- |
| `files` | 文件路径或 glob 模式(每行一个) | ✅ 是 | - | | `files` | 文件路径或 glob 模式(每行一个) | ✅ 是 | - |
| `algorithm` | 哈希算法:`md5``sha1``sha256``sha512` | ❌ 否 | `sha256` | | `algorithm` | 哈希算法:`md5``sha1``sha256``sha512` | ❌ 否 | `sha256` |
### 文件模式 ### 文件模式

View File

@@ -22,4 +22,4 @@ outputs:
runs: runs:
using: 'node20' using: 'node20'
main: 'index.js' main: 'src/index.js'

View File

@@ -1,16 +1,16 @@
{ {
"name": "files-hash-action", "name": "files-hash-action",
"version": "0.1.1", "version": "0.1.1",
"description": "A lightweight GitHub Action to calculate hash of multiple files", "description": "A lightweight Gitea Action to calculate hash of multiple files",
"main": "index.js", "main": "src/index.js",
"scripts": { "scripts": {
"test": "vitest run", "test": "vitest run",
"test:watch": "vitest watch", "test:watch": "vitest watch",
"test:coverage": "vitest run --coverage", "test:coverage": "vitest run --coverage",
"lint": "eslint .", "lint": "eslint ./src",
"lint:fix": "eslint . --fix", "lint:fix": "eslint ./src --fix",
"format": "prettier --write .", "format": "prettier --write ./src",
"format:check": "prettier --check .", "format:check": "prettier --check ./src",
"check": "pnpm run lint && pnpm run format:check", "check": "pnpm run lint && pnpm run format:check",
"preinstall": "npx only-allow pnpm" "preinstall": "npx only-allow pnpm"
}, },
@@ -33,17 +33,9 @@
"sha256", "sha256",
"sha512" "sha512"
], ],
"author": "Files Hash Action", "packageManager": "pnpm@10.18.3",
"license": "MIT",
"engines": { "engines": {
"node": ">=20" "node": ">=20",
}, "pnpm": ">=10"
"repository": { }
"type": "git",
"url": "https://github.com/your-username/files-hash-action.git"
},
"bugs": {
"url": "https://github.com/your-username/files-hash-action/issues"
},
"homepage": "https://github.com/your-username/files-hash-action#readme"
} }

View File

@@ -10,7 +10,7 @@ import {
ErrorType, ErrorType,
ActionInputs, ActionInputs,
ActionOutputs, ActionOutputs,
} from '../index.js'; } from '../src/index.js';
import { createTestFile, createTestDir, cleanupTestFiles, cleanupTestDirs } from './utils.js'; import { createTestFile, createTestDir, cleanupTestFiles, cleanupTestDirs } from './utils.js';
describe('测试 FileDiscovery 类', () => { describe('测试 FileDiscovery 类', () => {