mirror of
https://github.com/ivuorinen/gh-action-readme.git
synced 2026-02-12 01:48:41 +00:00
feat(lint): add many linters, make all the tests run fast! (#23)
* chore(lint): added nlreturn, run linting * chore(lint): replace some fmt.Sprintf calls * chore(lint): replace fmt.Sprintf with strconv * chore(lint): add goconst, use http lib for status codes, and methods * chore(lint): use errors lib, errCodes from internal/errors * chore(lint): dupl, thelper and usetesting * chore(lint): fmt.Errorf %v to %w, more linters * chore(lint): paralleltest, where possible * perf(test): optimize test performance by 78% - Implement shared binary building with package-level cache to eliminate redundant builds - Add strategic parallelization to 15+ tests while preserving environment variable isolation - Implement thread-safe fixture caching with RWMutex to reduce I/O operations - Remove unnecessary working directory changes by leveraging embedded templates - Add embedded template system with go:embed directive for reliable template resolution - Fix linting issues: rename sharedBinaryError to errSharedBinary, add nolint directive Performance improvements: - Total test execution time: 12+ seconds → 2.7 seconds (78% faster) - Binary build overhead: 14+ separate builds → 1 shared build (93% reduction) - Parallel execution: Limited → 15+ concurrent tests (60-70% better CPU usage) - I/O operations: 66+ fixture reads → cached with sync.RWMutex (50% reduction) All tests maintain 100% success rate and coverage while running nearly 4x faster.
This commit is contained in:
141
templates_embed/templates/themes/github/readme.tmpl
Normal file
141
templates_embed/templates/themes/github/readme.tmpl
Normal file
@@ -0,0 +1,141 @@
|
||||
# {{.Name}}
|
||||
|
||||
{{if .Branding}} {{end}}
|
||||

|
||||

|
||||
|
||||
> {{.Description}}
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
```yaml
|
||||
name: My Workflow
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: {{.Name}}
|
||||
uses: {{gitUsesString .}}
|
||||
{{if .Inputs}}with:
|
||||
{{- range $key, $val := .Inputs}}
|
||||
{{$key}}: {{if $val.Default}}"{{$val.Default}}"{{else}}"value"{{end}}
|
||||
{{- end}}{{end}}
|
||||
```
|
||||
|
||||
{{if .Inputs}}
|
||||
## 📥 Inputs
|
||||
|
||||
| Parameter | Description | Required | Default |
|
||||
|-----------|-------------|----------|---------|
|
||||
{{- range $key, $input := .Inputs}}
|
||||
| `{{$key}}` | {{$input.Description}} | {{if $input.Required}}✅{{else}}❌{{end}} | {{if $input.Default}}`{{$input.Default}}`{{else}}-{{end}} |
|
||||
{{- end}}
|
||||
{{end}}
|
||||
|
||||
{{if .Outputs}}
|
||||
## 📤 Outputs
|
||||
|
||||
| Parameter | Description |
|
||||
|-----------|-------------|
|
||||
{{- range $key, $output := .Outputs}}
|
||||
| `{{$key}}` | {{$output.Description}} |
|
||||
{{- end}}
|
||||
{{end}}
|
||||
|
||||
## 💡 Examples
|
||||
|
||||
<details>
|
||||
<summary>Basic Usage</summary>
|
||||
|
||||
```yaml
|
||||
- name: {{.Name}}
|
||||
uses: {{gitUsesString .}}
|
||||
{{if .Inputs}}with:
|
||||
{{- range $key, $val := .Inputs}}
|
||||
{{$key}}: {{if $val.Default}}"{{$val.Default}}"{{else}}"example-value"{{end}}
|
||||
{{- end}}{{end}}
|
||||
```
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Advanced Configuration</summary>
|
||||
|
||||
```yaml
|
||||
- name: {{.Name}} with custom settings
|
||||
uses: {{gitUsesString .}}
|
||||
{{if .Inputs}}with:
|
||||
{{- range $key, $val := .Inputs}}
|
||||
{{$key}}: {{if $val.Default}}"{{$val.Default}}"{{else}}"custom-value"{{end}}
|
||||
{{- end}}{{end}}
|
||||
```
|
||||
</details>
|
||||
|
||||
{{if .Dependencies}}
|
||||
## 📦 Dependencies
|
||||
|
||||
This action uses the following dependencies:
|
||||
|
||||
| Action | Version | Author | Description |
|
||||
|--------|---------|--------|-------------|
|
||||
{{- range .Dependencies}}
|
||||
| {{if .MarketplaceURL}}[{{.Name}}]({{.MarketplaceURL}}){{else}}{{.Name}}{{end}} | {{if .IsPinned}}🔒{{end}}{{.Version}} | [{{.Author}}](https://github.com/{{.Author}}) | {{.Description}} |
|
||||
{{- end}}
|
||||
|
||||
<details>
|
||||
<summary>📋 Dependency Details</summary>
|
||||
|
||||
{{range .Dependencies}}
|
||||
### {{.Name}}{{if .Version}} @ {{.Version}}{{end}}
|
||||
|
||||
{{if .IsPinned}}
|
||||
- 🔒 **Pinned Version**: Locked to specific version for security
|
||||
{{else}}
|
||||
- 📌 **Floating Version**: Using latest version (consider pinning for security)
|
||||
{{end}}
|
||||
- 👤 **Author**: [{{.Author}}](https://github.com/{{.Author}})
|
||||
{{if .MarketplaceURL}}- 🏪 **Marketplace**: [View on GitHub Marketplace]({{.MarketplaceURL}}){{end}}
|
||||
{{if .SourceURL}}- 📂 **Source**: [View Source]({{.SourceURL}}){{end}}
|
||||
{{if .WithParams}}
|
||||
- **Configuration**:
|
||||
```yaml
|
||||
with:
|
||||
{{- range $key, $value := .WithParams}}
|
||||
{{$key}}: {{$value}}
|
||||
{{- end}}
|
||||
```
|
||||
{{end}}
|
||||
|
||||
{{end}}
|
||||
|
||||
{{$hasLocalDeps := false}}
|
||||
{{range .Dependencies}}{{if .IsLocalAction}}{{$hasLocalDeps = true}}{{end}}{{end}}
|
||||
{{if $hasLocalDeps}}
|
||||
### Same Repository Dependencies
|
||||
{{range .Dependencies}}{{if .IsLocalAction}}
|
||||
- [{{.Name}}]({{.SourceURL}}) - {{.Description}}
|
||||
{{end}}{{end}}
|
||||
{{end}}
|
||||
|
||||
</details>
|
||||
{{end}}
|
||||
|
||||
## 🔧 Development
|
||||
|
||||
See the [action.yml](./action.yml) for the complete action specification.
|
||||
|
||||
## 📄 License
|
||||
|
||||
This action is distributed under the MIT License. See [LICENSE](LICENSE) for more information.
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Contributions are welcome! Please feel free to submit a Pull Request.
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<sub>🚀 Generated with <a href="https://github.com/ivuorinen/gh-action-readme">gh-action-readme</a></sub>
|
||||
</div>
|
||||
Reference in New Issue
Block a user