charts/pipelines-library/templates/tasks/npm.yaml (73 lines of code) (raw):
{{ if .Values.pipelines.deployableResources.tasks }}
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: npm
labels:
app.kubernetes.io/version: "0.1"
annotations:
tekton.dev/pipelines.minVersion: "0.17.0"
tekton.dev/categories: Build Tools
tekton.dev/tags: build-tool
tekton.dev/platforms: "linux/amd64,linux/s390x,linux/ppc64le"
spec:
description: >-
This task can be used to run npm goals on a project
where package.json is present and has some pre-defined
npm scripts.
workspaces:
- name: source
volumes:
- name: settings-npm
configMap:
name: {{ .Values.tekton.configs.npmConfigMap }}
params:
- name: PATH_CONTEXT
type: string
default: "."
description: The path where package.json of the project is defined.
- name: EXTRA_COMMANDS
type: string
- name: BASE_IMAGE
type: string
default: "{{ include "edp-tekton.registry" . }}/library/node:18.20.3-alpine3.20"
description: The node image you want to use.
- name: ci-nexus
type: string
description: name of the secret for the Nexus integration
default: ci-nexus
steps:
- name: npm
image: $(params.BASE_IMAGE)
workingDir: $(workspaces.source.path)/$(params.PATH_CONTEXT)
volumeMounts:
- name: settings-npm
mountPath: /var/configmap
{{- if .Values.tekton.packageRegistriesSecret.enabled }}
envFrom:
- secretRef:
name: {{ .Values.tekton.packageRegistriesSecret.name }}
{{- end }}
env:
- name: HOME
value: "$(workspaces.source.path)"
- name: CI_USERNAME
valueFrom:
secretKeyRef:
name: $(params.ci-nexus)
key: username
- name: CI_PASSWORD
valueFrom:
secretKeyRef:
name: $(params.ci-nexus)
key: password
- name: NEXUS_HOST_URL
valueFrom:
secretKeyRef:
name: $(params.ci-nexus)
key: url
script: |
#!/usr/bin/env sh
set -e
$(params.EXTRA_COMMANDS)
{{- include "resources" . | nindent 6 }}
{{ end }}