Skip to content

Commit

Permalink
feat: add github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoweii committed Oct 27, 2023
1 parent e7aa177 commit 933c8d8
Show file tree
Hide file tree
Showing 13 changed files with 333 additions and 5 deletions.
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: dart
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 Flutter SDK Version
placeholder: e.g. 1.0.0
validations:
required: true
- type: input
id: flutter-version
attributes:
label: Flutter version
placeholder: e.g. 3.3.0
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:
- "*"
25 changes: 25 additions & 0 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Flutter 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: '11'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Run build apk
run: |
flutter pub get
cd example
flutter build apk
25 changes: 25 additions & 0 deletions .github/workflows/build-ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Flutter 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
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
architecture: x64
- name: Run build ios
run: |
flutter pub get
cd example
flutter build ios --release --no-codesign
23 changes: 23 additions & 0 deletions .github/workflows/code-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Flutter SDK Lint

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

jobs:
code-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- run: flutter --version
- name: Run install packages
run: flutter pub get
- name: Run code format
run: dart format . --set-exit-if-changed
- name: Run code lint
run: flutter analyze --fatal-warnings
38 changes: 38 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
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 }}
git diff
git config user.name '${{ vars.USER_NAME }}'
git config user.email '${{ vars.USER_EMAIL }}'
git add .
git commit -m 'release: clickstream Flutter ${{ env.NEW_VERSION }}'
git push
git tag v${{ env.NEW_VERSION }}
git push origin v${{ env.NEW_VERSION }}
- name: Create GitHub release
uses: softprops/action-gh-release@v1
with:
name: "Clickstream Flutter ${{ env.NEW_VERSION }}"
tag_name: "v${{ env.NEW_VERSION }}"
prerelease: true
generate_release_notes: true
25 changes: 25 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Flutter SDK Test

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

jobs:
code-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Run test
run: |
flutter pub get
flutter test --coverage --reporter github
- name: Upload Test Report
uses: codecov/codecov-action@v3
with:
name: report
files: coverage/lcov.info
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
22 changes: 18 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

## Introduction

Clickstream Flutter SDK can help you easily collect and report events from browser to AWS. This SDK is part of an AWS solution - [Clickstream Analytics on AWS](https://github.com/awslabs/clickstream-analytics-on-aws), which provisions data pipeline to ingest and process event data into AWS services such as S3, Redshift.
Clickstream Flutter SDK can help you easily collect and report events from your mobile app to AWS. This SDK is part of an AWS solution - [Clickstream Analytics on AWS](https://github.com/awslabs/clickstream-analytics-on-aws), which provisions data pipeline to ingest and process event data into AWS services such as S3, Redshift.

The SDK relies on the [Clickstream Android SDK](https://github.com/awslabs/clickstream-android) and [Clickstream Swift SDK](https://github.com/awslabs/clickstream-swift). Therefore, flutter SDK also supports automatically collect common user events and attributes (e.g., session start, first open) In addition, we've added easy-to-use APIs to simplify data collection in Flutter apps.
The SDK relies on the [Clickstream Android SDK](https://github.com/awslabs/clickstream-android) and [Clickstream Swift SDK](https://github.com/awslabs/clickstream-swift). Therefore, flutter SDK also supports automatically collect common user events and attributes (e.g., session start, first open). In addition, we've added easy-to-use APIs to simplify data collection in Flutter apps.

## Integrate SDK

Expand Down Expand Up @@ -135,8 +135,8 @@ You can update the default configuration after initializing the SDK, below are t
```dart
final analytics = ClickstreamAnalytics();
analytics.updateConfigure(
appId: "your appId",
endpoint: "https://example.com/collect",
appId: "your appId",
endpoint: "https://example.com/collect",
isLogEvents: true,
isCompressEvents: false,
isTrackScreenViewEvents: false
Expand All @@ -157,10 +157,24 @@ analytics.flushEvents();

### Build

Install flutter packages

```bash
flutter pub get
```

Build for Android

```bash
cd example && flutter build apk
```

Build for iOS

```dart
cd example && flutter build ios
```

### Format and lint

```bash
Expand Down
2 changes: 1 addition & 1 deletion example/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# clickstream_flutter_example
# Clickstream Flutter SDK Example

Demonstrates how to use the clickstream_flutter plugin.

Expand Down
7 changes: 7 additions & 0 deletions release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

version="$1"
echo ${version}
regex="[0-9]\+\.[0-9]\+\.[0-9]\+"

sed -i "s/version: ${regex}/version: ${version}/g" pubspec.yaml

0 comments on commit 933c8d8

Please sign in to comment.