-
-
Save cyrille-leclerc/8cad9d1b35ea553820a1 to your computer and use it in GitHub Desktop.
| docker.image('cloudbees/java-build-tools:0.0.6').inside { | |
| sshagent(['github-ssh-credentials']) { | |
| sh """ | |
| git version | |
| git config --local user.email \\"[email protected]\\" | |
| git config --local user.name \\"Cyrille Le Clerc\\" | |
| git clone [email protected]:cyrille-leclerc/a-test-repo.git | |
| date &> now.txt | |
| git commit --all -m \\"another commit\\" | |
| git push origin/master | |
| """ | |
| } | |
| } |
| Started by user admin | |
| [Pipeline] Allocate node : Start | |
| Running on docker-agent.beesshop.org in /home/ubuntu/jenkins-aws-home/workspace/tests/test-git | |
| [Pipeline] node { | |
| [Pipeline] sh | |
| [test-git] Running shell script | |
| + docker inspect -f . cloudbees/java-build-tools:0.0.6 | |
| . | |
| [Pipeline] Run build steps inside a Docker container : Start | |
| $ docker run -t -d -u 1000:1000 -w /home/ubuntu/jenkins-aws-home/workspace/tests/test-git -v /home/ubuntu/jenkins-aws-home/workspace/tests/test-git:/home/ubuntu/jenkins-aws-home/workspace/tests/test-git:rw -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** cloudbees/java-build-tools:0.0.6 cat | |
| [Pipeline] withDockerContainer { | |
| [Pipeline] SSH Agent : Start | |
| [ssh-agent] Using credentials cyrille-leclerc (GitHub cyrille-leclerc ssh) | |
| [ssh-agent] Looking for ssh-agent implementation... | |
| [ssh-agent] Java/JNR ssh-agent | |
| [ssh-agent] Started. | |
| [Pipeline] sshagent { | |
| [Pipeline] sh | |
| [test-git] Running shell script | |
| + git version | |
| git version 2.1.4 | |
| + git config --local user.email "[email protected]" | |
| + git config --local user.name "Cyrille Le Clerc" | |
| usage: git config [options] | |
| Config file location | |
| --global use global config file | |
| --system use system config file | |
| --local use repository config file | |
| -f, --file <file> use given config file | |
| --blob <blob-id> read config from given blob object | |
| Action | |
| --get get value: name [value-regex] | |
| --get-all get all values: key [value-regex] | |
| --get-regexp get values for regexp: name-regex [value-regex] | |
| --get-urlmatch get value specific for the URL: section[.var] URL | |
| --replace-all replace all matching variables: name value [value_regex] | |
| --add add a new variable: name value | |
| --unset remove a variable: name [value-regex] | |
| --unset-all remove all matches: name [value-regex] | |
| --rename-section rename section: old-name new-name | |
| --remove-section remove a section: name | |
| -l, --list list all | |
| -e, --edit open an editor | |
| --get-color <slot> find the color configured: [default] | |
| --get-colorbool <slot> | |
| find the color setting: [stdout-is-tty] | |
| Type | |
| --bool value is "true" or "false" | |
| --int value is decimal number | |
| --bool-or-int value is --bool or --int | |
| --path value is a path (file or directory name) | |
| Other | |
| -z, --null terminate values with NUL byte | |
| --includes respect include directives on lookup | |
| [Pipeline] } //sshagent | |
| [Pipeline] SSH Agent : End | |
| [Pipeline] } //withDockerContainer | |
| $ docker stop 6a8ba100abb54669d24cfc7d4b6cae0dfaad727b8f3c7a3ad186690d9ee12d4a | |
| $ docker rm -f 6a8ba100abb54669d24cfc7d4b6cae0dfaad727b8f3c7a3ad186690d9ee12d4a | |
| [Pipeline] Run build steps inside a Docker container : End | |
| [Pipeline] } //node | |
| [Pipeline] Allocate node : End | |
| [Pipeline] End of Pipeline | |
| ERROR: script returned exit code 129 | |
| Finished: FAILURE |
how to use wild character and variable together in double quoted string in jenkins pipeline
I tried
def var=1.0.4
"mv job*.war job-${var}.war"
wild character not working for me. can someone help.
Just ran into this issue myself.
If it's not clear how to do this, try with 3 single quotes and using double backslashed double quotes
Example
sh ''' echo Hello \\"World\\" echo This is a dollar sign: \\$ '''
This worked for me, thanks for the hint!
sh label: 'prep', script: '''echo {\"results\": > results.json'''
It works for me!
String escaped_commit_message = commit_message.replace('"', '\\"')
escaped_commit_message = escaped_commit_message.replace("'", /'"'"'/)It works for me!
String escaped_commit_message = commit_message.replace('"', '\\"') escaped_commit_message = escaped_commit_message.replace("'", /'"'"'/)
Nice! Thank you so much.
Would you please explain the second (slashy) replacement? I'm new to groovy and have read a little about that syntax, but don't understand why/how '"'"' works?
Unless you must, best way is to use combination of single and double quotes, e.g.:
sh """
git config --local user.email \\"[email protected]\\"
git config --local user.email '[email protected]'
Whether you must or not depends on the use of variables (groovy or shell).
P.S. very good behavioral examples: https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4 (named "Jenkinsfile idiosynchrasies with escaping and quotes" ;) )
Life saver 💯 👍