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 26, 2023
1 parent e7aa177 commit 1ad2667
Show file tree
Hide file tree
Showing 12 changed files with 354 additions and 2 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
48 changes: 48 additions & 0 deletions .github/workflows/title-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Commit Title Lint

on:
pull_request:
branches: [ "main" ]

jobs:
title-lint:
runs-on: ubuntu-latest
steps:
- uses: amannn/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# Configure which types are allowed.
# Default: https://github.com/commitizen/conventional-commit-types
types: |
fix
feat
docs
style
refactor
perf
test
build
ci
chore
revert
release
# Configure that a scope must always be provided.
requireScope: false
# Configure additional validation for the subject based on a regex.
# This example ensures the subject doesn't start with an uppercase character.
subjectPattern: ^(?![A-Z]).+$
# If `subjectPattern` is configured, you can use this property to override
# the default error message that is shown when the pattern doesn't match.
# The variables `subject` and `title` can be used within the message.
subjectPatternError: |
The subject "{subject}" found in the pull request title "{title}"
didn't match the configured pattern. Please ensure that the subject
doesn't start with an uppercase character.
# For work-in-progress PRs you can typically use draft pull requests
# from Github. However, private repositories on the free plan don't have
# this option and therefore this action allows you to opt-in to using the
# special "[WIP]" prefix to indicate this state. This will avoid the
# validation of the PR title and the pull request checks remain pending.
# Note that a second check will be reported if this is enabled.
wip: true
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
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
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 1ad2667

Please sign in to comment.