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

yiconghuang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/texera.git


The following commit(s) were added to refs/heads/main by this push:
     new da679689c4 chore(ci): add CI with new names (#3941)
da679689c4 is described below

commit da679689c4571dd61986c7e6a4f5da8d83114530
Author: Yicong Huang <[email protected]>
AuthorDate: Sat Oct 18 18:49:16 2025 -0700

    chore(ci): add CI with new names (#3941)
    
    ### What changes were proposed in this PR?
    This PR adds the following CI with new names:
    - `core` -> `scala`, currently contains all scala tests for multiple
    packages/services, we could do more separation and renaming later.
    -  `gui` -> `frontend`, that is consistent to our repo directory rename.
    - `python_udf` -> `python`, to simplify and re-purpose, because it
    contains tests for entire python engine (although a main part is to
    support UDF).
    
    Note that we will remove the old CIs in another PR.
    
    ### Any related issues, documentation, discussions?
    work related to #3939
    
    ### How was this PR tested?
    Manually tested with #3937.
    
    ### Was this PR authored or co-authored using generative AI tooling?
    No.
---
 .asf.yaml                                 |  16 ++--
 .github/workflows/github-action-build.yml | 126 ++++++++++++++++++++++++++++++
 2 files changed, 134 insertions(+), 8 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index 9e3d404f8a..21abc706b5 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -67,14 +67,14 @@ github:
         strict: true
         # contexts are the names of checks that must pass
         contexts:
-          - gui (ubuntu-latest, 18)
-          - gui (windows-latest, 18)
-          - gui (macos-latest, 18)
-          - core (ubuntu-22.04, 11)
-          - python_udf (ubuntu-latest, 3.9)
-          - python_udf (ubuntu-latest, 3.10)
-          - python_udf (ubuntu-latest, 3.11)
-          - python_udf (ubuntu-latest, 3.12)
+          - frontend (ubuntu-latest, 18)
+          - frontend (windows-latest, 18)
+          - frontend (macos-latest, 18)
+          - scala (ubuntu-22.04, 11)
+          - python (ubuntu-latest, 3.9)
+          - python (ubuntu-latest, 3.10)
+          - python (ubuntu-latest, 3.11)
+          - python (ubuntu-latest, 3.12)
           - Check License Headers
           - Validate PR title
       required_pull_request_reviews:
diff --git a/.github/workflows/github-action-build.yml 
b/.github/workflows/github-action-build.yml
index e5f95ff235..518aeddc61 100644
--- a/.github/workflows/github-action-build.yml
+++ b/.github/workflows/github-action-build.yml
@@ -30,6 +30,132 @@ concurrency:
   cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
 
 jobs:
+  frontend:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os: [ubuntu-latest, windows-latest, macos-latest]
+        include:
+          - os: macos-latest
+            arch: arm64
+          - os: ubuntu-latest
+            arch: x64
+          - os: windows-latest
+            arch: x64
+        node-version:
+          - 18
+    steps:
+      - name: Checkout Texera
+        uses: actions/checkout@v5
+      - name: Setup node
+        uses: actions/setup-node@v5
+        with:
+          node-version: ${{ matrix.node-version }}
+          architecture: ${{ matrix.arch }}
+      - uses: actions/cache@v4
+        with:
+          path: |
+            frontend/node_modules
+          key: ${{ runner.os }}-${{ matrix.arch }}-${{ matrix.node-version 
}}-yarn-cache-v1-${{ hashFiles('**/yarn.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-${{ matrix.arch }}-${{ matrix.node-version 
}}-yarn-cache-v1-
+      - name: Prepare Yarn 4.5.1
+        run: corepack enable && corepack prepare [email protected] --activate && yarn 
--cwd frontend set version 4.5.1
+      - name: Install dependency
+        run: yarn --cwd frontend install --immutable --network-timeout=100000
+      - name: Lint with Prettier & ESLint
+        run: yarn --cwd frontend format:ci
+      - name: Run frontend unit tests
+        run: yarn --cwd frontend run test:ci
+      - name: Prod build
+        run: yarn --cwd frontend run build:ci
+
+  scala:
+    strategy:
+      matrix:
+        os: [ ubuntu-22.04 ]
+        java-version: [ 11 ]
+    runs-on: ${{ matrix.os }}
+    env:
+      JAVA_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M 
-Dfile.encoding=UTF-8
+      JVM_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M 
-Dfile.encoding=UTF-8
+
+    services:
+      postgres:
+        image: postgres
+        env:
+          POSTGRES_PASSWORD: postgres
+        ports:
+          - 5432:5432
+        # Add a health check so steps wait until Postgres is ready
+        options: >-
+          --health-cmd="pg_isready -U postgres"
+          --health-interval=10s
+          --health-timeout=5s
+          --health-retries=5
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v5
+      - name: Setup JDK
+        uses: actions/setup-java@v5
+        with:
+          distribution: 'temurin'
+          java-version: 11
+      - name: Setup sbt launcher
+        uses: sbt/setup-sbt@v1
+      - uses: coursier/cache-action@v6
+        with:
+          extraSbtFiles: '["*.sbt", "project/**.{scala,sbt}", 
"project/build.properties" ]'
+      - name: Lint with scalafmt
+        run: sbt scalafmtCheckAll
+      - name: Create Databases
+        run: |
+          psql -h localhost -U postgres -f sql/texera_ddl.sql
+          psql -h localhost -U postgres -f sql/iceberg_postgres_catalog.sql
+          psql -h localhost -U postgres -f sql/texera_lakefs.sql
+        env:
+          PGPASSWORD: postgres
+      - name: Create texera_db_for_test_cases
+        run: psql -h localhost -U postgres -v DB_NAME=texera_db_for_test_cases 
-f sql/texera_ddl.sql
+        env:
+          PGPASSWORD: postgres
+      - name: Compile with sbt
+        run: sbt clean package
+      - name: Run backend tests
+        run: sbt test
+
+  python:
+    strategy:
+      matrix:
+        os: [ ubuntu-latest ]
+        python-version: [ '3.9', '3.10', '3.11', '3.12' ]
+    runs-on: ${{ matrix.os }}
+    steps:
+      - name: Checkout Texera
+        uses: actions/checkout@v5
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v6
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Install dependencies
+        run: |
+          python -m pip install --upgrade pip
+          if [ -f amber/requirements.txt ]; then pip install -r 
amber/requirements.txt; fi
+          if [ -f amber/operator-requirements.txt ]; then pip install -r 
amber/operator-requirements.txt; fi
+      - name: Install PostgreSQL
+        run: sudo apt-get update && sudo apt-get install -y postgresql
+      - name: Start PostgreSQL Service
+        run: sudo systemctl start postgresql
+      - name: Create Database and User
+        run: |
+          cd sql && sudo -u postgres psql -f iceberg_postgres_catalog.sql
+      - name: Lint with flake8 and black
+        run: |
+          cd amber/src/main/python && flake8 && black . --check
+      - name: Test with pytest
+        run: |
+          cd amber/src/main/python && pytest -sv 
--ignore=core/models/test_RTableExecutor.py
+
   gui:
     runs-on: ${{ matrix.os }}
     strategy:

Reply via email to