Files
gh-action-readme/templates_embed/templates/themes/gitlab
Ismo Vuorinen 4f12c4d3dd 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.
2025-08-06 15:28:09 +03:00
..

# {{.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)*