Я пытаюсь заставить трубопровод работать. Я понял, что jenkins не извлекает код из (publi c) Github-репозитория.
Я создал новый publi c key
ssh-keygen -t rsa -b 4096 -C yyyygmail.com
eval "$(ssh-agent -s)"
sh-add -K ~/.ssh/id_rsa
pbcopy < ~/.ssh/id_rsa.pub
, а затем скопировал его в мой Github. account
Я протестировал его и смог получить / pu sh, используя s sh.
Затем в Jenkins я создал новые учетные данные и вставил id_rsa.pub
Я вставил это даже в моего пользователя.
Когда я запускаю сборку, используя этот Jenkinsfile
pipeline {
agent { docker { image 'python:3.7.1' } }
options {
skipDefaultCheckout(true)
// Keep the 10 most recent builds
buildDiscarder(logRotator(numToKeepStr: '10'))
timestamps()
}
stages {
stage('Build environment') {
steps {withEnv(["HOME=${env.WORKSPACE}"]) {
sh 'python --version'
sh 'python -m pip install --upgrade pip --user'
sh 'pip install --user -r requirements.txt --user'
}}
}
stage('Test environment') {
steps {withEnv(["HOME=${env.WORKSPACE}"]) {
sh '''
python -m pip list
which pip
which python
python --version
'''
}}
}
stage('test') {
steps {withEnv(["HOME=${env.WORKSPACE}"]) {
sh '''
echo "This is start $(pwd)"
python jenkins_test.py
'''
}}
}
}
}
Я получаю
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
Теперь я знаю соединение с Github все в порядке, так как в начале сборки Дженкинс может получить Jenkinsfile
Started by user xxx
Obtained Jenkinsfile from git git@github.com:username/reponame.git
Если я go внутри папки сборки, я вижу, что там не было никакого кода, вытащенного.
Так мне интересно, что я делаю не так?