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: 0 additions & 24 deletions .github/workflows/ci-fast.yml

This file was deleted.

47 changes: 47 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: CI

on:
push:
branches: [master, beta]
pull_request:
branches: [master, beta]

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
ci:
name: Lint + Build + Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.14.0
- name: Install dependencies
run: devbox run ci:install
- name: Lint (eslint)
run: devbox run lint
- name: Lint (formatting)
run: devbox run format-check
- name: Build
run: devbox run build
- name: Typecheck
run: devbox run typecheck
- name: Test
run: devbox run test

commitlint:
name: Commitlint
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.14.0
- name: Install dependencies
run: devbox run ci:install
- name: Validate PR title
run: devbox run ci:commitlint
env:
PR_TITLE: ${{ github.event.pull_request.title }}
38 changes: 21 additions & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,29 @@ concurrency:
cancel-in-progress: true

jobs:
fast-checks:
name: Build + Lint
ci:
name: Lint + Build + Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: devbox installer
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: shells/devbox-fast.json
enable-cache: 'false'
- name: build
run: devbox run --config=shells/devbox-fast.json build
- name: Install dependencies
run: devbox run ci:install
- name: Lint (eslint)
run: devbox run lint
- name: Lint (formatting)
run: devbox run format-check
- name: Build
run: devbox run build
- name: Typecheck
run: devbox run typecheck
- name: Test
run: devbox run test

release:
name: Release (${{ inputs.type }})
needs: [fast-checks]
needs: [ci]
runs-on: ubuntu-latest
environment: Publish
permissions:
Expand All @@ -52,30 +59,27 @@ jobs:
git checkout -B beta HEAD
git push origin beta --force

- name: devbox installer
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.14.0
with:
project-path: shells/devbox-fast.json
enable-cache: 'false'

- name: Release (dry-run)
if: inputs.type == 'dry-run'
run: devbox run --config=shells/devbox-fast.json release-dry-run
run: devbox run release-dry-run
env:
GH_TOKEN: ${{ github.token }}

- name: Release (beta)
if: inputs.type == 'beta'
run: devbox run -e GITHUB_REF=refs/heads/beta --config=shells/devbox-fast.json release
run: devbox run -e GITHUB_REF=refs/heads/beta release
env:
GH_TOKEN: ${{ github.token }}

- name: Release (production)
if: inputs.type == 'production'
run: devbox run --config=shells/devbox-fast.json release
run: devbox run release
env:
GH_TOKEN: ${{ github.token }}

- name: Update Apps
if: inputs.type == 'production'
run: devbox run --config=shells/devbox-fast.json update-apps
run: devbox run update-apps
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

yarn lint && yarn typescript && yarn test
yarn lint && yarn typecheck && yarn test
111 changes: 25 additions & 86 deletions devbox.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,103 +5,42 @@
"version": "latest",
"platforms": ["x86_64-darwin", "aarch64-darwin"]
},
"nodejs": "22",
"yarn-berry": "latest",
"jq": "latest",
"treefmt": "latest",
"nixfmt": "latest",
"shfmt": "latest",
"jdk17": "latest",
"gradle": "latest",
"jq": "latest",
"netcat": "latest",
"path:./nix#android-sdk": ""
"shfmt": "latest"
},
"shell": {
"init_hook": [
"echo 'Welcome to analytics-react-native devbox!' > /dev/null",
". $DEVBOX_PROJECT_ROOT/scripts/shared/common.sh",
"if [ \"$(uname -s)\" = \"Darwin\" ]; then . $DEVBOX_PROJECT_ROOT/scripts/ios/env.sh; fi",
". $DEVBOX_PROJECT_ROOT/scripts/android/env.sh",
"echo 'Android SDK env configured (details: wiki/devbox.md#devbox-android).'"
"export PROJECT_ROOT=\"$(git rev-parse --show-toplevel 2>/dev/null || echo $DEVBOX_PROJECT_ROOT)\"",
"export PATH=\"$PROJECT_ROOT/node_modules/.bin:$PATH\"",
"if [ ! -d \"$PROJECT_ROOT/node_modules\" ]; then echo 'Running yarn install...'; yarn install; fi",
"if [ ! -f \"$PROJECT_ROOT/packages/core/src/info.ts\" ]; then yarn core prebuild; fi",
"if [ ! -d \"$PROJECT_ROOT/.husky/_\" ]; then yarn husky install; fi"
],
"scripts": {
"clean": [
"rm -rf $DEVBOX_PROJECT_ROOT/examples/E2E/ios/Podfile.lock",
"rm -rf $DEVBOX_PROJECT_ROOT/examples/E2E/ios/Pods",
"cd $DEVBOX_PROJECT_DIR/examples/E2E/android && gradle clean",
"yarn cache clean",
"find $DEVBOX_PROJECT_DIR -type d -name node_modules -exec rmdir {} \\;"
],
"build": ["bash $SCRIPTS_DIR/build.sh"],
"format": ["treefmt"],
"lint": ["treefmt --fail-on-change"],
"test-android": ["bash $SCRIPTS_DIR/android/test.sh"],
"test-ios": ["bash $SCRIPTS_DIR/ios/test.sh"],
"act-ci": [
"bash $SCRIPTS_DIR/act-ci.sh --platform ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-24.04"
],
"setup-android": ["bash $SCRIPTS_DIR/android/setup.sh"],
"setup-ios": ["bash $SCRIPTS_DIR/ios/setup.sh"],
"start-emulator": ["bash $SCRIPTS_DIR/android/manager.sh start"],
"start-ios": ["bash $SCRIPTS_DIR/ios/manager.sh start"],
"start-android-minsdk": ["bash $SCRIPTS_DIR/android/manager.sh start"],
"start-android-latest": [
"AVD_FLAVOR=latest bash $SCRIPTS_DIR/android/manager.sh start"
],
"start-android": ["bash $SCRIPTS_DIR/android/manager.sh start"],
"ci:install": ["yarn install --immutable"],
"ci:commitlint": ["bash -c 'echo \"$PR_TITLE\" | yarn commitlint'"],
"build": ["yarn build"],
"test": ["yarn test"],
"typecheck": ["yarn typecheck"],
"lint": ["yarn lint"],
"format": ["yarn format"],
"format-check": ["yarn format:check"],
"clean": ["yarn clean"],
"release": ["yarn install --immutable", "yarn build", "yarn release"],
"release-dry-run": [
"yarn install --immutable",
"yarn build",
"yarn multi-semantic-release --dry-run"
],
"sync-versions": ["bash $PROJECT_ROOT/scripts/sync-versions.sh"],
"update-apps": [
"yarn install --no-immutable",
"yarn e2e install --no-immutable",
"yarn example install --no-immutable"
],
"update-shells": [
"devbox update",
"devbox update --config=shells/devbox-fast.json",
"devbox update --config=shells/devbox-android.json",
"devbox update --config=shells/devbox-ios.json"
],
"reset-android": [
"rm -rf ~/.android/avd",
"rm -f ~/.android/adbkey*",
"echo \"AVDs and adb keys removed. Recreate via devbox run start-android* as needed.\""
],
"reset-ios": [
"xcrun simctl shutdown all || true",
"xcrun simctl erase all || true",
"xcrun simctl delete all || true",
"xcrun simctl delete unavailable || true",
"killall -9 com.apple.CoreSimulatorService 2>/dev/null || true",
"echo \"Simulators reset via simctl. Recreate via devbox run start-ios.\""
],
"stop-android": [
"if command -v adb >/dev/null 2>&1; then",
" devices=$(adb devices -l 2>/dev/null | tail -n +2 | awk '{print $1}' | tr '\\n' ' ');",
" if [[ -n \"$devices\" ]]; then",
" echo \"Stopping Android emulators: $devices\";",
" for d in $devices; do adb -s \"$d\" emu kill >/dev/null 2>&1 || true; done;",
" else",
" echo \"No Android emulators detected via adb.\";",
" fi;",
"else",
" echo \"adb not found; skipping Android emulator shutdown.\";",
"fi",
"pkill -f \"emulator@\" >/dev/null 2>&1 || true",
"echo \"Android emulators stopped (if any were running).\""
],
"stop-ios": [
"if command -v xcrun >/dev/null 2>&1 && xcrun -f simctl >/dev/null 2>&1; then",
" if xcrun simctl list devices booted | grep -q \"Booted\"; then",
" echo \"Shutting down booted iOS simulators...\";",
" xcrun simctl shutdown all >/dev/null 2>&1 || true;",
" else",
" echo \"No booted iOS simulators detected.\";",
" fi;",
"else",
" echo \"simctl not available; skipping iOS shutdown.\";",
"fi",
"echo \"iOS simulators shutdown (if any were running).\""
],
"stop": ["devbox run stop-android", "devbox run stop-ios"],
"test": ["devbox run test-android", "devbox run test-ios"]
]
}
}
}
27 changes: 0 additions & 27 deletions nix/flake.lock

This file was deleted.

74 changes: 0 additions & 74 deletions nix/flake.nix

This file was deleted.

13 changes: 0 additions & 13 deletions nix/platform-versions.json

This file was deleted.

Loading