Как выполнить сценарий базы данных после развертывания образа Postgresql в openshift с Jenkins? - PullRequest
0 голосов
/ 15 января 2019

У меня есть git-репо с конвейером Jenkins и официальным шаблоном postgresql:

kind: "BuildConfig"
apiVersion: "v1"
metadata:
  name: "postgresql-pipeline"
spec:
  strategy:
    jenkinsPipelineStrategy:
      jenkinsfile: |-
        pipeline {
          agent any
          environment {
            DATABASE_NAME = 'sampledb'
            DATABASE_USER = 'root'
            DATABASE_PASSWORD = 'root'
          }
          stages {
            stage('Clone git') {
              steps {
                git '<a href="https://bitbucket.org/businnessdata_db/postgresql-test.git" rel="nofollow noreferrer">https://bitbucket.org/businnessdata_db/postgresql-test.git</a>'
              }
            }
            stage('Deploy db') {
              steps {
                sh 'oc status'
                sh 'oc delete secret/postgresql'
                sh 'oc delete pvc/postgresql'
                sh 'oc delete all -l "app=postgresql-persistent"'
                sh 'oc new-app -f openshift/templates/postgresql-persistent.json'
              }
            }
            stage('Execute users script') {
              steps {
                sh 'oc status'</p>

<code>          }
        }
        stage('Execute update script') {
          steps {
            sh 'oc status'

          }
        }
      }
    }
type: JenkinsPipeline<code>
</code>

Что я должен добавить в последние 2 шага, чтобы запустить скрипт для новой сгенерированной базы данных?

1 Ответ

0 голосов
/ 18 января 2019

Вы можете установить psql в свой контейнер Jenkins, а затем запустить скрипт через команду оболочки.

sh """
export PGPASSWORD=<password>
psql -h <host> -d <database> -U <user_name> -p <port> -a -w -f <file>.sql
   """

Или, поскольку Jenkinsfiles написаны на Groovy, используйте Groovy для выполнения ваших операторов. Вот Groovy документация для работы с базами данных.

...