Can you change your task config invoke the script with bash -x and paste
the exact output?

That is:

Command: /bin/bash
Args:
  -x
  /path/to/your/script.sh


On Sun, Feb 21, 2021 at 2:56 PM Gabriel Callaghan <
[email protected]> wrote:

> Hi,
>
> Thank you all for your helpful comments - I have written them down in my
> notebook to make sure that I can retain what I've learned here. The
> authentication problem is fixed, it seems that there may have been a
> whitespace in there. Have used a GOCD token which works.
>
> My next problem is "Permission denied". I had originally thought this
> meant that my authentication was wrong, but after I went thru and put the
> new token in and checked, it seems that the auth isn't the main problem. I
> am running a script to pull the pipelines from a group, and to approve all
> of them (if they haven't been approved already). If you guys have some free
> time, could I please ask for your help on this?
>
> *My first script (pushGames.sh):*
>
> #! /bin/bash
>
> curl "https:// {companyName}
> /go/api/admin/pipeline_groups/${PIPELINE_GROUP}" \
>        -H "Authorization: Bearer ${GOCD_ACCESS_TOKEN}" \
>        -H 'Accept: application/vnd.go.cd.v1+json' \
> | jq -r '.pipelines[] | select(.name | contains("Games-")).name'   >
> testEnvGamesList.txt
>
> cat testEnvGamesList.txt | while read line
>
> do
>
> echo The current pipeline is: $line
> ./gocd/game-deploy/pushOneGame.sh $line
>
> done
>
> rm testEnvGamesList.txt
>
>
> *My second script (pushOneGame.sh):*
>
> #! /bin/bash
>
> fetchPipelineHistory=$( curl " {companyName}
> /go/api/stages/$1/Approve/history" \
>       -H "Authorization: Bearer ${GOCD_ACCESS_TOKEN}" \
>       -H 'Accept: application/vnd.go.cd.v2+json')
>
>
> getResultOfCurrentStage=$( echo $fetchPipelineHistory | jq -r
> '.stages[].result')
>
> counter=$( echo $fetchPipelineHistory | jq -r '.stages[0].counter')
>
> if [ "$getResultOfCurrentStage" != "Passed" ]
> then
>
> echo "https:// {companyName} /go/api/stages/$1/$counter/Approve/run"
>
> curl "https:// {companyName} /go/api/stages/$1/$counter/Approve/run" \
>       -H "Authorization: Bearer ${GOCD_ACCESS_TOKEN}" \
>       -H 'X-GoCD-Confirm: true' \
>       -H 'Accept: application/vnd.go.cd.v2+json' \
>       -X POST
>
> fi
>
>
> I am running these in the task config:
>
> Command: /bin/sh
>
> Arguments: ./{companyName}/game-deploy/pushGames.sh
>
> Both scripts are in the game-deploy folder.
>
> When running this in VS Code (I have it set up to use LF for my end of
> line so should work with GOCD and Bash), it works. In VScode, I run the
> "pushOneGame.sh" script, replacing $1 with the name of one pipeline. This
> works. However, when leaving it as code inside GOCD, it gives me the
> "permission denied". What did I miss here? I went to Admin > Security >
> Role config and checked that I was assigned the dev role. There is a
> message saying the plugins do not support role based authorization. Does
> this mean I need to request to be given Admin role to check?
>
> @fenn, thanks for linking me to some learning resources, I've saved them
> and will try to look into them when I am not on work hours.
>
> Cheers,
> Gabes.
>
> On Mon, Feb 22, 2021 at 7:17 AM Fenn <[email protected]> wrote:
>
>> GoCD borrows from Java standards / defacto standards and also from
>> Linux standards / defacto standards.  It may not be convenient but
>> learning something about shell notation and Java prior art (e.g. Ant)
>> can be useful.  The best books I can recommend to learn Linux / Unix
>> shell are Unix Power Tools and Unix in a Nutshell.
>>
>> https://www.goodreads.com/book/show/172314.UNIX_Power_Tools
>>
>> https://www.goodreads.com/book/show/331673.UNIX_in_a_Nutshell
>>
>> Everything you ever wanted to know about the Linux shell (bash) may be
>> found in the man page (Linux Manual Page) a copy of which is here:
>>
>> https://linux.die.net/man/1/bash
>>
>> But it is not an easy read for a beginner.
>>
>> You might also want to google for "bash tutorial" or "bash beginner
>> tutorial" to get the hang of things.  GoCD uses bash on Linux.
>>
>> Once you understand how bash works some of these GoCD behaviors might
>> make more sense.
>>
>> It also helps to understand Java prior art such as Apache Ant.  Ant
>> documentation on how properties (and environment variables) are used
>> is here:
>>
>> https://ant.apache.org/manual/properties.html
>>
>> https://ant.apache.org/manual/Tasks/property.html
>>
>> I found this quote particularly instructive:
>> "When Ant started to support setting properties from environment
>> variables it ran on Java 1.2 where System.getEnv didn't work. So we
>> decided to start a command in a new process which prints the
>> environment variables, analyzes the output and creates the properties.
>> Once Java 5 became our baseline we could have switched to getEnv but
>> it returned different results on some platforms so we stuck with the
>> command approach to remain backwards compatible."
>>
>> What this basically says is that at one time Java made environment
>> variables very hard - so people tended to avoid them in the Java world
>> - and used Properties instead (while the whole rest of the world, and
>> all other programming languages, used Environment Variables).  GoCD
>> uses both.  Sort of.  You will see there there are places you can set
>> Environment Variables in GoCD where you cannot set Properties.
>>
>> You will quickly notice how Ant uses properties is similar to how Bash
>> uses environment variables.  CoCD tries to use both.
>>
>> On Windows I think GoCD uses CMD.EXE - some documentation for that is
>> here:
>>
>> https://ss64.com/nt/cmd.html
>>
>> Once you understand Environment Variables in Bash and CMD.EXE and
>> understand Properties in Ant, GoCD makes more sense.
>>
>> General Note on GoCD Documentation:
>>
>> The behavior of GoCD is controlled by the XML configuration.  The Web
>> UI documentation assumes that you already understand the XML, so it
>> doesn't always explain exactly what the Web UI does.
>>
>> I have often found it helpful to read the "Configuration Reference"
>> for segments of the "Config XML" which are related to the GoCD Web UI
>> changes that I am trying to make.
>>
>> https://docs.gocd.org/current/configuration/configuration_reference.html
>>
>> Brian Fennell
>>
>> --
>> 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/CAGJwi9gftjW9%3DDZnbQTsKoitEwSXxp8JHC1_RH1SakPaRT1_bw%40mail.gmail.com
>> .
>>
> --
> 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/CAKV4bkehET%3DvU40h8xZpF3zy5vx67Zhee-fdsAM%3DZQyBdvOH1Q%40mail.gmail.com
> <https://groups.google.com/d/msgid/go-cd/CAKV4bkehET%3DvU40h8xZpF3zy5vx67Zhee-fdsAM%3DZQyBdvOH1Q%40mail.gmail.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/CAPKX9jbeF4J0Pg9HuW-f8eysFxtyc0N%3D7wW-pCkPDVnW4mfxfQ%40mail.gmail.com.

Reply via email to