Я новичок в плагине Jenkins Kubernetes и Kubernetes в целом — https://github.com/jenkinsci/kubernetes-plugin
Я хочу использовать плагин для настройки тестов E2E внутри моего CI.
Внутри моего Jenkinsfile
у меня есть podTemplate
, который выглядит и используется следующим образом:
def podTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: website
image: ${WEBSITE_INTEGRATION_IMAGE_PATH}
command:
- cat
tty: true
ports:
- containerPort: 3000
- name: cypress
resources:
requests:
memory: 2Gi
limit:
memory: 4Gi
image: ${CYPRESS_IMAGE_PATH}
command:
- cat
tty: true
"""
pipeline {
agent {
label 'docker'
}
stages {
stage('Prepare') {
steps {
timeout(time: 15) {
script {
ci_machine = docker.build("${WEBSITE_IMAGE_PATH}")
}
}
}
}
stage('Build') {
steps {
timeout(time: 15) {
script {
ci_machine.inside("-u root") {
sh "yarn build"
}
}
}
}
post {
success {
timeout(time: 15) {
script {
docker.withRegistry("https://${REGISTRY}", REGISTRY_CREDENTIALS) {
integrationImage = docker.build("${WEBSITE_INTEGRATION_IMAGE_PATH}")
integrationImage.push()
}
}
}
}
}
}
stage('Browser Tests') {
agent {
kubernetes {
label "${KUBERNETES_LABEL}"
yaml podTemplate
}
}
steps {
timeout(time: 5, unit: 'MINUTES') {
container("website") {
sh "yarn start"
}
container("cypress") {
sh "yarn test:e2e"
}
}
}
}
}
В Dockerfile
, который создает образ, я добавил ENTRYPOINT
ENTRYPOINT ["bash", "./docker-entrypoint.sh"]
Однако кажется, что он не выполняется плагином kubernetes.
Я что-то упускаю?
kubernetes
будет игнорироваться, поскольку вы задали глобально агентdocker
. - person Matt Schuchard   schedule 11.07.2019container("website") {
я могу сделать несколькоsh
вызовов, чтобы изучить содержимое образа Docker, который был отправлен на шагеpost
. - person Kosmetika   schedule 11.07.2019