1
0
mirror of https://github.com/tektoncd/catalog.git synced 2024-11-22 06:02:51 +00:00
catalog/golang/README.md

154 lines
3.6 KiB
Markdown
Raw Normal View History

# Golang tasks
These Tasks are Golang task to build, test and validate Go projects.
## Install the tasks
```
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/master/golang/lint.yaml
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/master/golang/build.yaml
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/master/golang/tests.yaml
```
## `golangci-lint`
### Inputs
#### Parameters
* **package**: base package under validation
* **flags**: flags to use for `golangci-lint` command (_default:_--verbose)
* **version**: golangci-lint version to use (_default:_ v1.16)
* **GOOS**: operating system target (_default:_ linux)
* **GOARCH**: architecture target (_default:_ amd64)
* **GO111MODULE**: value of module support (_default:_ auto)
#### Resources
* **source**: A `git`-type `PipelineResource` specifying the location of the
source to build.
### `golang-build`
### Inputs
#### Parameters
* **package**: base package under test
* **packages**: packages to test (_default:_ ./...)
* **version**: golang version to use for tests (_default:_ 1.12)
* **flags**: flags to use for `go test` command (_default:_ -v)
* **GOOS**: operating system target (_default:_ linux)
* **GOARCH**: architecture target (_default:_ amd64)
* **GO111MODULE**: value of module support (_default:_ auto)
#### Resources
* **source**: A `git`-type `PipelineResource` specifying the location of the
source to build.
### `golang-test`
### Inputs
#### Parameters
* **package**: base package to build in
* **packages**: packages to test (_default:_ ./cmd/...)
* **version**: golang version to use for builds (_default:_ 1.12)
* **flags**: flags to use for `go test` command (_default:_ -race -cover -v)
* **GOOS**: operating system target (_default:_ linux)
* **GOARCH**: architecture target (_default:_ amd64)
* **GO111MODULE**: value of module support (_default:_ auto)
#### Resources
* **source**: A `git`-type `PipelineResource` specifying the location of the
source to build.
## Usage
### `golangci-lint`
This TaskRun runs the Task to validate
[`tektoncd/pipeline`](https://github.com/tektoncd/pipeline) `pkg` package with
`golangci-lint`.
```yaml
apiVersion: tekton.dev/v1alpha1
kind: TaskRun
metadata:
name: lint-my-code
spec:
taskRef:
name: golangci-lint
inputs:
resources:
- name: source
resourceSpec:
type: git
params:
- name: url
value: https://github.com/tektoncd/pipeline
params:
- name: package
value: github.com/tektoncd/pipeline
- name: flags
value: --verbose
```
### `golang-test`
This TaskRun runs the Task to run unit-tests on
[`tektoncd/pipeline`](https://github.com/tektoncd/pipeline).
```yaml
apiVersion: tekton.dev/v1alpha1
kind: TaskRun
metadata:
name: test-my-code
spec:
taskRef:
name: golang-test
inputs:
resources:
- name: source
resourceSpec:
type: git
params:
- name: url
value: https://github.com/tektoncd/pipeline
params:
- name: package
value: github.com/tektoncd/pipeline
- name: packages
value: ./pkg/...
```
### `golang-build`
This TaskRun runs the Task to compile commands from
[`tektoncd/pipeline`](https://github.com/tektoncd/pipeline).
`golangci-lint`.
```yaml
apiVersion: tekton.dev/v1alpha1
kind: TaskRun
metadata:
name: build-my-code
spec:
taskRef:
name: golang-build
inputs:
resources:
- name: source
resourceSpec:
type: git
params:
- name: url
value: https://github.com/tektoncd/pipeline
params:
- name: package
value: github.com/tektoncd/pipeline
```