Skip to content

Commit

Permalink
feat: initial implementation of React Native SDK (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhu-xiaowei authored Apr 2, 2024
1 parent 6ba8f9b commit 9609262
Show file tree
Hide file tree
Showing 94 changed files with 16,218 additions and 7 deletions.
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org

root = true

[*]
charset = utf-8
indent_style = tab
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
88 changes: 88 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Bug Report
description: Create a report to help us improve
body:
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: repro
attributes:
label: Steps To Reproduce
description: How do you trigger this bug? Please walk us through it step by step.
value: |
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
render: typescript
validations:
required: true
- type: textarea
id: behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: input
id: clickstream-version
attributes:
label: ClickstreamAnalytic React Native SDK Version
placeholder: e.g. 1.0.0
validations:
required: true
- type: input
id: react-native-version
attributes:
label: React Native version
placeholder: e.g. 0.73.5
validations:
required: true
- type: input
id: platform
attributes:
label: The platform of the bug
placeholder: |
- e.g. Android/iOS/All
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: >-
Include any relevant log output
value: |
<details>
<summary>Log Messages</summary>
```
INSERT LOG MESSAGES HERE
```
</details>
render: shell
- type: dropdown
id: regression
attributes:
label: Is this a regression?
multiple: false
options:
- "Yes"
- "No"
validations:
required: true
- type: textarea
id: regression-info
attributes:
label: Regression additional context
placeholder: If it was a regression provide the versions used before and after the upgrade.
- type: textarea
id: context
attributes:
label: Additional context
description: Add any other context about the problem here.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Feature request
description: Suggest an idea for this project
body:
- type: textarea
id: description
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: true

- type: textarea
id: proposal
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true

- type: textarea
id: context
attributes:
label: Additional context
description: Add any other context about the problem here.
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Issue \#
<!-- If applicable, please link to issue(s) this change addresses -->

## Description
<!-- Why is this change required? What problem does it solve? -->

## General Checklist
<!-- Check or cross out if not relevant -->

- [ ] Added new tests to cover change, if needed
- [ ] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)
- [ ] Documentation update for the change if required
- [ ] PR title conforms to conventional commit style
- [ ] If breaking change, documentation/changelog update with migration instructions

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
11 changes: 11 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
changelog:
categories:
- title: Feature
labels:
- enhancement
- title: Fix
labels:
- bug
- title: Other Changes
labels:
- "*"
22 changes: 22 additions & 0 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: React Native SDK Build for Android

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'
- name: Run build apk
run: |
yarn
cd example/android
./gradlew assembleDebug
21 changes: 21 additions & 0 deletions .github/workflows/build-ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: React Native SDK Build for iOS

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build-ios:
runs-on: macos-13-xl
steps:
- uses: actions/checkout@v3
- name: Initialize submodules
run: |
git submodule update --init
- name: Run build ios
run: |
yarn
cd example/ios && pod install && cd ..
yarn build:ios
17 changes: 17 additions & 0 deletions .github/workflows/build-rn.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: React Native SDK Build

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build-rn:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run build
run: |
yarn
yarn run build
19 changes: 19 additions & 0 deletions .github/workflows/code-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: React Native SDK Lint

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
code-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run package install
run: yarn
- name: Run code format
run: yarn run format
- name: Run code lint
run: yarn run lint
45 changes: 45 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Release Next Version
on:
workflow_dispatch:
inputs:
release_tag:
description: 'Release Tag'
required: true
type: string
env:
NEW_VERSION: ${{ github.event.inputs.release_tag }}
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: main
fetch-depth: 0
token: ${{ secrets.PROJECT_TOKEN }}
- name: Modify for next release
run: |
chmod +x release.sh
./release.sh ${{ env.NEW_VERSION }}
yarn
git diff
git config user.name '${{ vars.USER_NAME }}'
git config user.email '${{ vars.USER_EMAIL }}'
git add .
git commit -m 'release: clickstream React Native ${{ env.NEW_VERSION }}'
git push
git tag v${{ env.NEW_VERSION }}
git push origin v${{ env.NEW_VERSION }}
- name: Prepare release file
run: |
yarn
yarn run pack
- name: Create GitHub release
uses: softprops/action-gh-release@v1
with:
name: "Clickstream React Native ${{ env.NEW_VERSION }}"
files: |
*.tgz
tag_name: "v${{ env.NEW_VERSION }}"
prerelease: true
generate_release_notes: true
22 changes: 22 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: React Native SDK Test

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
code-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run test
run: |
yarn
yarn run test
- name: Upload Test Report
uses: codecov/codecov-action@v3
with:
name: report
files: coverage/coverage-final.json
24 changes: 24 additions & 0 deletions .github/workflows/title-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Pull Request Title Lint

on:
pull_request:
branches: [ "*" ]

jobs:
title-lint:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |-
feat
fix
chore
docs
ci
tests
requireScope: false
Loading

0 comments on commit 9609262

Please sign in to comment.