You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by fr...@apache.org on 2019/07/14 05:43:55 UTC

[calcite] 01/02: [CALCITE-3129] Add Jenkinsfile for automated site build

This is an automated email from the ASF dual-hosted git repository.

francischuang pushed a commit to branch test-site
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit 279e248d971233dda32264881286532942638273
Author: Francis Chuang <fr...@apache.org>
AuthorDate: Sun Jun 9 15:40:40 2019 +1000

    [CALCITE-3129] Add Jenkinsfile for automated site build
---
 Jenkinsfile             | 79 +++++++++++++++++++++++++++++++++++++++++++++++++
 site/_config.yml        |  2 ++
 site/docker-compose.yml |  6 +++-
 3 files changed, 86 insertions(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..da0e1d0
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,79 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to you under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+pipeline {
+    agent {
+        node {
+            label 'git-websites'
+        }
+    }
+
+    environment {
+        COMPOSE_PROJECT_NAME = "${env.JOB_NAME}-${env.BUILD_ID}"
+    }
+
+    options {
+        timeout(time: 40, unit: 'MINUTES')
+    }
+
+    stages {
+        stage('Build Site') {
+            when {
+                branch 'test-site'
+            }
+            steps {
+                dir ("site") {
+                    sh '''docker-compose run -e JEKYLL_UID=$(id -u) -e JEKYLL_GID=$(id -g) build-site
+                        docker-compose run -d -u $(id -u):$(id -g) generate-javadoc
+                    '''
+                }
+                echo "Website assets and javadoc built."
+            }
+        }
+
+        stage('Deploy Site') {
+            when {
+                branch 'test-site'
+            }
+            steps {
+                echo 'Deploying to git repository'
+                dir ("site") {
+                    sh '''
+                        shopt -s extglob
+
+                        git clone --depth 1 --branch asf-site https://gitbox.apache.org/repos/asf/calcite-site.git deploy
+                        cd deploy/
+
+                        rm -rf !(apidocs|avatica|testapidocs)
+                        cp -r ../target/* .
+                        cp -r ../target/apidocs .
+                        cp -r ../target/testapidocs .
+
+                        git add .
+                        git commit -m "Automatic site deployment at $GIT_COMMIT"
+                        git push origin HEAD:asf-site
+                    '''
+                }
+                echo "Deployment completed."
+            }
+        }
+    }
+    post {
+        always {
+            sh 'docker system prune --force --all'
+        }
+    }
+}
\ No newline at end of file
diff --git a/site/_config.yml b/site/_config.yml
index 08427ff..f79761b 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -53,4 +53,6 @@ avaticaBaseurl: /avatica
 plugins:
     - jekyll-redirect-from
 
+future: true
+
 # End _config.yml
diff --git a/site/docker-compose.yml b/site/docker-compose.yml
index 13b808c..f975655 100644
--- a/site/docker-compose.yml
+++ b/site/docker-compose.yml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-version: '3'
+version: '3.7'
 services:
   dev:
     image: jekyll/jekyll:3
@@ -22,11 +22,15 @@ services:
       - 4000:4000
     volumes:
       - .:/srv/jekyll
+    environment:
+      TZ: "UTC"
   build-site:
     image: jekyll/jekyll:3
     command: jekyll build
     volumes:
       - .:/srv/jekyll
+    environment:
+      TZ: "UTC"
   generate-javadoc:
     image: maven
     working_dir: /usr/src/calcite