You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-dev@james.apache.org by ie...@apache.org on 2020/07/07 15:06:26 UTC

[james-site] branch JAMES-3226-site-build updated: [JAMES-3226] Publish the staging website automatically

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

ieugen pushed a commit to branch JAMES-3226-site-build
in repository https://gitbox.apache.org/repos/asf/james-site.git


The following commit(s) were added to refs/heads/JAMES-3226-site-build by this push:
     new e055685  [JAMES-3226] Publish the staging website automatically
e055685 is described below

commit e055685e423b92fdc5199d8043bbf1b4c9779aae
Author: Eugen Stan <eu...@ieugen.ro>
AuthorDate: Tue Jul 7 18:05:55 2020 +0300

    [JAMES-3226] Publish the staging website automatically
---
 .gitignore             |  3 ++-
 Jenkinsfile            | 15 +++++++++++++--
 doc-sites/build.gradle | 17 ++++-------------
 jenkins.pom            | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 68 insertions(+), 16 deletions(-)

diff --git a/.gitignore b/.gitignore
index 8ba4c7b..c81bc51 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,5 @@ build
 .vscode
 .project
 
-node_modules
\ No newline at end of file
+node_modules
+target
\ No newline at end of file
diff --git a/Jenkinsfile b/Jenkinsfile
index b4fc121..e7d8d72 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -37,7 +37,7 @@ pipeline {
 
     options {
         // Configure an overall timeout for the build of one hour.
-        timeout(time: 4, unit: 'HOURS')
+        timeout(time: 30, unit: 'MINUTES')
         // When we have test-fails e.g. we don't need to run the remaining steps
         skipStagesAfterUnstable()
         buildDiscarder(
@@ -50,6 +50,7 @@ pipeline {
         stage('Build') {
             steps {
                 sh "./gradlew clean build"
+                stash includes: 'doc-sites/build/site/**/*', name: 'apache-james-site'
             }
         }
 
@@ -60,8 +61,18 @@ pipeline {
         }
 
         stage('Publish') {
+            agent {
+                node {
+                    label 'git-websites'
+                }
+            }
+
             steps {
-                echo "These are not the publish commands you are looking for."
+                echo "Deploy staging James website."
+
+                unstash 'apache-james-site'
+
+                sh 'mvn -f jenkins.pom -X -P deploy-site scm-publish:publish-scm'
             }
         }
     }
diff --git a/doc-sites/build.gradle b/doc-sites/build.gradle
index 69fded0..e9fe967 100644
--- a/doc-sites/build.gradle
+++ b/doc-sites/build.gradle
@@ -1,8 +1,6 @@
 plugins {
   id 'base'
   id 'com.github.node-gradle.node' version '2.2.4'
-  id 'org.ajoberstar.grgit' version '4.0.2'
-  id 'org.ajoberstar.git-publish' version '2.1.3'
 }
 
 node {
@@ -11,23 +9,17 @@ node {
   download = true
 }
 
-def siteOutputDir = "$buildDir/site"
-
-gitPublish {
-    repoDir = file(siteOutputDir)
-    branch = 'asf-staging-test'
-}
+def siteOutputDir = "${buildDir}/site";
 
 task generateDocs(type: NpxTask) {
   dependsOn npmInstall
-  // dependsOn gitPublishReset
 
   inputs.files('package.json', 'package-lock.json', 'antora-playbook.yml')
   inputs.dir(fileTree('node_modules').exclude('.cache'))
-  outputs.dir(gitPublish.repoDir)
+  outputs.dir(siteOutputDir)
 
   command = 'antora'
-  args = ['antora-playbook.yml', '--to-dir', siteOutputDir ]
+  args = ['antora-playbook.yml' ]
 }
 
 task copySomeFiles(type: Copy) {
@@ -40,5 +32,4 @@ task buildSite() {
   dependsOn generateDocs, copySomeFiles
 }
 
-tasks.build.dependsOn buildSite
-tasks.gitPublishCommit.dependsOn buildSite
\ No newline at end of file
+tasks.build.dependsOn buildSite
\ No newline at end of file
diff --git a/jenkins.pom b/jenkins.pom
new file mode 100644
index 0000000..d123aba
--- /dev/null
+++ b/jenkins.pom
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+    </parent>
+
+    <groupId>org.apache.james</groupId>
+    <artifactId>james-jenkins-tools</artifactId>
+    <version>0.1.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+
+    <name>Apache James: Jenkins Tools</name>
+    <description>Set of helpers to do individual tasks only needed on our Jenkins build.</description>
+
+    <!-- See https://cwiki.apache.org/confluence/display/INFRA/Multibranch+Pipeline+recipes#MultibranchPipelinerecipes-DeployingWebsiteContent -->
+
+    <!-- We are publishing the site to a different repository -->
+    <distributionManagement>
+        <site>
+            <id>apache.website</id>
+            <url>scm:git:https://gitbox.apache.org/repos/asf/james-site.git</url>
+        </site>
+    </distributionManagement>
+
+    <profiles>
+        <profile>
+            <id>deploy-site</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-scm-publish-plugin</artifactId>
+                        <configuration>
+                            <content>doc-sites/build/site</content>
+                            <scmBranch>asf-staging</scmBranch>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
\ No newline at end of file