我有以下的Jenkins文件,我试图在make文件中打印Jenkins文件中定义的环境变量。但是,它没有反映在make文件中。它仍然是空的。
pipeline {
environment {
CREDS = credentials('some jenkins credential id')
agent{
kubernetes {
label 'mypod'
containerTemplate {
name 'ubuntu'
image 'ubuntu:16.04'
ttyEnabled true
command 'cat'
stages{
stage('execute Makefile'){
script{
sh"""
make print-jenkinsfile-env-var
echo ${CREDS_USR}
echo ${CREDS}
下面是我的Makefile。
usercred := $(CREDS)
export usercred
username := $(CRED_USR)
export username
testuser := 'newvar'
export testuser
print-jenkinsfile-env-var:
@echo "$$usercred"
@echo "$$username"
@echo "$$testuser"
建议在make文件中进行编辑,它也没有打印。
usercred := $(CREDS)
export usercred
username := $(CRED_USR)
export username
testuser := 'newvar'
export testuser
print-jenkinsfile-env-var:
@echo $(usercred)
@echo $(username)
@echo "$$testuser"
Testuser被打印出来了,因为它是在Makefile中定义的,但其他两个变量被打印为空。
我可以在脚本部分明确地打印环境变量,但在Makefile中却不能。
我正在寻找以下的工作方法
push-package:
#tgz file creation step
#push the package
@curl -u $(CREDS) -X PUT "jfrog artifactory repo url" -T *tgz
但是,我的Makefile没有得到Jenkins文件环境中存在的$(CRED)的值。然而,我可以在Jenkins文件中执行如下相同的脚本
curl -u ${CREDS} -X PUT "jfrog artifactory repo url" -T *tgz
谁能建议一下?