Jenkinsfile 2.96 KB
Newer Older
Boris Baldassari's avatar
Boris Baldassari committed
1
2
3
4
5
6
7
8
9
pipeline {
  agent any
  environment {
    RSYNC_PASSWD = credentials('rsync_passwd')
  }
  options {
    buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '5'))
  }
  stages {
10
    stage('Setup AERI') {
Boris Baldassari's avatar
Boris Baldassari committed
11
12
      steps {
        sh '''
13
          cp /data/aeri/* website/content/aeri_stacktraces
Boris Baldassari's avatar
Boris Baldassari committed
14
15
16
        ''' 
      }
    }
17
    stage('Setup mboxes') {
18
19
      steps {
        sh '''
Boris Baldassari's avatar
Boris Baldassari committed
20
          ls /data/eclipse_mls/ > website/content/eclipse_mls/list_mboxes.txt
Boris Baldassari's avatar
Boris Baldassari committed
21
          cp /data/eclipse_mls_full.csv.gz website/content/eclipse_mls/eclipse_mls.csv.gz
Boris Baldassari's avatar
Boris Baldassari committed
22
          cp /data/eclipse_mls_full.csv website/content/eclipse_mls/eclipse_mls.csv
Boris Baldassari's avatar
Boris Baldassari committed
23
          cp -r /data/eclipse_mls_scrambled/ website/content/eclipse_mls/mboxes/
24
25
26
27
        ''' 
      }
    }

Boris Baldassari's avatar
Boris Baldassari committed
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    stage('Build projects') {
      steps {
        sh '''
          pwd
          ls
          source ~/perl5/perlbrew/etc/bashrc 
          perlbrew switch perl-5.30.1
          perl -v 
          Rscript --version
          cd scripts/ && sh ./process_all_projects.sh
        ''' 
      }
    }
    stage('Build website') {
      steps {
        sh '''
          pwd
          ls
          source ~/perl5/perlbrew/etc/bashrc 
          Rscript --version
          echo "Building website."
          cd scripts/ && sh ./build_website.sh
          echo "Cleaning website zone from non-compressed files."
51
52
          find ../website/public/ -name "*.csv" | xargs rm -rf 
          find ../website/public/ -name "git*.txt" | xargs rm -rf 
53
54
55
56
57
58
        ''' 
      }
    }
    stage('Build download') {
      steps {
        sh '''
Boris Baldassari's avatar
Boris Baldassari committed
59
          echo "Creating download area."
60
          rsync -am --include='*.bz2' --include='*/' --exclude='*' website/public/ download/
Boris Baldassari's avatar
Boris Baldassari committed
61
          rsync -am --include='*.xz' --include='*/' --exclude='*' website/public/ download/
62
          rsync -am --include='*.gz' --include='*/' --exclude='*' website/public/ download/
Boris Baldassari's avatar
Boris Baldassari committed
63
          echo "Cleaning website zone from compressed files."
64
          find website/public/ -name "*.gz" -or -name "*.xz" -or -name "*.bz2" | xargs rm -rf 
Boris Baldassari's avatar
Boris Baldassari committed
65
66
67
68
69
70
71
72
73
74
75
76
77
78
        ''' 
      }
    }
    stage('Deploy Downloads') {
      steps {
        sh '''
          rsync -avz download/ bbaldassari2kd@projects-storage.eclipse.org:/home/data/httpd/download.eclipse.org/dataeggs/ --delete || echo "Error $?: some files/attrs were not transferred (see previous errors)"
        ''' 
      }
    }
    stage('Deploy Website') {
      steps {
        sh '''
          DATE=$(date +"%Y-%m-%d %T")
79
          rm -rf www/
80
81
          git clone ssh://bbaldassari2kd@git.eclipse.org:29418/www.eclipse.org/dataeggs.git www/
		  cd www/
82
          rm -rf *
83
          mv ../website/public/* .
84
          git add -A . 
Boris Baldassari's avatar
Boris Baldassari committed
85
          git commit -m "Publish web site $DATE."
86
          git push -u origin master
Boris Baldassari's avatar
Boris Baldassari committed
87
88
89
90
91
92
          
        ''' 
      }
    }
    stage('Archiving') {
      steps {
93
94
        archiveArtifacts artifacts: 'www/**/*.*', fingerprint: true 
        archiveArtifacts artifacts: 'download/**/*.*', fingerprint: true 
Boris Baldassari's avatar
Boris Baldassari committed
95
96
97
98
99
100
        cleanWs()
      }
    }
  }
}