2.12 - Pipeline
Pipeline
O Openshift possui integração nativa com o Jenkins, o que nos permite criar pipelines de forma simples.
Para isso, precisamos criar um BuildConfig.
Crie um arquivo chamado jenkins-pipeline.groovy
dentro do seu repositório do github. Para isso, siga o procedimento, já demonstrado nos labs anteriores, de criação do novo arquivo pela Web Console do Github. O conteúdo do arquivo segue abaixo:
node('maven') {
stage('build') {
echo 'building app :)'
openshiftBuild(buildConfig: 'workshop-ocp', showBuildLogs: 'true')
}
stage('verify') {
echo 'dummy verification....'
}
stage('deploy') {
input 'Manual Approval'
openshiftDeploy(deploymentConfig: 'workshop-ocp')
}
stage('promoting to QA') {
echo 'fake stage...'
sleep 5
}
}
No final, seu repositório deve estar conforme imagem abaixo:

Pela console, clique em Add to Project > Import YAML / JSON
e cole o conteúdo abaixo:
AVISO: Repare que existe um campo que deve ser alterado com o nome do usuário do github.
kind: "BuildConfig"
apiVersion: "v1"
metadata:
name: "workshop-pipeline"
annotations:
pipeline.alpha.openshift.io/uses: '[{"name": "workshop-ocp", "kind": "DeploymentConfig"}]'
spec:
source:
type: "Git"
git:
uri: "http://github.com/<usuario-do-github>/workshop-ocp.git"
strategy:
type: "JenkinsPipeline"
jenkinsPipelineStrategy:
jenkinsfilePath: "jenkins-pipeline.groovy"
No Openshift, siga os passos a seguir:

Depois cole o conteúdo do arquivo e altere o nome do usuário do github.

Clique em Create
Observe que logo ao fim da execução deste passo, o Jenkins (master/slave) será provisionado automaticamente no projeto em questão.

No menu lateral esquerdo, selecione a opção Builds
> Pipelines
e selecione a opção Start pipeline

Depois clique em Start pipeline

Você pode visualizar o log por meio da opção:

Quando você clicar no log, ele te pedirá para logar usando suas credenciais do Openshift.

Aceite as permissões

Quando seu pipeline estiver executando, ele ficará semelhante a imagem abaixo:

Limpeza do ambiente
Depois de ter finalizado o seu pipeline, limpe seu ambiente rodando o comando:
oc delete all -l app=jenkins-ephemeral && oc delete bc workshop-pipeline
Mais informações
Last updated