mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-06-02 21:49:25 +00:00
Move executed command printing to output prefix to constant
This commit is contained in:
parent
1d093f1b39
commit
52c9ff5eb1
|
@ -19,6 +19,8 @@ import (
|
|||
"fmt"
|
||||
|
||||
"github.com/alessio/shellescape"
|
||||
|
||||
backend "go.woodpecker-ci.org/woodpecker/v2/pipeline/backend/types"
|
||||
)
|
||||
|
||||
// generateScriptPosix is a helper function that generates a step script
|
||||
|
@ -31,7 +33,7 @@ func generateScriptPosix(commands []string) string {
|
|||
for _, command := range commands {
|
||||
buf.WriteString(fmt.Sprintf(
|
||||
traceScript,
|
||||
shellescape.Quote(command),
|
||||
shellescape.Quote(backend.CommandPrefix+" "+command),
|
||||
command,
|
||||
))
|
||||
}
|
||||
|
@ -58,6 +60,6 @@ unset CI_SCRIPT
|
|||
// traceScript is a helper script that is added to the step script
|
||||
// to trace a command.
|
||||
const traceScript = `
|
||||
echo + %s
|
||||
echo %s
|
||||
%s
|
||||
`
|
||||
|
|
|
@ -40,13 +40,13 @@ unset CI_NETRC_USERNAME
|
|||
unset CI_NETRC_PASSWORD
|
||||
unset CI_SCRIPT
|
||||
|
||||
echo + 'echo ${PATH}'
|
||||
echo '⮞ echo ${PATH}'
|
||||
echo ${PATH}
|
||||
|
||||
echo + 'go build'
|
||||
echo '⮞ go build'
|
||||
go build
|
||||
|
||||
echo + 'go test'
|
||||
echo '⮞ go test'
|
||||
go test
|
||||
`,
|
||||
},
|
||||
|
|
|
@ -7,8 +7,8 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
windowsScriptBase64 = "CiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnU3RvcCc7CiZjbWQgL2MgIm1rZGlyIGM6XHJvb3QiOwppZiAoJEVudjpDSV9ORVRSQ19NQUNISU5FKSB7CiRuZXRyYz1bc3RyaW5nXTo6Rm9ybWF0KCJ7MH1cX25ldHJjIiwkRW52OkhPTUUpOwoibWFjaGluZSAkRW52OkNJX05FVFJDX01BQ0hJTkUiID4+ICRuZXRyYzsKImxvZ2luICRFbnY6Q0lfTkVUUkNfVVNFUk5BTUUiID4+ICRuZXRyYzsKInBhc3N3b3JkICRFbnY6Q0lfTkVUUkNfUEFTU1dPUkQiID4+ICRuZXRyYzsKfTsKW0Vudmlyb25tZW50XTo6U2V0RW52aXJvbm1lbnRWYXJpYWJsZSgiQ0lfTkVUUkNfUEFTU1dPUkQiLCRudWxsKTsKW0Vudmlyb25tZW50XTo6U2V0RW52aXJvbm1lbnRWYXJpYWJsZSgiQ0lfU0NSSVBUIiwkbnVsbCk7CgpXcml0ZS1PdXRwdXQgKCcrICJlY2hvIGhlbGxvIHdvcmxkIicpOwomIGVjaG8gaGVsbG8gd29ybGQ7IGlmICgkTEFTVEVYSVRDT0RFIC1uZSAwKSB7ZXhpdCAkTEFTVEVYSVRDT0RFfQoK"
|
||||
posixScriptBase64 = "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdlY2hvIGhlbGxvIHdvcmxkJwplY2hvIGhlbGxvIHdvcmxkCg=="
|
||||
windowsScriptBase64 = "CiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAnU3RvcCc7CiZjbWQgL2MgIm1rZGlyIGM6XHJvb3QiOwppZiAoJEVudjpDSV9ORVRSQ19NQUNISU5FKSB7CiRuZXRyYz1bc3RyaW5nXTo6Rm9ybWF0KCJ7MH1cX25ldHJjIiwkRW52OkhPTUUpOwoibWFjaGluZSAkRW52OkNJX05FVFJDX01BQ0hJTkUiID4+ICRuZXRyYzsKImxvZ2luICRFbnY6Q0lfTkVUUkNfVVNFUk5BTUUiID4+ICRuZXRyYzsKInBhc3N3b3JkICRFbnY6Q0lfTkVUUkNfUEFTU1dPUkQiID4+ICRuZXRyYzsKfTsKW0Vudmlyb25tZW50XTo6U2V0RW52aXJvbm1lbnRWYXJpYWJsZSgiQ0lfTkVUUkNfUEFTU1dPUkQiLCRudWxsKTsKW0Vudmlyb25tZW50XTo6U2V0RW52aXJvbm1lbnRWYXJpYWJsZSgiQ0lfU0NSSVBUIiwkbnVsbCk7CgpXcml0ZS1PdXRwdXQgKCfirp4gZWNobyBoZWxsbyB3b3JsZCcpOwomIGVjaG8gaGVsbG8gd29ybGQ7IGlmICgkTEFTVEVYSVRDT0RFIC1uZSAwKSB7ZXhpdCAkTEFTVEVYSVRDT0RFfQoK"
|
||||
posixScriptBase64 = "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyAn4q6eIGVjaG8gaGVsbG8gd29ybGQnCmVjaG8gaGVsbG8gd29ybGQK"
|
||||
)
|
||||
|
||||
func TestGenerateContainerConf(t *testing.T) {
|
||||
|
|
|
@ -18,16 +18,16 @@ import (
|
|||
"bytes"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
backend "go.woodpecker-ci.org/woodpecker/v2/pipeline/backend/types"
|
||||
)
|
||||
|
||||
func generateScriptWindows(commands []string) string {
|
||||
var buf bytes.Buffer
|
||||
for _, command := range commands {
|
||||
escaped := fmt.Sprintf("%q", command)
|
||||
escaped = strings.ReplaceAll(escaped, "$", `\$`)
|
||||
buf.WriteString(fmt.Sprintf(
|
||||
traceScriptWin,
|
||||
escaped,
|
||||
strings.ReplaceAll(backend.CommandPrefix+" "+command, "'", "''"),
|
||||
command,
|
||||
))
|
||||
}
|
||||
|
@ -55,6 +55,6 @@ $netrc=[string]::Format("{0}\_netrc",$Env:HOME);
|
|||
// traceScript is a helper script that is added to the step script
|
||||
// to trace a command.
|
||||
const traceScriptWin = `
|
||||
Write-Output ('+ %s');
|
||||
Write-Output ('%s');
|
||||
& %s; if ($LASTEXITCODE -ne 0) {exit $LASTEXITCODE}
|
||||
`
|
||||
|
|
|
@ -39,13 +39,13 @@ $netrc=[string]::Format("{0}\_netrc",$Env:HOME);
|
|||
[Environment]::SetEnvironmentVariable("CI_NETRC_PASSWORD",$null);
|
||||
[Environment]::SetEnvironmentVariable("CI_SCRIPT",$null);
|
||||
|
||||
Write-Output ('+ "echo %PATH%"');
|
||||
Write-Output ('⮞ echo %PATH%');
|
||||
& echo %PATH%; if ($LASTEXITCODE -ne 0) {exit $LASTEXITCODE}
|
||||
|
||||
Write-Output ('+ "go build"');
|
||||
Write-Output ('⮞ go build');
|
||||
& go build; if ($LASTEXITCODE -ne 0) {exit $LASTEXITCODE}
|
||||
|
||||
Write-Output ('+ "go test"');
|
||||
Write-Output ('⮞ go test');
|
||||
& go test; if ($LASTEXITCODE -ne 0) {exit $LASTEXITCODE}
|
||||
|
||||
`,
|
||||
|
|
|
@ -112,10 +112,10 @@ func TestToConfigSmall(t *testing.T) {
|
|||
"wp_uuid": "09238932",
|
||||
},
|
||||
Env: []string{
|
||||
"CI_SCRIPT=CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW" +
|
||||
"5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9" +
|
||||
"GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JE" +
|
||||
"CnVuc2V0IENJX1NDUklQVAoKZWNobyArICdnbyB0ZXN0JwpnbyB0ZXN0Cg==",
|
||||
"CI_SCRIPT=CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lI" +
|
||||
"CRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCm" +
|
||||
"NobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnV" +
|
||||
"uc2V0IENJX1NDUklQVAoKZWNobyAn4q6eIGdvIHRlc3QnCmdvIHRlc3QK",
|
||||
"HOME=/root",
|
||||
"SHELL=/bin/sh",
|
||||
},
|
||||
|
@ -170,11 +170,11 @@ func TestToConfigFull(t *testing.T) {
|
|||
"wp_uuid": "09238932",
|
||||
},
|
||||
Env: []string{
|
||||
"CI_SCRIPT=CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW" +
|
||||
"5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU" +
|
||||
"9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1" +
|
||||
"JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdnbyB0ZXN0JwpnbyB0ZXN0CgplY2hvICsgJ2dvIHZldCAuLy4uLicKZ28gdmV0IC" +
|
||||
"4vLi4uCg==",
|
||||
"CI_SCRIPT=CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5l" +
|
||||
"ICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9G" +
|
||||
"CmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JE" +
|
||||
"CnVuc2V0IENJX1NDUklQVAoKZWNobyAn4q6eIGdvIHRlc3QnCmdvIHRlc3QKCmVjaG8gJ+KuniBnbyB2ZXQgLi8uLi4nCmdvIHZl" +
|
||||
"dCAuLy4uLgo=",
|
||||
"HOME=/root",
|
||||
"SHELL=/bin/sh",
|
||||
"TAGS=sqlite",
|
||||
|
|
|
@ -101,6 +101,10 @@ func TestTinyPod(t *testing.T) {
|
|||
"name": "CI",
|
||||
"value": "woodpecker"
|
||||
},
|
||||
{
|
||||
"name": "CI_SCRIPT",
|
||||
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyAn4q6eIGdyYWRsZSBidWlsZCcKZ3JhZGxlIGJ1aWxkCg=="
|
||||
},
|
||||
{
|
||||
"name": "HOME",
|
||||
"value": "/root"
|
||||
|
@ -108,10 +112,6 @@ func TestTinyPod(t *testing.T) {
|
|||
{
|
||||
"name": "SHELL",
|
||||
"value": "/bin/sh"
|
||||
},
|
||||
{
|
||||
"name": "CI_SCRIPT",
|
||||
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdncmFkbGUgYnVpbGQnCmdyYWRsZSBidWlsZAo="
|
||||
}
|
||||
],
|
||||
"resources": {},
|
||||
|
@ -202,12 +202,12 @@ func TestFullPod(t *testing.T) {
|
|||
"env": [
|
||||
"<<UNORDERED>>",
|
||||
{
|
||||
"name": "CGO",
|
||||
"value": "0"
|
||||
"name": "CI_SCRIPT",
|
||||
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyAn4q6eIGdvIGdldCcKZ28gZ2V0CgplY2hvICfirp4gZ28gdGVzdCcKZ28gdGVzdAo="
|
||||
},
|
||||
{
|
||||
"name": "CI_SCRIPT",
|
||||
"value": "CmlmIFsgLW4gIiRDSV9ORVRSQ19NQUNISU5FIiBdOyB0aGVuCmNhdCA8PEVPRiA+ICRIT01FLy5uZXRyYwptYWNoaW5lICRDSV9ORVRSQ19NQUNISU5FCmxvZ2luICRDSV9ORVRSQ19VU0VSTkFNRQpwYXNzd29yZCAkQ0lfTkVUUkNfUEFTU1dPUkQKRU9GCmNobW9kIDA2MDAgJEhPTUUvLm5ldHJjCmZpCnVuc2V0IENJX05FVFJDX1VTRVJOQU1FCnVuc2V0IENJX05FVFJDX1BBU1NXT1JECnVuc2V0IENJX1NDUklQVAoKZWNobyArICdnbyBnZXQnCmdvIGdldAoKZWNobyArICdnbyB0ZXN0JwpnbyB0ZXN0Cg=="
|
||||
"name": "CGO",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": "HOME",
|
||||
|
|
|
@ -22,12 +22,14 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/alessio/shellescape"
|
||||
|
||||
backend "go.woodpecker-ci.org/woodpecker/v2/pipeline/backend/types"
|
||||
)
|
||||
|
||||
func (e *local) genCmdByShell(shell string, cmds []string) (args []string, err error) {
|
||||
script := ""
|
||||
for _, cmd := range cmds {
|
||||
script += fmt.Sprintf("echo %s\n%s\n", strings.TrimSpace(shellescape.Quote("+ "+cmd)), cmd)
|
||||
script += fmt.Sprintf("echo %s\n%s\n", strings.TrimSpace(shellescape.Quote(backend.CommandPrefix+" "+cmd)), cmd)
|
||||
}
|
||||
script = strings.TrimSpace(script)
|
||||
|
||||
|
@ -35,7 +37,7 @@ func (e *local) genCmdByShell(shell string, cmds []string) (args []string, err e
|
|||
case "cmd":
|
||||
script := "@SET PROMPT=$\n"
|
||||
for _, cmd := range cmds {
|
||||
script += fmt.Sprintf("@echo + %s\n", strings.TrimSpace(shellescape.Quote(cmd)))
|
||||
script += fmt.Sprintf("@echo %s\n", strings.TrimSpace(shellescape.Quote(backend.CommandPrefix+" "+cmd)))
|
||||
script += fmt.Sprintf("@%s\n", cmd)
|
||||
script += "@IF NOT %ERRORLEVEL% == 0 exit %ERRORLEVEL%\n"
|
||||
}
|
||||
|
@ -51,7 +53,7 @@ func (e *local) genCmdByShell(shell string, cmds []string) (args []string, err e
|
|||
case "fish":
|
||||
script := ""
|
||||
for _, cmd := range cmds {
|
||||
script += fmt.Sprintf("echo %s\n%s || exit $status\n", strings.TrimSpace(shellescape.Quote("+ "+cmd)), cmd)
|
||||
script += fmt.Sprintf("echo %s\n%s || exit $status\n", strings.TrimSpace(shellescape.Quote(backend.CommandPrefix+" "+cmd)), cmd)
|
||||
}
|
||||
return []string{"-c", script}, nil
|
||||
case "powershell", "pwsh":
|
||||
|
|
|
@ -21,6 +21,9 @@ import (
|
|||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
// CommandPrefix is the prefix to output before each command
|
||||
const CommandPrefix = "⮞"
|
||||
|
||||
// Backend defines a container orchestration backend and is used
|
||||
// to create and manage container resources.
|
||||
type Backend interface {
|
||||
|
|
Loading…
Reference in a new issue