Skip to content

[MSDK-3337] register TrackBridge in plugin to fix MissingPluginExcept… #582

[MSDK-3337] register TrackBridge in plugin to fix MissingPluginExcept…

[MSDK-3337] register TrackBridge in plugin to fix MissingPluginExcept… #582

Workflow file for this run

name: CI/CD
on:
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+.[0-9]+*'
pull_request:
workflow_dispatch:
jobs:
format:
name: Format
runs-on: ubuntu-latest
container: ghcr.io/cirruslabs/flutter:3.22.3
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Check format
run: scripts/check_format.sh
lint:
name: Lint
runs-on: ubuntu-latest
container: ghcr.io/cirruslabs/flutter:3.22.3
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get dependencies
run: flutter pub get
- name: Lint using flutter analyze
run: flutter analyze
- name: Assert that every file that should be public has been exported
run: scripts/assert_export.sh
pub-dry-run:
name: Publish Dry Run
runs-on: ubuntu-latest
container: ghcr.io/cirruslabs/flutter:3.22.3
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run publish dry run
run: flutter pub publish --dry-run
test-flutter:
name: Test Flutter
needs: [ lint, format, pub-dry-run ]
runs-on: ubuntu-latest
container: ghcr.io/cirruslabs/flutter:3.22.3
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install lcov
run: sudo apt-get update && sudo apt-get install -y lcov
- name: Get dependencies
run: flutter pub get
- name: Run all tests
run: flutter test --reporter=expanded --coverage
- name: Check coverage
run: dart scripts/check_coverage.dart coverage/lcov.info
- name: Generate HTML report
run: genhtml coverage/lcov.info -o coverage/html
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: flutter-coverage-report
path: coverage/html
test-android:
name: Test Android
needs: [ lint, format, pub-dry-run ]
runs-on: ubuntu-latest
container: ghcr.io/cirruslabs/flutter:3.22.3
timeout-minutes: 20
env:
GRADLE_VERSION: 8.7
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Cache Gradle
id: cache-gradle
uses: actions/cache@v4
with:
path: |
./example/android/ci-cache/gradle
./example/android/gradle/wrapper/gradle-wrapper.jar
./example/android/gradlew
key: ${{ runner.os }}-cache-gradle-${{ env.GRADLE_VERSION }}
- name: Get dependencies
run: flutter pub get
- name: Setup Gradle
if: steps.cache-gradle.outputs.cache-hit != 'true'
working-directory: ./example/android
run: ../../scripts/setup_gradle.sh ${{ env.GRADLE_VERSION }}
- name: Validate Gradle
working-directory: ./example/android
run: dart ../../scripts/check_gradle_version.dart
- name: Run all tests and coverage
working-directory: ./example/android
run: ./gradlew :usercentrics_sdk:testDebugUnitTest :usercentrics_sdk:koverHtmlReportDebug
- name: List coverage files
working-directory: ./example
run: find build -name "*.html" -o -name "index.html" | head -20
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: android-coverage-report
path: example/build/usercentrics_sdk/reports/kover/htmlDebug
test-ios:
name: Test iOS
needs: [ lint, format, pub-dry-run ]
runs-on: macos-14
timeout-minutes: 20
steps:
- name: Setup code
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4'
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.22.3'
channel: 'stable'
- name: Get dependencies
run: flutter pub get
- name: Setup Pods
working-directory: ./example/ios
run: pod install
- name: Run all tests
working-directory: ./example/ios
run: ../../scripts/ios_unit_tests.sh
- name: Show coverage report
working-directory: ./example/ios
run: xcrun xccov view --report TestResults.xcresult
build-android:
name: Build Android Example
needs: [ lint, format, pub-dry-run ]
runs-on: ubuntu-latest
container: ghcr.io/cirruslabs/flutter:3.22.3
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get dependencies
run: flutter pub get
- name: Build
working-directory: ./example
run: flutter build apk
build-ios:
name: Build iOS Example
needs: [ lint, format, pub-dry-run ]
runs-on: macos-14
timeout-minutes: 20
steps:
- name: Setup code
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4'
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.22.3'
channel: 'stable'
- name: Get dependencies
run: flutter pub get
- name: Build
working-directory: ./example
run: flutter build ios --debug --no-codesign --simulator
# https://dart.dev/tools/pub/automated-publishing
release:
name: Release
permissions:
id-token: write
if: startsWith(github.ref, 'refs/tags/')
needs: [ test-flutter, test-android, test-ios, build-android, build-ios ]
runs-on: ubuntu-latest
container: ghcr.io/cirruslabs/flutter:3.22.3
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Validate version
run: dart scripts/check_release_version.dart ${{ github.ref }}
- name: Set publishing token
uses: dart-lang/setup-dart@v1
- name: Get dependencies
run: flutter pub get
- name: Publish
run: flutter pub publish -f