Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

javascript buildPack: NPM not available in release/setVersion step #98

Open
haysclark opened this issue Mar 27, 2020 · 1 comment
Open

Comments

@haysclark
Copy link

haysclark commented Mar 27, 2020

When using the 'buildPack: javascript', I do not have access to npm when I replace the setVersion step of the release pipeline. Additionally, trying to use a customimages in these steps does NOT work either. Ideally, I am trying to overriding-version; but I need access to the npm command, or ideally, an npx command (assuming NodeJS10x or NodeJS12x images worked in the setVersion step).

buildPack: javascript
pipelineConfig:
  agent:
    label: jenkins-nodejs
    container: nodejs
  pipelines:
    release:
      setVersion:
        replace: true
        steps:
          - name: next-version
            sh: which npm
            comment: npm is NOT found in this step.
            # no change even if image is provided, see next line:
            # image: gcr.io/jenkinsxio/builder-nodejs
      build:
        replace: true
        steps:
          - name: npmrc
            sh: which npm
            comment: npm IS found in this step.

Error output:

Showing logs for build mycompany/nodejs-project/master #85 release stage meta-pipeline and container step-create-tekton-crds
running command: which npm
which: no npm in (/opt/apache-maven-3.6.3/bin:/usr/local/git/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/google-cloud-sdk/bin:/opt/google/chrome:/build
er/home/.jx/bin:/builder/home/.jx/maven/bin:/builder/home/.jx/jenkins-x-versions:/builder/home/.jx/bin:/builder/home/.jx/maven/bin:/builder/home/.jx/jenkins-x-versions:/builder/home
/.jx/bin:/builder/home/.jx/maven/bin:/builder/home/.jx/jenkins-x-versions:/builder/home/.jx/bin:/builder/home/.jx/maven/bin:/builder/home/.jx/jenkins-x-versions:/builder/home/.jx/bi
n:/builder/home/.jx/maven/bin:/builder/home/.jx/jenkins-x-versions:/builder/home/.jx/bin:/builder/home/.jx/maven/bin:/builder/home/.jx/jenkins-x-versions:/builder/home/.jx/bin:/buil

der/home/.jx/maven/bin:/workspace/source)
error: failed to set the version on release pipelines: failed to run '/bin/sh -c which npm' command in directory '/workspace/source', output: ''

Pipeline failed on stage 'meta-pipeline' : container 'step-create-tekton-crds'. The execution of the pipeline has stopped.

TLDR;

Despite my best efforts, I'm still struggling to understand how to manipulate a jenkins-x.yml. Part of the confusion is because some elements seem to be mutable, while others are not.

I have done my best to step back through the build packs starting from the kubernetes javascript/pipeline.yaml, which extends classic javascript/pipeline.yaml, which extends the classic pipeline.

It's unclear to me why release/build HAS access to npm, while release/setVersion does not.

Maybe someone can clarify if this is expected behaviour or a bug?

JX Version

~jx version                                                                                                                                                         NAME               VERSION
jx                 2.0.1245

Kubernetes cluster v1.15.8-gke.3
kubectl            v1.15.9
helm client        2.16.1
git                2.17.2 (Apple Git-113)
Operating System   Mac OS X 10.13.6 build 17G12034
@haysclark
Copy link
Author

@garethjevans I wanted to ping you about this issue in case you had any insight.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant