geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jensde...@apache.org
Subject [geode] branch develop updated: GEODE-5709: Add CI job to build Windows images (#2443)
Date Mon, 10 Sep 2018 21:03:09 GMT
This is an automated email from the ASF dual-hosted git repository.

jensdeppe pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2cd1d32  GEODE-5709: Add CI job to build Windows images (#2443)
2cd1d32 is described below

commit 2cd1d3232e14cae4b1d9a954b614a75207bf9f90
Author: Jens Deppe <jdeppe@pivotal.io>
AuthorDate: Mon Sep 10 14:03:04 2018 -0700

    GEODE-5709: Add CI job to build Windows images (#2443)
---
 .../google-windows-geode-builder/build_image.sh    | 46 +++++++++++++++++
 .../windows-packer.json                            | 59 ++++++++++++++++++++++
 ci/pipelines/images/images.yml                     | 31 +++++++++++-
 3 files changed, 135 insertions(+), 1 deletion(-)

diff --git a/ci/images/google-windows-geode-builder/build_image.sh b/ci/images/google-windows-geode-builder/build_image.sh
new file mode 100755
index 0000000..9cc8adf
--- /dev/null
+++ b/ci/images/google-windows-geode-builder/build_image.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+#
+# 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.
+
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
+  SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+  SOURCE="$(readlink "$SOURCE")"
+  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink,
we need to resolve it relative to the path where the symlink file was located
+done
+SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+
+pushd ${SCRIPTDIR}
+
+IMAGE_FAMILY_PREFIX=""
+if [[ -z "${GEODE_FORK}" ]]; then
+  echo "GEODE_FORK environment variable must be set for this script to work."
+  exit 1
+fi
+
+GEODE_BRANCH=${GEODE_BRANCH:-$(git rev-parse --abbrev-ref HEAD)}
+SANITIZED_GEODE_BRANCH=$(echo ${GEODE_BRANCH} | tr "/" "-" | tr '[:upper:]' '[:lower:]' |
cut -c 1-20)
+SANITIZED_GEODE_FORK=$(echo ${GEODE_FORK} | tr "/" "-" | tr '[:upper:]' '[:lower:]' | cut
-c 1-16)
+
+if [[ "${SANITIZED_GEODE_FORK}" != "apache" ]]; then
+  IMAGE_FAMILY_PREFIX="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-"
+fi
+
+echo "Running packer"
+packer build \
+  --var "image_family_prefix=${IMAGE_FAMILY_PREFIX}" \
+  windows-packer.json
diff --git a/ci/images/google-windows-geode-builder/windows-packer.json b/ci/images/google-windows-geode-builder/windows-packer.json
new file mode 100644
index 0000000..fffe760
--- /dev/null
+++ b/ci/images/google-windows-geode-builder/windows-packer.json
@@ -0,0 +1,59 @@
+{
+  "variables": {
+    "image_family_prefix": "local-testing-",
+    "geode_docker_image": "gcr.io/apachegeode-ci/test-container"
+  },
+  "builders": [
+    {
+      "image_name": "{{user `image_family_prefix`}}windows-geode-builder-{{timestamp}}",
+      "image_family": "{{user `image_family_prefix`}}windows-geode-builder",
+      "type": "googlecompute",
+      "project_id": "apachegeode-ci",
+      "source_image": "windows-server-1709-dc-core-for-containers-v20180814",
+      "disk_size": "100",
+      "machine_type": "n1-standard-1",
+      "communicator": "winrm",
+      "winrm_username": "packer_user",
+      "winrm_insecure": true,
+      "winrm_use_ssl": true,
+      "metadata": {
+        "windows-startup-script-cmd": "winrm quickconfig -quiet & net user /add packer_user
& net localgroup administrators packer_user /add & winrm set winrm/config/service/auth
@{Basic=\"true\"}"
+      },
+      "zone": "us-central1-a",
+      "omit_external_ip": false,
+      "use_internal_ip": true
+    }
+  ],
+  "provisioners": [
+    {
+      "type": "powershell",
+      "inline": [
+        "$ErrorActionPreference = \"Stop\"",
+        "Set-ExecutionPolicy Bypass -Scope Process -Force",
+
+        "Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression",
+        "choco install -y jdk8 git rsync",
+        "choco install -y openssh /SSHServerFeature",
+        "refreshenv",
+
+        "winrm set winrm/config/service '@{AllowUnencrypted=\"true\"}'",
+        "New-NetfirewallRule -displayname sshd -direction inbound -action allow -protocol
tcp -localport 22",        "New-Service -name sshd -description 'OpenSSH sshd server' -binarypathname
'c:\\Program Files\\OpenSSH-Win64\\sshd.exe' -startuptype automatic",                    
           "$OldPath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Session
Manager\\Environment' -Name PATH).Path",        "$NewPath = $OldPath + ';' + 'c:\\Progra [...]
+        "Install-Module -Name ProcessMitigations -Force",        "Get-ChildItem -Path \"C:\\Program
Files\\Git\\bin\" -Recurse -Include *exe | %{ Set-ProcessMitigation -Name $_.Name -Disable
ForceRelocateASLR,ForceRelocate }",        "Get-ChildItem -Path \"C:\\ProgramData\\chocolatey\"
-Recurse -Include *exe | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateASLR,ForceRelocate
}",
+
+        "write-output 'Adding openjdk docker image'",
+        "docker pull openjdk:8u181-jdk-windowsservercore-1709",
+        "write-output 'Removing unused docker images'",
+        "docker rmi microsoft/windowsservercore:1709",
+        "docker rmi microsoft/nanoserver:1709",
+
+        "write-output 'Cloning geode repo'",
+        "& 'c:\\Program Files\\Git\\bin\\git.exe' clone -b develop --depth 1 https://github.com/apache/geode.git
geode",
+        "pushd geode",        "Add-Content -Path build.gradle -Value \"subprojects {`n  task
getDeps(type: Copy) {`n  from project.sourceSets.main.runtimeClasspath`n  from project.sourceSets.test.runtimeClasspath`n
from configurations.testRuntime`n  into 'runtime/'`n }`n}\"",
+        "$Env:JAVA_HOME = 'C:\\Program Files\\Java\\jdk1.8.0_181'",
+        ".\\gradlew.bat --no-daemon rat getDeps",
+        "popd",
+        "rm -force geode"
+      ]
+    }
+  ]
+}
diff --git a/ci/pipelines/images/images.yml b/ci/pipelines/images/images.yml
index e710d4e..3395971 100644
--- a/ci/pipelines/images/images.yml
+++ b/ci/pipelines/images/images.yml
@@ -47,6 +47,14 @@ resources:
     paths:
     - ci/images/google-geode-builder
 
+- name: google-windows-geode-builder
+  type: git
+  source:
+    uri: https://github.com/((!geode-fork))/geode.git
+    branch: ((!geode-build-branch))
+    paths:
+    - ci/images/google-windows-geode-builder
+
 - name: alpine37-docker-image
   type: docker-image
   source:
@@ -162,7 +170,6 @@ jobs:
       trigger: true
     - get: google-geode-builder
       trigger: true
-    - get: alpine-tools-docker-image
   - task: build-image
     image: alpine-tools-docker-image
     config:
@@ -178,6 +185,28 @@ jobs:
       run:
         path: google-geode-builder/ci/images/google-geode-builder/build_image.sh
 
+- name: build-google-windows-geode-builder
+  public: ((!public-pipelines))
+  serial: true
+  plan:
+  - aggregate:
+    - get: google-windows-geode-builder
+      trigger: true
+  - task: build-image
+    image: alpine-tools-docker-image
+    config:
+      inputs:
+      - name: google-windows-geode-builder
+      outputs:
+      - name: results
+      platform: linux
+      params:
+        GEODE_FORK: ((!geode-fork))
+        GEODE_BRANCH: ((!geode-build-branch))
+        GEODE_DOCKER_IMAGE: gcr.io/apachegeode-ci/((!docker-image-prefix))test-container
+      run:
+        path: google-windows-geode-builder/ci/images/google-windows-geode-builder/build_image.sh
+
 - name: build-alpine-tools-docker-image
   public: ((!public-pipelines))
   serial: true


Mime
View raw message