mirror of
https://github.com/ivuorinen/gh-action-readme.git
synced 2026-02-06 08:48:57 +00:00
* 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.
# {{.Name}}
{{if .Branding}}**{{.Branding.Icon}}** {{end}}**{{.Description}}**
---
## Installation
Add this action to your GitLab CI/CD pipeline or GitHub workflow:
### GitHub Actions
```yaml
steps:
- name: {{.Name}}
uses: your-org/{{.Name | lower | replace " " "-"}}@v1
{{if .Inputs}}with:
{{- range $key, $val := .Inputs}}
{{$key}}: {{if $val.Default}}{{$val.Default}}{{else}}value{{end}}
{{- end}}{{end}}
```
### GitLab CI/CD
```yaml
{{.Name | lower | replace " " "-"}}:
stage: build
image: node:20
script:
- # Your action logic here
{{if .Inputs}}variables:
{{- range $key, $val := .Inputs}}
{{$key | upper}}: {{if $val.Default}}{{$val.Default}}{{else}}value{{end}}
{{- end}}{{end}}
```
## Configuration
{{if .Inputs}}
### Input Parameters
{{range $key, $input := .Inputs}}
#### `{{$key}}`
- **Description**: {{$input.Description}}
- **Type**: String{{if $input.Required}}
- **Required**: Yes{{else}}
- **Required**: No{{end}}{{if $input.Default}}
- **Default**: `{{$input.Default}}`{{end}}
{{end}}
{{end}}
{{if .Outputs}}
### Output Parameters
{{range $key, $output := .Outputs}}
#### `{{$key}}`
- **Description**: {{$output.Description}}
{{end}}
{{end}}
## Usage Examples
### Basic Example
```yaml
{{.Name | lower | replace " " "-"}}:
stage: deploy
script:
- echo "Using {{.Name}}"
{{if .Inputs}}variables:
{{- range $key, $val := .Inputs}}
{{$key | upper}}: "{{if $val.Default}}{{$val.Default}}{{else}}example{{end}}"
{{- end}}{{end}}
```
### Advanced Example
For more complex scenarios, refer to the [action.yml](./action.yml) specification.
## Documentation
- [Action specification](./action.yml)
- [Usage examples](./examples/)
- [Contributing guidelines](./CONTRIBUTING.md)
## License
This project is licensed under the MIT License.
---
*Generated with [gh-action-readme](https://github.com/ivuorinen/gh-action-readme)*