mirror of
				https://github.com/woodpecker-ci/woodpecker.git
				synced 2025-11-04 10:19:06 +00:00 
			
		
		
		
	Dropped support for `DRONE_*` environment variables in pipeline steps. Pipeline meta-data can be accessed with `CI_*` variables. - `CI_*` prefix replaces `DRONE_*` - `CI` value is now `woodpecker` - `DRONE=true` has been removed
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package compiler
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"encoding/base64"
 | 
						|
	"fmt"
 | 
						|
	"strings"
 | 
						|
)
 | 
						|
 | 
						|
// generateScriptPosix is a helper function that generates a build script
 | 
						|
// for a linux container using the given
 | 
						|
func generateScriptPosix(commands []string) string {
 | 
						|
	var buf bytes.Buffer
 | 
						|
	for _, command := range commands {
 | 
						|
		escaped := fmt.Sprintf("%q", command)
 | 
						|
		escaped = strings.Replace(escaped, "$", `\$`, -1)
 | 
						|
		buf.WriteString(fmt.Sprintf(
 | 
						|
			traceScript,
 | 
						|
			escaped,
 | 
						|
			command,
 | 
						|
		))
 | 
						|
	}
 | 
						|
	script := fmt.Sprintf(
 | 
						|
		setupScript,
 | 
						|
		buf.String(),
 | 
						|
	)
 | 
						|
	return base64.StdEncoding.EncodeToString([]byte(script))
 | 
						|
}
 | 
						|
 | 
						|
// setupScript is a helper script this is added to the build to ensure
 | 
						|
// a minimum set of environment variables are set correctly.
 | 
						|
const setupScript = `
 | 
						|
if [ -n "$CI_NETRC_MACHINE" ]; then
 | 
						|
cat <<EOF > $HOME/.netrc
 | 
						|
machine $CI_NETRC_MACHINE
 | 
						|
login $CI_NETRC_USERNAME
 | 
						|
password $CI_NETRC_PASSWORD
 | 
						|
EOF
 | 
						|
chmod 0600 $HOME/.netrc
 | 
						|
fi
 | 
						|
unset CI_NETRC_USERNAME
 | 
						|
unset CI_NETRC_PASSWORD
 | 
						|
unset CI_SCRIPT
 | 
						|
%s
 | 
						|
`
 | 
						|
 | 
						|
// traceScript is a helper script that is added to the build script
 | 
						|
// to trace a command.
 | 
						|
const traceScript = `
 | 
						|
echo + %s
 | 
						|
%s
 | 
						|
`
 |