Jenkinsfile 3.07 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
        ''' 
      }
    }
    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."
44
45
          find ../website/public/ -name "*.csv" | xargs rm -rf 
          find ../website/public/ -name "git*.txt" | xargs rm -rf 
46
47
48
49
50
51
        ''' 
      }
    }
    stage('Build download') {
      steps {
        sh '''
Boris Baldassari's avatar
Boris Baldassari committed
52
          echo "Creating download area."
53
54
          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
55
          echo "Cleaning website zone from compressed files."
56
          find website/public/ -name "*.gz" -or -name "*.xz" -or -name "*.bz2" | xargs rm -rf 
Boris Baldassari's avatar
Boris Baldassari committed
57
58
59
60
61
62
63
64
65
66
67
68
69
70
        ''' 
      }
    }
    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")
71
          rm -rf www/
72
73
          git clone ssh://bbaldassari2kd@git.eclipse.org:29418/www.eclipse.org/dataeggs.git www/
		  cd www/
74
          rm -rf *
75
          mv ../website/public/* .
76
          git add -A . 
Boris Baldassari's avatar
Boris Baldassari committed
77
          git commit -m "Publish web site $DATE."
78
          git push -u origin master
Boris Baldassari's avatar
Boris Baldassari committed
79
80
81
82
83
84
          
        ''' 
      }
    }
    stage('Archiving') {
      steps {
85
86
        archiveArtifacts artifacts: 'www/**/*.*', fingerprint: true 
        archiveArtifacts artifacts: 'download/**/*.*', fingerprint: true 
Boris Baldassari's avatar
Boris Baldassari committed
87
88
89
90
91
92
        cleanWs()
      }
    }
  }
}