Skip to content

force:apex:test:run in JWT context seems to rely on the jwtkeyfile always being present #81

Description

@ImJohnMDaniel

Summary

force:apex:test:run command fails when using JWT connection and the jwtkeyfile file is missing from project folder

Steps To Reproduce:

  • Have jwtKeyFile at project root
  • Authenticate to Dev Hub via JWT auth and make it defaultDevHub at least within the context of current SFDX project.
  • Execute a scratch org creation
    • force:org:create --definitionfile config/project-scratch-def.json --json --setdefaultusername --durationdays 1
  • Push of source code
    • force:source:push --json
    • executes correctly
  • Conduct an Apex Test run
    • force:apex:test:run --testlevel RunLocalTests --outputdir target --resultformat tap --json
    • executes correctly
  • remove jwtKeyFile from project directory
  • Push of source code
    • force:source:push --json
    • executes correctly
  • Conduct an Apex Test run
    • force:apex:test:run --testlevel RunLocalTests --outputdir target --resultformat tap --json
    • execution fails

Expected result

Execution of force:apex:test:run should succeed regardless of the presence of the jwtKeyFile

Actual result

Execution of force:apex:test:run fails if jwtKeyFile is not present in project directory.

Additional information

This becomes a blocker in Jenkins CI processes on SFDX projects. The recommended way to manage the jwtKeyFile on Jenkins is store it in the "Jenkins Admin Credentials interface." During build job execution, Jenkins will checkout all code to the build job's "workspace" folder. It will download the the jetKeyFile and other secret files to the adjacent folder "workspace@tmp" and inject that file during commands that explicitly utilize it (like the force:auth:jwt:grant command).

As it stands now, I am unable to utilize force:apex:test:run as part of my CI process.

SFDX CLI Version(to find the version of the CLI engine run sfdx --version):

  • sfdx-cli/7.4.0-99233fd3af darwin-x64 node-v10.15.3

SFDX plugin Version(to find the version of the CLI plugin run sfdx plugins --core)

  • @oclif/plugin-commands 1.2.2 (core)
  • @oclif/plugin-help 2.1.6 (core)
  • @oclif/plugin-not-found 1.2.2 (core)
  • @oclif/plugin-plugins 1.7.8 (core)
  • @oclif/plugin-update 1.3.9 (core)
  • @oclif/plugin-warn-if-update-available 1.7.0 (core)
  • @oclif/plugin-which 1.0.3 (core)
  • @salesforce/sfdx-trust 3.0.2 (core)
  • analytics 1.1.2 (core)
  • generator 1.1.0 (core)
  • salesforcedx 45.11.0 (core)
    • force-language-services 45.10.0 (core)
    • salesforce-alm 45.14.0 (core)
  • sfdx-cli 7.4.0 (core)

OS and version:

  • MacOS v10.14.4
  • Ubuntu Linux (amd64) latest version

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIssue or pull request that identifies or fixes a bug

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions