Skip to content

Commit

Permalink
ci: create test and build script
Browse files Browse the repository at this point in the history
  • Loading branch information
phanatagama committed Sep 14, 2023
1 parent d40d50a commit 3feec47
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# These are supported funding model platforms

github: phanatagama # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
ko_fi: phanatagama # Replace with a single Ko-fi username
43 changes: 43 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Builds
on:
push:
branches:
- main
pull_request:

# Declare default permissions as read only.
permissions: read-all

jobs:
build:
name: Build ${{ matrix.target }}
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
target: ["apk --debug", "appbundle --debug", "ios --no-codesign", macos]
steps:
- name: Set up JDK 11
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0
with:
java-version: 11
distribution: temurin
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
with:
channel: master
- run: flutter doctor -v

# Checkout gallery code and get packages.
- name: Checkout gallery code
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- run: flutter pub get

- run: flutter build ${{ matrix.target }}

# Upload generated apk to the artifacts.
- uses: actions/upload-artifact@v2
with:
name: debug-apk
path: build/app/outputs/apk/debug/app-debug.apk
86 changes: 86 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Tests
on:
push:
branches:
- main
pull_request:

# Declare default permissions as read only.
permissions: read-all

jobs:
unit-test:
name: Unit tests on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
with:
channel: master
- run: flutter doctor -v

# Checkout gallery code and get packages.
- name: Checkout gallery code
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- run: flutter pub get

# Analyze, check formatting, and run unit tests.
- run: flutter analyze
- name: Ensure the Dart code is formatted correctly
run: dart format --set-exit-if-changed .
- name: Run Flutter unit tests
run: flutter test --coverage

# Upload coverage to codecov
- name: Upload coverage to codecov
uses: codecov/codecov-action@v2.1.0
with:
token: ${{secrets.CODECOV_TOKEN}}
file: ./coverage/lcov.info

benchmark-test:
name: Benchmark tests
runs-on: ubuntu-latest
steps:
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
with:
channel: master
- run: flutter doctor -v

# Checkout gallery code and get packages.
- name: Checkout gallery code
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- run: flutter pub get

- run: flutter test test_benchmarks

golden-test:
name: Golden tests
runs-on: macos-latest
steps:
# Set up Flutter.
- name: Clone Flutter repository with master channel
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
with:
channel: master
- run: flutter doctor -v

# Checkout gallery code and get packages.
- name: Checkout gallery code
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- run: flutter pub get

# Run the golden tests and upload failed test artifacts.
- run: flutter test test_goldens
- name: Upload goldens if tests fail
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
if: failure()
with:
name: goldens
path: test_goldens/failures/

0 comments on commit 3feec47

Please sign in to comment.