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

chanholee pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/master by this push:
     new 25ec6ed966 [ZEPPELIN-6353] Migrate Windows build CI from AppVeyor to 
GitHub Actions
25ec6ed966 is described below

commit 25ec6ed966db56ea04d995d16b77fb553665dd26
Author: ChanHo Lee <[email protected]>
AuthorDate: Thu Oct 2 19:34:17 2025 +0900

    [ZEPPELIN-6353] Migrate Windows build CI from AppVeyor to GitHub Actions
    
    ### What is this PR for?
    
    #### Background
    
    - Windows build/test currently runs on AppVeyor.
    
    #### Problem
    
    - AppVeyor jobs are hard for individual contributors to reproduce and debug.
      - Hard to debug failing Windows build test.
    - Maintaining a separate CI provider increases overhead.
    
    #### Proposal
    
    - Port the Windows build/test job to GitHub Actions with feature parity.
    
    #### Benefits
    
    - Single CI platform, easier contributor workflows, simpler maintenance.
    
    #### Definition of Done
    
    All Windows checks run on GitHub Actions and pass consistently.
    AppVeyor is removed from required checks and configuration.
    
    
    ### What type of PR is it?
    CI
    
    ### Todos
    - [x] Add a Windows workflow on GitHub Actions (build).
    - [x] Ensure caching/artifacts.
    - [ ] Disable AppVeyor from repository settings after GA workflow is green 
and stable.
    
    ### What is the Jira issue?
    [[ZEPPELIN-6353]](https://issues.apache.org/jira/browse/ZEPPELIN-6353)
    
    ### How should this be tested?
    - Check `windows-build` job in `core`
    
    ### Questions:
    * Does the license files need to update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? No
    
    
    Closes #5091 from tbonelee/migrate-windows-build.
    
    Signed-off-by: Chan Lee <[email protected]>
---
 .appveyor.yml                          |  49 ------------
 .github/workflows/core.yml             |  32 ++++++++
 zeppelin-web-angular/package-lock.json | 142 +++++++++++++++++++++++++++++++++
 zeppelin-web-angular/package.json      |   5 +-
 4 files changed, 177 insertions(+), 51 deletions(-)

diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 1ef145a226..0000000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# 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.
-#
-
-version: '0.12.0.{build}'
-
-shallow_clone: true
-
-branches:
-  except:
-    - /dependabot/
-
-platform:
-  - x64
-
-build: Script
-
-os:
-  - Visual Studio 2019
-
-environment:
-  APPVEYOR_SAVE_CACHE_ON_ERROR: True
-
-cache:
-  - '%USERPROFILE%/.m2'
-
-build_script:
-  - cmd: set JAVA_HOME=C:\Program Files\Java\jdk11
-  - cmd: >-
-      ./mvnw.cmd clean package -DskipTests ^
-      
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade.mojo.ShadeMojo=warn 
^
-      
-Dorg.slf4j.simpleLogger.log.com.googlecode.download.maven.plugin.internal.WGet=warn
 ^
-      
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency.fromDependencies.CopyDependenciesMojo=warn
 ^
-      --no-transfer-progress
diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml
index 8d4ae1e3cb..55a84f9b1e 100644
--- a/.github/workflows/core.yml
+++ b/.github/workflows/core.yml
@@ -482,3 +482,35 @@ jobs:
             ${{ runner.os }}-zeppelin-
       - name: build without any profiles
         run: ./mvnw clean verify -DskipTests ${MAVEN_ARGS}
+
+  windows-build:
+    runs-on: windows-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        java: [ 11 ]
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+      - name: Set up JDK ${{ matrix.java }}
+        uses: actions/setup-java@v4
+        with:
+          distribution: 'temurin'
+          java-version: ${{ matrix.java }}
+      - name: Cache local Maven repository
+        uses: actions/cache@v4
+        with:
+          path: |
+            ~\.m2\repository
+            !~\.m2\repository\org\apache\zeppelin\
+          key: ${{ runner.os }}-zeppelin-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-zeppelin-
+      - name: Build on Windows
+        run: |
+          .\mvnw.cmd clean package -DskipTests ^
+            
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade.mojo.ShadeMojo=warn 
^
+            
-Dorg.slf4j.simpleLogger.log.com.googlecode.download.maven.plugin.internal.WGet=warn
 ^
+            
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency.fromDependencies.CopyDependenciesMojo=warn
 ^
+            --no-transfer-progress
+        shell: cmd
diff --git a/zeppelin-web-angular/package-lock.json 
b/zeppelin-web-angular/package-lock.json
index ed0a2b4a9b..e0aef784f7 100644
--- a/zeppelin-web-angular/package-lock.json
+++ b/zeppelin-web-angular/package-lock.json
@@ -59,6 +59,7 @@
         "@types/parse5": "^5.0.2",
         "@types/webpack-env": "^1.18.8",
         "codelyzer": "^5.0.0",
+        "cross-env": "^10.1.0",
         "dotenv": "^8.0.0",
         "https-proxy-agent": "^2.2.1",
         "husky": "9.1.7",
@@ -1953,6 +1954,12 @@
         "node": ">=6.9.0"
       }
     },
+    "node_modules/@epic-web/invariant": {
+      "version": "1.0.0",
+      "resolved": 
"https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz";,
+      "integrity": 
"sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==",
+      "dev": true
+    },
     "node_modules/@gar/promisify": {
       "version": "1.1.3",
       "dev": true,
@@ -4964,6 +4971,82 @@
         "sha.js": "^2.4.8"
       }
     },
+    "node_modules/cross-env": {
+      "version": "10.1.0",
+      "resolved": 
"https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz";,
+      "integrity": 
"sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==",
+      "dev": true,
+      "dependencies": {
+        "@epic-web/invariant": "^1.0.0",
+        "cross-spawn": "^7.0.6"
+      },
+      "bin": {
+        "cross-env": "dist/bin/cross-env.js",
+        "cross-env-shell": "dist/bin/cross-env-shell.js"
+      },
+      "engines": {
+        "node": ">=20"
+      }
+    },
+    "node_modules/cross-env/node_modules/cross-spawn": {
+      "version": "7.0.6",
+      "resolved": 
"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz";,
+      "integrity": 
"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/cross-env/node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";,
+      "integrity": 
"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/cross-env/node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": 
"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";,
+      "integrity": 
"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/cross-env/node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": 
"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";,
+      "integrity": 
"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/cross-env/node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz";,
+      "integrity": 
"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
     "node_modules/cross-spawn": {
       "version": "6.0.6",
       "dev": true,
@@ -20615,6 +20698,12 @@
         "@babel/helper-validator-identifier": "^7.27.1"
       }
     },
+    "@epic-web/invariant": {
+      "version": "1.0.0",
+      "resolved": 
"https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz";,
+      "integrity": 
"sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==",
+      "dev": true
+    },
     "@gar/promisify": {
       "version": "1.1.3",
       "dev": true
@@ -22671,6 +22760,59 @@
         "sha.js": "^2.4.8"
       }
     },
+    "cross-env": {
+      "version": "10.1.0",
+      "resolved": 
"https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz";,
+      "integrity": 
"sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==",
+      "dev": true,
+      "requires": {
+        "@epic-web/invariant": "^1.0.0",
+        "cross-spawn": "^7.0.6"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "7.0.6",
+          "resolved": 
"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz";,
+          "integrity": 
"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
+          }
+        },
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": 
"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";,
+          "integrity": 
"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+          "dev": true
+        },
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": 
"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";,
+          "integrity": 
"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+          "dev": true,
+          "requires": {
+            "shebang-regex": "^3.0.0"
+          }
+        },
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": 
"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";,
+          "integrity": 
"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+          "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz";,
+          "integrity": 
"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        }
+      }
+    },
     "cross-spawn": {
       "version": "6.0.6",
       "dev": true,
diff --git a/zeppelin-web-angular/package.json 
b/zeppelin-web-angular/package.json
index ebb5e9d84e..eef8b768ee 100644
--- a/zeppelin-web-angular/package.json
+++ b/zeppelin-web-angular/package.json
@@ -5,8 +5,8 @@
     "prepare": "cd .. && husky",
     "postinstall": "npm run build:projects && npm run build:tslint-rules",
     "ng": "./node_modules/.bin/ng",
-    "start": "NODE_OPTIONS='--openssl-legacy-provider' ng serve --proxy-config 
proxy.conf.js --extra-webpack-config webpack.partial.js",
-    "build": "NODE_OPTIONS='--openssl-legacy-provider' ng build --prod 
--extra-webpack-config webpack.partial.js",
+    "start": "cross-env NODE_OPTIONS=--openssl-legacy-provider ng serve 
--proxy-config proxy.conf.js --extra-webpack-config webpack.partial.js",
+    "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider ng build --prod 
--extra-webpack-config webpack.partial.js",
     "build:tslint-rules": "tsc -p tslint-rules/tsconfig.json",
     "build:projects": "npm run build-project:sdk && npm run build-project:vis 
&& npm run build-project:helium",
     "build-helium-vis-example": " ng build --project helium-vis-example",
@@ -79,6 +79,7 @@
     "@types/parse5": "^5.0.2",
     "@types/webpack-env": "^1.18.8",
     "codelyzer": "^5.0.0",
+    "cross-env": "^10.1.0",
     "dotenv": "^8.0.0",
     "https-proxy-agent": "^2.2.1",
     "husky": "9.1.7",

Reply via email to