Skip to content

Commit 009f421

Browse files
committed
ci: enable building example app in CI/CD
1 parent 9159476 commit 009f421

File tree

5 files changed

+216
-159
lines changed

5 files changed

+216
-159
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Build, lint & test (JS)
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
merge_group:
11+
types:
12+
- checks_requested
13+
14+
concurrency: ${{ github.workflow }}-${{ github.ref }}
15+
16+
jobs:
17+
build-lint-test:
18+
name: Build, lint & test JS
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
with:
24+
submodules: 'true'
25+
26+
- name: Setup
27+
uses: ./.github/actions/setup
28+
29+
- name: Lint files
30+
run: pnpm run lint
31+
32+
- name: Typecheck files
33+
run: pnpm run typecheck
34+
35+
- name: Run unit tests
36+
run: pnpm run test --maxWorkers=2 --coverage

.github/workflows/ci-cd.yml

Lines changed: 0 additions & 159 deletions
This file was deleted.

.github/workflows/docs.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Docs
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
concurrency: ${{ github.workflow }}-${{ github.ref }}
9+
10+
jobs:
11+
build-docs:
12+
name: Build docs
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
submodules: 'true'
19+
20+
- name: Setup
21+
uses: ./.github/actions/setup
22+
23+
- name: Build docs
24+
run: pnpm run build:docs
25+
26+
- name: Upload docs artifact
27+
uses: actions/upload-pages-artifact@v3
28+
with:
29+
path: docs/doc_build
30+
31+
deploy-docs:
32+
permissions:
33+
contents: read
34+
pages: write
35+
id-token: write
36+
environment:
37+
name: github-pages
38+
url: ${{ steps.deployment.outputs.page_url }}
39+
needs: build-docs
40+
runs-on: ubuntu-latest
41+
name: Deploy docs
42+
if: github.ref == 'refs/heads/main'
43+
steps:
44+
- name: Deploy to GitHub Pages
45+
id: deployment
46+
uses: actions/deploy-pages@v4
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Android example app
2+
3+
on:
4+
workflow_run:
5+
workflows: ['Build, lint & test (JS)']
6+
types:
7+
- completed
8+
9+
concurrency: ${{ github.workflow }}-${{ github.ref }}
10+
11+
jobs:
12+
build-android:
13+
name: Build Android demo app
14+
environment: manual-approval
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
with:
20+
submodules: 'true'
21+
22+
- name: Setup
23+
uses: ./.github/actions/setup
24+
25+
- name: Build packages
26+
run: pnpm run build
27+
28+
- name: Install JDK
29+
uses: actions/setup-java@v4
30+
with:
31+
distribution: 'zulu'
32+
java-version: '17'
33+
34+
- name: Finalize Android SDK
35+
run: |
36+
/bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null"
37+
38+
- name: Cache Gradle
39+
uses: actions/cache@v4
40+
with:
41+
path: |
42+
~/.gradle/wrapper
43+
~/.gradle/caches
44+
key: ${{ runner.os }}-gradle-${{ hashFiles('examples/rn-app/android/gradle/wrapper/gradle-wrapper.properties') }}
45+
restore-keys: |
46+
${{ runner.os }}-gradle-
47+
48+
- name: Restore interop-otel/third_party/
49+
id: interop-otel-cache
50+
uses: actions/cache/restore@v4
51+
with:
52+
path: |
53+
packages/interop-otel/third_party
54+
key: ${{ runner.os }}-interop-otel-${{ hashFiles('packages/interop-otel/third_party/CMakeLists.txt') }}
55+
56+
- name: Build example for Android
57+
env:
58+
JAVA_OPTS: '-XX:MaxHeapSize=6g'
59+
run: |
60+
pnpm run build:demo:android
61+
62+
- name: Cache interop-otel/third_party/
63+
uses: actions/cache/save@v4
64+
with:
65+
path: |
66+
packages/interop-otel/third_party
67+
key: ${{ steps.interop-otel-cache.outputs.cache-key }}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: iOS example app
2+
3+
on:
4+
workflow_run:
5+
workflows: ['Build, lint & test (JS)']
6+
types:
7+
- completed
8+
9+
concurrency: ${{ github.workflow }}-${{ github.ref }}
10+
11+
jobs:
12+
build-ios:
13+
name: Build iOS demo app
14+
environment: manual-approval
15+
runs-on: macos-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
with:
20+
submodules: 'true'
21+
22+
- name: Setup
23+
uses: ./.github/actions/setup
24+
25+
- name: Build packages
26+
run: pnpm run build
27+
28+
- name: Restore Cocoapods
29+
id: cocoapods-cache
30+
uses: actions/cache/restore@v4
31+
with:
32+
path: |
33+
**/ios/Pods
34+
key: ${{ runner.os }}-cocoapods-${{ hashFiles('examples/rn-app/ios/Podfile.lock') }}
35+
restore-keys: |
36+
${{ runner.os }}-cocoapods-
37+
38+
- name: Restore interop-otel/third_party/
39+
id: interop-otel-cache
40+
uses: actions/cache/restore@v4
41+
with:
42+
path: |
43+
packages/interop-otel/third_party
44+
key: ${{ runner.os }}-interop-otel-${{ hashFiles('packages/interop-otel/third_party/buildIOS.sh,packages/interop-otel/third_party/CMakeLists.txt') }}
45+
46+
- name: Install Cocoapods
47+
run: |
48+
cd examples/rn-app/ios
49+
pod install
50+
51+
- name: Cache Cocoapods
52+
uses: actions/cache/save@v4
53+
with:
54+
path: |
55+
**/ios/Pods
56+
key: ${{ steps.cocoapods-cache.outputs.cache-key }}
57+
58+
- name: Build example for iOS
59+
run: |
60+
pnpm run build:demo:ios
61+
62+
- name: Cache interop-otel/third_party/
63+
uses: actions/cache/save@v4
64+
with:
65+
path: |
66+
packages/interop-otel/third_party
67+
key: ${{ steps.interop-otel-cache.outputs.cache-key }}

0 commit comments

Comments
 (0)