Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions .github/workflows/build-demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,32 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Set up JDK 17
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web-injector/package-lock.json
cache-dependency-path: web-runtime/package-lock.json

- name: Build web-injector
working-directory: web-injector
- name: Check web runtime
working-directory: web-runtime
run: |
npm ci
npm run build

- name: Copy web-injector bundle to assets
run: |
mkdir -p agentic-webview/src/main/assets
cp web-injector/dist/agentic_core.min.js agentic-webview/src/main/assets/
npm run check

- name: Make Gradle wrapper executable
run: chmod +x ./gradlew

- name: Validate architecture boundaries
run: node scripts/validate-architecture.mjs

- name: Build demo app
run: ./gradlew :app:assembleDebug
run: ./gradlew :samples:android:assembleDebug
78 changes: 66 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,37 +13,91 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Set up JDK 17
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web-injector/package-lock.json
cache-dependency-path: web-runtime/package-lock.json

- name: Build web-injector
working-directory: web-injector
- name: Check and build web runtime
working-directory: web-runtime
run: |
npm ci
npm run build
npm run check

- name: Copy web-injector bundle to assets
- name: Build documentation website
working-directory: website
run: |
mkdir -p agentic-webview/src/main/assets
cp web-injector/dist/agentic_core.min.js agentic-webview/src/main/assets/
npm ci
npm run lint
npm run build

- name: Validate canonical documentation links
run: node scripts/validate-doc-links.mjs

- name: Validate architecture boundaries
run: node scripts/validate-architecture.mjs

- name: Make Gradle wrapper executable
run: chmod +x ./gradlew

- name: Build library
run: ./gradlew :agentic-webview:assembleRelease
run: ./gradlew :browser-api:test :browser-api:jar :agent-tools:test :agent-tools:jar :integrations:jsonrpc:test :integrations:jsonrpc:jar :integrations:koog:check :integrations:koog:jar :browser-webview:testDebugUnitTest :browser-webview:assembleRelease :browser-compose:testDebugUnitTest :browser-compose:assembleRelease :samples:android:assembleDebug

- name: Enforce artifact-size budgets
run: node scripts/check-artifact-sizes.mjs --require-built

- name: Lint
run: ./gradlew :agentic-webview:lint
run: ./gradlew :browser-webview:lint :browser-compose:lint :samples:android:lint

- name: Validate publication metadata and consumer rules
run: ./gradlew generatePomFileForMavenPublication :browser-webview:assembleRelease

instrumented:
name: Android instrumentation
runs-on: ubuntu-latest
needs: build

steps:
- name: Checkout
uses: actions/checkout@v5

- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'

- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '20'

- name: Install runtime dependencies
working-directory: web-runtime
run: npm ci

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: Make Gradle wrapper executable
run: chmod +x ./gradlew

- name: Run deterministic WebView instrumentation
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 35
arch: x86_64
script: ./gradlew :browser-webview:connectedDebugAndroidTest
51 changes: 35 additions & 16 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,31 +15,29 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Set up JDK 17
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web-injector/package-lock.json
cache-dependency-path: web-runtime/package-lock.json

- name: Build web-injector
working-directory: web-injector
- name: Check and build web runtime
working-directory: web-runtime
run: |
npm ci
npm run build
npm run check

- name: Copy web-injector bundle to assets
run: |
mkdir -p agentic-webview/src/main/assets
cp web-injector/dist/agentic_core.min.js agentic-webview/src/main/assets/
- name: Validate architecture boundaries
run: node scripts/validate-architecture.mjs

- name: Extract version from tag
id: version
Expand All @@ -48,8 +46,24 @@ jobs:
- name: Make Gradle wrapper executable
run: chmod +x ./gradlew

- name: Publish to Maven Central
run: ./gradlew :agentic-webview:publishAndReleaseToMavenCentral --no-configuration-cache
- name: Validate release artifacts
run: ./gradlew :browser-api:test :browser-api:jar :agent-tools:test :agent-tools:jar :integrations:jsonrpc:test :integrations:jsonrpc:jar :integrations:koog:check :integrations:koog:jar :browser-webview:testDebugUnitTest :browser-webview:assembleRelease :browser-compose:assembleRelease :samples:android:assembleDebug
env:
ORG_GRADLE_PROJECT_VERSION_NAME: ${{ steps.version.outputs.VERSION }}

- name: Enforce artifact-size budgets
run: node scripts/check-artifact-sizes.mjs --require-built

- name: Publish all SDK modules to Maven Central
run: >-
./gradlew
:browser-api:publishAndReleaseToMavenCentral
:browser-webview:publishAndReleaseToMavenCentral
:browser-compose:publishAndReleaseToMavenCentral
:agent-tools:publishAndReleaseToMavenCentral
:integrations:koog:publishAndReleaseToMavenCentral
:integrations:jsonrpc:publishAndReleaseToMavenCentral
--no-configuration-cache
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
Expand All @@ -58,16 +72,21 @@ jobs:
ORG_GRADLE_PROJECT_VERSION_NAME: ${{ steps.version.outputs.VERSION }}

- name: Build demo app APK (debug signed)
run: ./gradlew :app:assembleDebug
run: ./gradlew :samples:android:assembleDebug
env:
ORG_GRADLE_PROJECT_VERSION_NAME: ${{ steps.version.outputs.VERSION }}

- name: Rename APK with version
run: mv app/build/outputs/apk/debug/app-debug.apk app/build/outputs/apk/debug/agentic-webview-demo-${{ steps.version.outputs.VERSION }}.apk
run: mv samples/android/build/outputs/apk/debug/android-debug.apk samples/android/build/outputs/apk/debug/agentic-webview-demo-${{ steps.version.outputs.VERSION }}.apk

- name: Create demo checksum
run: sha256sum samples/android/build/outputs/apk/debug/agentic-webview-demo-${{ steps.version.outputs.VERSION }}.apk > samples/android/build/outputs/apk/debug/agentic-webview-demo-${{ steps.version.outputs.VERSION }}.apk.sha256

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
tag_name: ${{ github.ref_name }}
files: app/build/outputs/apk/debug/agentic-webview-demo-${{ steps.version.outputs.VERSION }}.apk
files: |
samples/android/build/outputs/apk/debug/agentic-webview-demo-${{ steps.version.outputs.VERSION }}.apk
samples/android/build/outputs/apk/debug/agentic-webview-demo-${{ steps.version.outputs.VERSION }}.apk.sha256
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,5 @@ fabric.properties
.idea/tasks.xml
.idea/dictionaries

# Generated assets
agentic-webview/src/main/assets/agentic_core.min.js
node_modules/
dist/
Loading