mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
3cad6ac2cd
* WIP: Adapt bom names * + WIP: Adapt bom filenames * Upgrade cyclonedx gradle plugin and use cyclonedxBom config parameters * Fix unit tests - use correct name in bom creation * Fix pythonBuild bom name * introduce and use npmBomFilename const * Introduce and use mvnBomFilename const * Introduce and use gradleBomFilename const * Use build-tool names for bom suffix * + Adapt tests (build tool suffix) * Use BOM schema version 1.2 in gradleExecuteBuild * Pin version of cyclonedx-maven-plugin to 2.7.1 * Adapt generated files * Fix integration tests * Fix integration tests * Fix gradle build integration tests Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
178 lines
6.5 KiB
YAML
178 lines
6.5 KiB
YAML
metadata:
|
|
name: npmExecuteScripts
|
|
aliases:
|
|
- name: executeNpm
|
|
description: Execute npm run scripts on all npm packages in a project
|
|
longDescription: |
|
|
Execute npm run scripts in all package json files, if they implement the scripts.
|
|
|
|
### build with depedencies from a private repository
|
|
if your build has scoped/unscoped dependencies from a private repository you can include a .npmrc into the source code
|
|
repository as below (replace the `@privateScope:registry` value(s) with a valid private repo url) :
|
|
|
|
```
|
|
@privateScope:registry=https://private.repository.com/
|
|
//private.repository.com/:username=${PIPER_VAULTCREDENTIAL_USER}
|
|
//private.repository.com/:_password=${PIPER_VAULTCREDENTIAL_PASSWORD_BASE64}
|
|
//private.repository.com/:always-auth=true
|
|
registry=https://registry.npmjs.org
|
|
```
|
|
`PIPER_VAULTCREDENTIAL_USER` and `PIPER_VAULTCREDENTIAL_PASSWORD_BASE64` (Base64 encoded password) are the username and password for the private repository
|
|
and are exposed are environment variables that must be present in the environment where the Piper step runs or alternatively can be created using :
|
|
[vault general purpose credentials](../infrastructure/vault.md#using-vault-for-general-purpose-and-test-credentials)
|
|
spec:
|
|
inputs:
|
|
resources:
|
|
- name: source
|
|
type: stash
|
|
params:
|
|
- name: install
|
|
type: bool
|
|
description: Run npm install or similar commands depending on the project structure.
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
default: true
|
|
- name: runScripts
|
|
type: "[]string"
|
|
description: List of additional run scripts to execute from package.json.
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: defaultNpmRegistry
|
|
type: string
|
|
description: URL of the npm registry to use. Defaults to https://registry.npmjs.org/
|
|
scope:
|
|
- PARAMETERS
|
|
- GENERAL
|
|
- STAGES
|
|
- STEPS
|
|
aliases:
|
|
- name: npm/defaultNpmRegistry
|
|
- name: virtualFrameBuffer
|
|
type: bool
|
|
description: (Linux only) Start a virtual frame buffer in the background. This allows you to run a web browser without the need for an X server. Note that xvfb needs to be installed in the execution environment.
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: scriptOptions
|
|
type: "[]string"
|
|
description: Options are passed to all runScripts calls separated by a '--'. './piper npmExecuteScripts --runScripts ci-e2e --scriptOptions '--tag1' will correspond to 'npm run ci-e2e -- --tag1'
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: buildDescriptorExcludeList
|
|
type: "[]string"
|
|
description: List of build descriptors and therefore modules to exclude from execution of the npm scripts. The elements can either be a path to the build descriptor or a pattern.
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
default: ["deployment/**"]
|
|
- name: buildDescriptorList
|
|
type: "[]string"
|
|
description: List of build descriptors and therefore modules for execution of the npm scripts. The elements have to be paths to the build descriptors. **If set, buildDescriptorExcludeList will be ignored.**
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: createBOM
|
|
type: bool
|
|
description: Create a BOM xml using CycloneDX.
|
|
scope:
|
|
- GENERAL
|
|
- STEPS
|
|
- STAGES
|
|
- PARAMETERS
|
|
default: false
|
|
- name: publish
|
|
type: bool
|
|
description: Configures npm to publish the artifact to a repository.
|
|
scope:
|
|
- STEPS
|
|
- STAGES
|
|
- PARAMETERS
|
|
- name: repositoryUrl
|
|
type: string
|
|
description: Url to the repository to which the project artifacts should be published.
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: custom/npmRepositoryURL
|
|
- name: commonPipelineEnvironment
|
|
param: custom/repositoryUrl
|
|
- name: repositoryPassword
|
|
type: string
|
|
description: Password for the repository to which the project artifacts should be published.
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
secret: true
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: custom/npmRepositoryPassword
|
|
- name: commonPipelineEnvironment
|
|
param: custom/repositoryPassword
|
|
- name: repositoryUsername
|
|
type: string
|
|
description: Username for the repository to which the project artifacts should be published.
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
secret: true
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: custom/npmRepositoryUsername
|
|
- name: commonPipelineEnvironment
|
|
param: custom/repositoryUsername
|
|
- name: buildSettingsInfo
|
|
type: string
|
|
description: build settings info is typically filled by the step automatically to create information about the build settings that were used during the npm build . This information is typically used for compliance related processes.
|
|
scope:
|
|
- STEPS
|
|
- STAGES
|
|
- PARAMETERS
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: custom/buildSettingsInfo
|
|
- name: packBeforePublish
|
|
type: bool
|
|
default: false
|
|
description: used for executing npm pack first, followed by npm publish. This two step maybe required when you are building a scoped packages and have npm dependencies from the same scope
|
|
scope:
|
|
- STEPS
|
|
- STAGES
|
|
- PARAMETERS
|
|
outputs:
|
|
resources:
|
|
- name: commonPipelineEnvironment
|
|
type: piperEnvironment
|
|
params:
|
|
- name: custom/buildSettingsInfo
|
|
- name: reports
|
|
type: reports
|
|
params:
|
|
- filePattern: "**/bom-npm.xml"
|
|
type: sbom
|
|
- filePattern: "**/TEST-*.xml"
|
|
type: junit
|
|
- filePattern: "**/cobertura-coverage.xml"
|
|
type: cobertura-coverage
|
|
- filePattern: "**/e2e/*.json"
|
|
type: cucumber
|
|
containers:
|
|
- name: node
|
|
image: node:lts-stretch
|