2017-04-22 3 views
0

Ich baue mein Continuous Delivery System mit Jenkins. Um nicht viel Geld auszugeben, habe ich meine Jenkins eingerichtet, um eine neue EC2 m4.large-Instanz zu erzeugen, wenn ein neuer Push an Bitbucket gemacht wird. Auf diese Weise bezahle ich nur, wenn ich arbeite.So senden Sie Artefakte vom EC2-Slave zurück zum Master

Das Problem ist jetzt, dass meine Artefakte im Slave bleiben und wenn die Instanz beendet ist, kann ich nicht mehr auf meine Dateien zugreifen.

die Artefakte zu archiviere ich meine Pipeline auf diese Weise ein:

pipeline { 
agent { 
    node { 
    label 'jenkins-slave-spawn' 
    } 
} 
stages { 
    stage('prepare') { 
     steps { 
      sh 'npm install' 
      sh 'npm update' 
      dir ('./scripts/Web') { 
       sh 'bower install' 
       sh 'bower update' 
      } 
      dir ('./scripts/App') { 
       sh 'bower install' 
       sh 'bower update' 
      } 
      dir ('./scripts/Site'){ 
       sh 'bower install' 
       sh 'bower update' 
      } 
      dir ('./scripts/Assistance'){ 
       sh 'bower install' 
       sh 'bower update' 
      } 
     } 
    } 
    stage('build') { 
     steps { 
      sh 'grunt build-beta' 
     } 
    } 
    stage('archive') { 
     steps { 
      archiveArtifacts artifacts: '**/builds/*', onlyIfSuccessful: true 
     } 
    } 
} 

}

Aber es scheint nicht, da ich überall meine Dateien sehen kann, nicht zu arbeiten.

+0

Sind Sie sicher, dass es Dateien in dem Verzeichnis von Ihrem Globbing Muster? Das heißt, wenn Sie vor der Archivierung ein 'ls 'machen, was zeigt es? – Rik

Antwort

1

fand ich einen Weg mit Stash und unstash und Vermittlungsknoten

pipeline { 
agent { 
    node { 
    label 'jenkins-slave-spawn' 
    } 
} 
stages { 
    stage('prepare') { 
     steps { 
      sh 'npm install' 
      sh 'npm update' 
      dir ('./scripts/Web') { 
       sh 'bower install' 
       sh 'bower update' 
      } 
      dir ('./scripts/App') { 
       sh 'bower install' 
       sh 'bower update' 
      } 
      dir ('./scripts/Site'){ 
       sh 'bower install' 
       sh 'bower update' 
      } 
      dir ('./scripts/Assistance'){ 
       sh 'bower install' 
       sh 'bower update' 
      } 
     } 
    } 
    stage('build') { 
     steps { 
      sh 'grunt build-beta' 
     } 
    } 
    stage('deploy') { 
     steps { 
      echo 'here will use pm2 to start node app' 
     } 
    } 
    stage('archive') { 
     steps { 
      stash includes: 'builds/**', name: 'slave-artifacts' 
      node('master'){ 
       unstash 'slave-artifacts' 
      } 
     } 
    } 
} 
} 
Verwandte Themen