如何解决如何将凭据.json文件加载到詹金斯管道作业中?
我有一个针对Google Directory API运行的脚本。
此脚本的目的是从我们公司的Google目录中下载所有用户。
但是当我运行该脚本时,会给出错误消息
FileNotFoundError: [Errno 2] No such file or directory: 'credentials.json'
尽管该文件位于文件夹中。
我需要将该文件放入凭据管理器还是... ??
我也有一个普通文件,只需安装pip并激活venv即可。
这是常规代码
stage('Check activity') {
steps {
sh 'pwd'
sh '''#!/bin/bash
set -e
if ! which pipenv >/dev/null; then
echo \'no pipenv,installing...\'
pip3 install --user pipenv
if ! which pipenv >/dev/null; then
# default location for: /home/jenkins/.local/bin/pipenv
my_pip_env="/home/${USER}/.local/bin/pipenv"
fi
else
echo \'pipenv already installed,nothing to do.\'
my_pip_env=$(which pipenv)
fi
# pipenv version,check & install
${my_pip_env} --version
${my_pip_env} install
# run script
PYTHONPATH=$(pwd):${PYTHONPATH} \\
PIPENV_PIPFILE=$(realpath ./Pipfile) \\
${my_pip_env} run -v python3 ./it/google-users/google_user.py -v "${VERSION}" -dr "${DRY_RUN}" -et "${EXCLUDED_TYPES}"
# Remove virtualenv project
${my_pip_env} --rm
'''
}
}
我需要在groovy脚本中定义环境变量吗?
解决方法
从工作区读取文件时,最好使用readFile function
readFile('credentials.json')
在您的情况下,您可以将其读入变量,然后将其传递到脚本的后续步骤。像这样:
pipeline {
agent any
stages {
stage('Check activity')
{
steps {
script {
sh '''#!/bin/bash
echo "hello" > hello.txt
'''
def mydata = readFile('hello.txt')
sh "echo My file data: ${mydata}"
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。