Presently I’m working on a custom step to assist with necessary Jira actions. You can view it here, if you’d like to help View Repository.
In the step.sh.old you’re able to see what I was originally doing, but when I ran the job the it hung, timed out, and then eventually failed. First I battled the execution path problems, which i’m not sure it worked out… yet that error went away. Once it continued then it just hung as described above. I assume it was because of missing input variables, however I can directly see that because no error gets emitted.
As a test… I replaced my step.sh with a simple; console.log(‘hello’) - In hope to see that message in the bitrise logs… But alas I see nothing.
What am I doing wrong… Got a couple other questions on this topic of custom steps, but will place in separated thread.
There’s also no need for this: https://github.com/loudbinary/bitrise_report_to_jira/blob/master/step.sh#L67
Instead of
output=$(npm install);
echo "$output";
you could simply
npm install
if you don’t use the output as a variable (which it seems you don’t).
I created a very small build job in Bitrise.
---
format_version: 1.3.4
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
trigger_map:
- push_branch: "*"
workflow: primary
- pull_request_target_branch: "*"
pull_request_source_branch: "*"
workflow: primary
- tag: "*"
workflow: primary
workflows:
primary:
steps:
- activate-ssh-key@3.1.1: {}
- nvm@1.0.1:
inputs:
- node_version: 6.9.4
- git::https://github.com/loudbinary/bitrise_report_to_jira.git@master:
title: Report to Jira
inputs:
- jira_url: https://loudbinary.atlassian.net
- jira_user: loudbinary@gmail.com
- jira_password: SomeRandomandLessThanUseFul
- jira_default_project: LWS
- jira_default_issue_type: Bug
- jira_port: 443
- jira_create_missing: true
Did you try to run it locally, with the Bitrise CLI?
No… not via your cli. I did verify my node script runs successfully, if given the parameters.
I will however, run it specifically with the relative path to my local steplib collection. Will let you know in a few.
That said, I had to go through examples to find what I believe is the appropriate method in step.sh to find the path of my imported step. But honestly I’m not sure this is correct. I assume this custom step with git::https is simply pulling into local collection cache?? Bear with me, only a day or so into this custom step stuff.
THIS_SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
Correct, that’s a random directory.
Correct, see e.g. this step, which is written entirely in Ruby: https://github.com/bitrise-io/steps-amazon-s3-deploy/blob/master/step.sh
The step.sh
of the step is as simple as:
#!/bin/bash
THIS_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
set -e
ruby "${THIS_SCRIPT_DIR}/s3deploy.rb"
It just gets the step.sh
file’s directory path with THIS_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
, and then it runs the s3deploy.rb
which is in the same directory as the step.sh
.