diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 00000000..c77a78c6 --- /dev/null +++ b/.github/dependabot.yaml @@ -0,0 +1,14 @@ +version: 2 +updates: + - package-ecosystem: pub + directory: "/" + schedule: + interval: daily + - package-ecosystem: pub + directory: "example/" + schedule: + interval: daily + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml new file mode 100644 index 00000000..daa2862e --- /dev/null +++ b/.github/workflows/build-test.yaml @@ -0,0 +1,100 @@ +name: build-test + +on: + push: + branches: + - main + paths-ignore: + - "**.md" + pull_request: + paths-ignore: + - "**.md" + workflow_dispatch: + +concurrency: + # Cancels the workflow + # when another event in the same context happens. + # If it's a PR, context is the pull request number. + # Otherwise, it uses the Git reference(branch or tag name). + group: > + ${{ github.workflow }} + ${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + build: + name: ${{ matrix.runner }} / ${{ matrix.target }} + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false # Important + matrix: + runner: [ubuntu-latest, windows-latest, macos-latest] + target: [android, web] # On all platforms + include: + # Specify targets for each platform + - runner: ubuntu-latest + target: linux + - runner: windows-latest + target: windows + - runner: macos-latest + target: macos + - runner: macos-latest + target: ios + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + + - name: Setup Flutter SDK + uses: subosito/flutter-action@v2 + with: + channel: "stable" + cache: true + + - name: Setup Ninja and GTK3 toolchain (Only Linux target) + if: matrix.target == 'linux' + run: | + sudo apt-get update -y + sudo apt-get install -y ninja-build libgtk-3-dev + + - name: Setup Java toolchain (Only Android target) + if: matrix.target == 'android' + uses: actions/setup-java@v4 + with: + distribution: "zulu" + java-version: "11" + cache: "gradle" + + - name: Build the example app + if: matrix.target == 'linux' + working-directory: example/ + run: flutter build linux --verbose + + - name: Build the example app + if: matrix.target == 'android' + working-directory: example/ + run: | + flutter build apk --verbose + flutter build appbundle --verbose + + - name: Build the example app + if: matrix.target == 'windows' + working-directory: example/ + run: flutter build windows --verbose + + - name: Build the example app + if: matrix.target == 'macos' + working-directory: example/ + run: flutter build macos --verbose + + - name: Build the example app + if: matrix.target == 'ios' + working-directory: example/ + run: flutter build ios --verbose --no-codesign + + - name: Build the example app + if: matrix.target == 'web' + working-directory: example/ + run: flutter build web --verbose diff --git a/README.md b/README.md index 9f1219a2..cbcc4979 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,12 @@ # Flutter Platform Widgets -![Pub](https://img.shields.io/pub/v/flutter_platform_widgets) ![GitHub](https://img.shields.io/github/license/stryder-dev/flutter_platform_widgets) +[![Pub Version](https://img.shields.io/pub/v/flutter_platform_widgets)](https://pub.dev/packages/flutter_platform_widgets) +[![Pub Popularity](https://img.shields.io/pub/popularity/flutter_platform_widgets)](https://pub.dev/packages/flutter_platform_widgets) +[![Pub Points](https://img.shields.io/pub/points/flutter_platform_widgets)](https://pub.dev/packages/flutter_platform_widgets) +[![GitHub Stars](https://img.shields.io/github/stars/stryder-dev/flutter_platform_widgets)](https://github.com/stryder-dev/flutter_platform_widgets/stargazers) +[![Build Test](https://github.com/stryder-dev/flutter_platform_widgets/actions/workflows/build_test.yaml/badge.svg)](https://github.com/stryder-dev/flutter_platform_widgets/actions/workflows/build_test.yaml?query=branch%3Amain) +[![GitHub License](https://img.shields.io/github/license/stryder-dev/flutter_platform_widgets)](https://github.com/stryder-dev/flutter_platform_widgets/blob/main/LICENSE) ### TL;DR;