Skip to content

Commit db7741e

Browse files
authored
Merge pull request #5 from vim89/codex/improve-ci-workflows-with-parallel-jobs
Split CI into parallel module matrix
2 parents 02be2b1 + ff115c7 commit db7741e

2 files changed

Lines changed: 40 additions & 53 deletions

File tree

.github/WORKFLOWS_SUMMARY.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## **FINAL STATE - Production-Ready CI/CD**
44

5+
### 🧪 **CI Matrix Build Status**
6+
7+
| Module | Status |
8+
|--------|--------|
9+
| core | ![core](https://github.com/flowforge/flowforge/actions/workflows/ci.yml/badge.svg?job=core) |
10+
| connectors | ![connectors](https://github.com/flowforge/flowforge/actions/workflows/ci.yml/badge.svg?job=connectors) |
11+
| engines | ![engines](https://github.com/flowforge/flowforge/actions/workflows/ci.yml/badge.svg?job=engines) |
12+
513
### 🚀 **Active Workflows (8 files)**
614

715
| Workflow | Purpose | Status | Triggers |

.github/workflows/ci.yml

Lines changed: 32 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,32 @@ env:
1111
SBT_OPTS: -Xmx4G -XX:+UseG1GC
1212

1313
jobs:
14-
build-and-test:
15-
name: Build and test
14+
build:
15+
strategy:
16+
matrix:
17+
include:
18+
- module: core
19+
commands: >
20+
scalafmtCheckAll scalafixAll core/test compile-fail-tests/test
21+
paths: |
22+
target
23+
modules/core/target
24+
modules/compile-fail-tests/target
25+
- module: connectors
26+
commands: >
27+
connectors/test connectors-gcs/test
28+
paths: |
29+
target
30+
modules/connectors/target
31+
modules/connectors-gcs/target
32+
- module: engines
33+
commands: >
34+
engines-spark/test engines-flink/test "engines-spark/testOnly *StreamingCDCSpec" "engines-flink/testOnly *EngineAbstractionSpec"
35+
paths: |
36+
target
37+
modules/engines-spark/target
38+
modules/engines-flink/target
39+
name: ${{ matrix.module }}
1640
runs-on: ubuntu-22.04
1741
steps:
1842
- name: Checkout
@@ -31,58 +55,13 @@ jobs:
3155
~/.ivy2/cache
3256
~/.cache/coursier
3357
~/.sbt
34-
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt', '**/project/**/*.sbt', '**/project/**/Dependencies.scala') }}
58+
${{ matrix.paths }}
59+
key: ${{ runner.os }}-sbt-${{ matrix.module }}-${{ hashFiles('**/build.sbt', '**/project/**/*.sbt', format('modules/{0}/**', matrix.module)) }}
3560
restore-keys: |
36-
${{ runner.os }}-sbt-
37-
38-
- name: Check formatting and linting
39-
run: sbt scalafmtCheckAll scalafixAll
40-
41-
- name: Compile all modules
42-
run: sbt compile Test/compile
43-
44-
- name: Run tests with coverage
45-
run: |
46-
sbt coverage test
47-
sbt coverageReport
48-
sbt coverageAggregate
49-
50-
- name: Upload coverage reports to Codecov
51-
uses: codecov/codecov-action@v4
52-
with:
53-
file: target/scala-2.13/scoverage-report/scoverage.xml
54-
token: ${{ secrets.CODECOV_TOKEN }}
55-
fail_ci_if_error: false
61+
${{ runner.os }}-sbt-${{ matrix.module }}-
5662
57-
- name: Run compile-fail tests
58-
run: |
59-
echo "🔥 Running compile-fail tests - proving FlowForge's core USP"
60-
sbt "compile-fail-tests / test"
61-
echo "✅ Compile-fail tests passed - contract drift prevention verified!"
62-
63-
- name: Spark smoke test
64-
run: |
65-
echo "🚀 Running Spark local smoke test"
66-
sbt "engines-spark/testOnly *StreamingCDCSpec"
67-
echo "✅ Spark smoke test passed!"
68-
69-
- name: Flink smoke test
70-
run: |
71-
echo "🌊 Running Flink smoke test"
72-
sbt "engines-flink/testOnly *EngineAbstractionSpec"
73-
echo "✅ Flink smoke test passed!"
74-
75-
- name: Test g8 template generation
76-
run: |
77-
echo "📋 Testing g8 template generation"
78-
cd /tmp
79-
sbt new file://${{ github.workspace }}/flowforge.g8 --name="ci-test-pipeline" --organization="com.flowforge.ci"
80-
cd ci-test-pipeline
81-
echo "🔨 Testing generated project compilation"
82-
sbt compile
83-
echo "🧪 Testing generated project tests"
84-
sbt test
85-
echo "✅ G8 template test passed - turnkey experience verified!"
63+
- name: Build module
64+
run: sbt -batch ${{ matrix.commands }}
8665

8766
spark-it:
8867
if: github.event_name == 'workflow_dispatch'
@@ -106,4 +85,4 @@ jobs:
10685
${{ runner.os }}-sbt-
10786
- name: Run opt-in Spark/Delta ITs
10887
run: |
109-
sbt -DwithSparkIT=true "enginesSpark/testOnly *SparkDeltaSCD2IT"
88+
sbt -batch -DwithSparkIT=true "enginesSpark/testOnly *SparkDeltaSCD2IT"

0 commit comments

Comments
 (0)