Hi Chad, Thanks for the info, it was very helpful. I can call the python module outside of GoCD and it works fine so I was scratching my head why it would not work inside the script executor. What's also strange is that Shellcheck (SC2148) indeed has that message/error) however, that specific SC isn't being leveraged in my Shellcheck linter. What I did do is ignore the check until I can determine the best path forward getting it working inside the script executor. I'm not too concerned because I call the same module to run against all of our PR's.
Thanks again for your help! On Tuesday, May 10, 2022 at 10:50:29 AM UTC-4 Chad Wilson wrote: > While the not-so-helpful error messages from GoCD aren't great - I'm not > sure this is the root of your problem? The original error you said you were > trying to fix is a pipeline failing with > > *'message': "Tips depend on target shell and yours is unknown. Add a > shebang or a 'shell' directive.", 'fix': None}* > > This is an error message from the *shellcheck tool itself* about the > script it is checking/linting. It shouldn't be complaining about the > environment it is running in. It is telling you that it can't lint/check > the script, since it's not sure which semantics/rules to apply on the > individual script it is checking (its target shell). See > https://github.com/koalaman/shellcheck/wiki/SC2148 > > Can you check the specific file/script shellcheck is looking at when the > pipeline is failing and make sure it has a shebang? Unless you are running > shellcheck and checking the dynamically generated temporary scripts GoCD > generates (seems unlikely) I'm not sure the root problem you are trying to > solve is with GoCD, and instead is somewhere else. > > Chad > > PS: The second attempt is failing because # is a special character in GoCD > land, used for parameter substitution > <https://docs.gocd.org/current/configuration/admin_use_parameters_in_configuration.html>. > > This might also be why the script executor plugin is failing, but not 100% > sure- can you get a stack trace or other error details from the GoCD server > logs and perhaps I can take a look? > > As the second error tries to tell you, to get past the parameter > substitution you would probably need an extra hash i.e *##!/bin/sh* > > However even if you get past these errors, I don't think either option > will change the shell because in the two styles > > - script executor plugin runs "/bin/bash -c YOUR_SCRIPT" > - custom command just runs it as if you entered arguments on the > command line directly to a bash process, so you'd need a -c argument, and > then a line with YOUR_SCRIPT similar to the "syntactic sugar" the script > executor plugin gives you. > > I'm not sure it'd make a lot of sense to add a shebang in either case... > > On Tue, May 10, 2022 at 1:40 PM Sifu Tian <[email protected]> wrote: > >> >> HI, >> >> Ive tried both. You can see the second screenshot is the custom command >> method. >> Both ways don't allow you to save the task if you add #!/bin/sh to the >> argument and throw and error. >> On Tuesday, May 10, 2022 at 1:00:13 AM UTC-4 [email protected] wrote: >> >>> On Tue, May 10, 2022 at 11:45 AM Sifu Tian <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> I'm sure this is an old issue however I cant seem to find the >>>> resolution. >>>> >>>> I have a script executor with a job that is running a python module >>>> defined for shellcheck linter. >>>> >>> >>> Could you use the Custom Command to run a shell script instead? >>> That way, all your actions would be within a shell script that you can >>> test and store in version control, and then check out and use as a material. >>> >>> https://docs.gocd.org/current/configuration/admin_add_task.html >>> >>> I have not used this task executor plugin since I have always relied on >>> the Custom Command approach above. >>> >>> >>> >>>> >>>> The pipeline fails with return error: >>>> 'message': "Tips depend on target shell and yours is unknown. Add a >>>> shebang or a 'shell' directive.", 'fix': None} >>>> >>>> It's looking for a shell in the script executor which I thought would >>>> be self contained. >>>> While attempted to add #!/bin/sh, it wont allow me to save and >>>> generates the error: >>>> >>>> "There was an unknown error performing the operation. Possible reason >>>> ()" >>>> >>>> If I try with just the customer command option I get this error when >>>> adding #!/bin/sh: >>>> >>>> There was an unknown error performing the operation. Possible reason () >>>> Error when processing params for '#!/bin/sh' used in field >>>> 'argListString', # must be followed by a parameter pattern or escaped by >>>> another #. >>>> >>>> I also found this very old close issue which is a similar issue I'm >>>> having. >>>> https://github.com/gocd/gocd/issues/817 >>>> >>>> Any help would be great. >>>> [image: Screen Shot 2022-05-09 at 11.43.24 PM.png] >>>> [image: Screen Shot 2022-05-09 at 11.42.57 PM.png] >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "go-cd" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/go-cd/930eef05-427e-413c-9ccd-ee8494b47d86n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/go-cd/930eef05-427e-413c-9ccd-ee8494b47d86n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "go-cd" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/go-cd/6378d084-2461-4007-bd42-3c236c284ea1n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/go-cd/6378d084-2461-4007-bd42-3c236c284ea1n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "go-cd" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/go-cd/22a699c1-c3a0-4219-9cc4-c7be600504ddn%40googlegroups.com.
