initial commit
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
# Web/General Formatting Pipeline Template
|
||||
|
||||
This reusable Gitea Actions workflow provides formatting checks for web technologies and general file formats including JavaScript, TypeScript, JSON, YAML, Markdown, and more using Prettier and other tools.
|
||||
|
||||
## Features
|
||||
|
||||
- **Prettier formatting**: Check formatting for JS, TS, JSON, YAML, Markdown, HTML, CSS, and more
|
||||
- **YAML validation**: Optional yamllint checking for YAML files
|
||||
- **JSON validation**: Optional JSON syntax validation
|
||||
- **Configurable**: Skip specific checks, custom prettier config, and more
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic Usage
|
||||
|
||||
Create a workflow file in your repository (e.g., `.gitea/workflows/formatting.yml`):
|
||||
|
||||
```yaml
|
||||
name: Formatting Check
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
formatting:
|
||||
uses: gitea.gt-proj.com/brian/CI-templates/.gitea/workflows/web/formatting.yml@main
|
||||
```
|
||||
|
||||
### Advanced Usage with Custom Options
|
||||
|
||||
```yaml
|
||||
name: Formatting Check
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
formatting:
|
||||
uses: gitea.gt-proj.com/brian/CI-templates/.gitea/workflows/web/formatting.yml@main
|
||||
with:
|
||||
working-directory: "./frontend"
|
||||
node-version: "18"
|
||||
prettier-config: ".prettierrc.json"
|
||||
check-yaml: true
|
||||
check-json: true
|
||||
```
|
||||
|
||||
### Combined with Python Code Quality
|
||||
|
||||
For repositories that contain both Python and web technologies:
|
||||
|
||||
```yaml
|
||||
name: Code Quality
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
python-quality:
|
||||
uses: gitea.gt-proj.com/brian/CI-templates/.gitea/workflows/python/code-quality.yml@main
|
||||
with:
|
||||
python-version: "3.12"
|
||||
working-directory: "./backend"
|
||||
|
||||
web-formatting:
|
||||
uses: gitea.gt-proj.com/brian/CI-templates/.gitea/workflows/web/formatting.yml@main
|
||||
with:
|
||||
working-directory: "./frontend"
|
||||
check-yaml: true
|
||||
```
|
||||
|
||||
## Input Parameters
|
||||
|
||||
| Parameter | Description | Required | Default | Type |
|
||||
|-----------|-------------|----------|---------|------|
|
||||
| `working-directory` | Working directory for the project | No | `"."` | string |
|
||||
| `node-version` | Node.js version to use for prettier | No | `"20"` | string |
|
||||
| `skip-prettier` | Skip prettier formatting check | No | `false` | boolean |
|
||||
| `prettier-config` | Path to prettier config file | No | `""` | string |
|
||||
| `check-yaml` | Check YAML files with yamllint | No | `false` | boolean |
|
||||
| `check-json` | Check JSON files for validity | No | `false` | boolean |
|
||||
|
||||
## Prettier Configuration
|
||||
|
||||
You can customize Prettier behavior by:
|
||||
|
||||
1. **Using a config file**: Set the `prettier-config` input to point to your config file
|
||||
2. **Using default prettier discovery**: Prettier will automatically find `.prettierrc`, `.prettierrc.json`, `.prettierrc.js`, etc.
|
||||
3. **Using package.json**: Add prettier config to your `package.json`
|
||||
|
||||
Example `.prettierrc.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"semi": true,
|
||||
"trailingComma": "es5",
|
||||
"singleQuote": true,
|
||||
"printWidth": 100,
|
||||
"tabWidth": 2
|
||||
}
|
||||
```
|
||||
|
||||
## What Files Are Checked
|
||||
|
||||
- **Prettier**: JavaScript, TypeScript, JSON, YAML, Markdown, HTML, CSS, and more
|
||||
- **yamllint**: All `.yml` and `.yaml` files (when enabled)
|
||||
- **JSON validation**: All `.json` files (when enabled)
|
||||
|
||||
## Requirements
|
||||
|
||||
- Repository must be public or you must have access to the template repository
|
||||
- For YAML checking: Repository should contain YAML files
|
||||
- For JSON checking: Repository should contain JSON files
|
||||
Reference in New Issue
Block a user