Jenkinsfile 3.85 KB
Newer Older
Boris Baldassari's avatar
Boris Baldassari committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pipeline {
  agent any
  environment {
    RSYNC_PASSWD = credentials('rsync_passwd')
  }
  options {
    buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '5'))
  }
  stages {
    stage('Build AERI') {
      steps {
        sh '''
          wget https://castalia.camp/dl/datasets/incidents_bundles_extract.csv.bz2 -O website/content/aeri_stacktraces/incidents_bundles_extract.csv.bz2
          wget https://castalia.camp/dl/datasets/incidents_extract.csv.bz2 -O website/content/aeri_stacktraces/incidents_extract.csv.bz2
          wget https://castalia.camp/dl/datasets/incidents_full.tar.bz2 -O website/content/aeri_stacktraces/incidents_full.tar.bz2
          wget https://castalia.camp/dl/datasets/problems_extract.csv.bz2 -O website/content/aeri_stacktraces/problems_extract.csv.bz2
          wget https://castalia.camp/dl/datasets/problems_full.tar.bz2 -O website/content/aeri_stacktraces/problems_full.tar.bz2
        ''' 
      }
    }
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    stage('Build mboxes') {
      steps {
        sh '''
          rm /data/eclipse_mls/*.mbox.lock || echo "No mbox lock found."
#          rsync -avlp -e ssh --rsh="/usr/bin/sshpass -p ${SYS_RSYNC_PASSWD} ssh -o StrictHostKeyChecking=no -l bbaldassari2kd" build.eclipse.org:/opt/public/download-staging.priv/scava/ /data/eclipse_mls/ || echo "Rsync had issues. But the show must go on, right?"
          chmod 777 /data/eclipse_mls/*
          source ~/perl5/perlbrew/etc/bashrc 
          perlbrew switch perl-5.30.1
          perl -v 
          Rscript --version
          cd scripts/ && sh ./process_mboxes.sh
          ls /data/eclipse_mls/ > ../website/content/eclipse_mls/list_mboxes.txt
          cp /data/eclipse_mls_full.csv ../website/content/eclipse_mls/
        ''' 
      }
    }

Boris Baldassari's avatar
Boris Baldassari committed
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    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."
61
62
          find ../website/public/ -name "*.csv" | xargs rm -rf 
          find ../website/public/ -name "git*.txt" | xargs rm -rf 
63
64
65
66
67
68
        ''' 
      }
    }
    stage('Build download') {
      steps {
        sh '''
Boris Baldassari's avatar
Boris Baldassari committed
69
          echo "Creating download area."
70
71
          rsync -am --include='*.bz2' --include='*/' --exclude='*' website/public/ download/
          rsync -am --include='*.gz' --include='*/' --exclude='*' website/public/ download/
Boris Baldassari's avatar
Boris Baldassari committed
72
          echo "Cleaning website zone from compressed files."
73
          find website/public/ -name "*.gz" -or -name "*.xz" -or -name "*.bz2" | xargs rm -rf 
Boris Baldassari's avatar
Boris Baldassari committed
74
75
76
77
78
79
80
81
82
83
84
85
86
87
        ''' 
      }
    }
    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")
88
          rm -rf www/
89
90
          git clone ssh://bbaldassari2kd@git.eclipse.org:29418/www.eclipse.org/dataeggs.git www/
		  cd www/
91
          rm -rf *
92
          mv ../website/public/* .
93
          git add -A . 
Boris Baldassari's avatar
Boris Baldassari committed
94
          git commit -m "Publish web site $DATE."
95
          git push -u origin master
Boris Baldassari's avatar
Boris Baldassari committed
96
97
98
99
100
101
          
        ''' 
      }
    }
    stage('Archiving') {
      steps {
102
103
        archiveArtifacts artifacts: 'www/**/*.*', fingerprint: true 
        archiveArtifacts artifacts: 'download/**/*.*', fingerprint: true 
Boris Baldassari's avatar
Boris Baldassari committed
104
105
106
107
108
109
        cleanWs()
      }
    }
  }
}