Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
4cb3ad7
remove devcontainer
ardera Feb 6, 2026
4d87189
improve windows testing
ardera Feb 6, 2026
855ea0a
Update build-app.yml
ardera Feb 6, 2026
7b67fee
mention OS in job name
ardera Feb 6, 2026
dee2b1e
app builder test: replace all literal path creations with path.join
ardera Feb 6, 2026
3c6dd69
use GITHUB_TOKEN from environment to authenticate github requests
ardera Feb 6, 2026
b951a6d
fix missing trailing commas
ardera Feb 6, 2026
b8eb5fd
remove explicit permissions
ardera Feb 7, 2026
aa37e3d
use public-only PAT to authenticate GH requests
ardera Feb 7, 2026
0752797
split every fs test into a windows and posix test
ardera Feb 7, 2026
a8fd6b0
split every fs test into a windows and posix test
ardera Feb 7, 2026
5978100
remove unused import
ardera Feb 7, 2026
adcceb5
fix missing trailing comma
ardera Feb 7, 2026
800a5d0
add a hooks / native assets test package
ardera Feb 7, 2026
e4e9aa2
rename integration_test => hooks_test
ardera Feb 7, 2026
84c7d4b
add dart hooks e2e test
ardera Feb 7, 2026
b1f2034
fix unsupported dot shorthand
ardera Feb 7, 2026
c22ae35
provide process output on test failure, for context
ardera Feb 7, 2026
535eb9a
lower e2e test dart constraint to 3.10.3
ardera Feb 7, 2026
8565833
fix e2e hooks build
ardera Feb 7, 2026
d1eff8a
use dart analyze, don't fail fast
ardera Feb 7, 2026
258283d
analyze e2e tests separately
ardera Feb 7, 2026
8d17304
format hooks_test_package
ardera Feb 7, 2026
f1c56e8
skip hooks tests on windows and macos, for now.
ardera Feb 7, 2026
3ef389e
Revert "remove devcontainer"
ardera Feb 8, 2026
35a8335
update devcontainer to flutter 3.38.3
ardera Feb 8, 2026
c06bc86
add more e2e tests
ardera Feb 8, 2026
09db39b
fix bundling native assets
ardera Feb 9, 2026
6284288
add an empty test case to runs where all tests are skipped succeed
ardera Feb 9, 2026
f07ad44
fix analysis issues
ardera Feb 9, 2026
4393c7d
also test on ubuntu arm64
ardera Feb 9, 2026
b97d2dd
use main channel for linux arm64
ardera Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
FROM mcr.microsoft.com/devcontainers/base:debian

# Install needed packages
RUN apt-get update && apt-get install -y curl git unzip xz-utils zip
RUN apt-get update && apt-get install -y curl git unzip xz-utils zip nano

USER 1000:1000

ARG FLUTTER_VERSION=3.22.1
ARG FLUTTER_VERSION=3.38.3
RUN git clone -b $FLUTTER_VERSION https://github.com/flutter/flutter.git /home/vscode/flutter

ENV PATH /home/vscode/flutter/bin:/home/vscode/.pub-cache/bin:$PATH
Expand Down
51 changes: 36 additions & 15 deletions .github/workflows/build-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,65 @@ name: Build Test App

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

permissions:
contents: read
env:
FLUTTER_VERSION: 3.38.4

jobs:
build:
name: Build Flutter-Pi Bundle (${{ matrix.arch }}, ${{ matrix.cpu}})
runs-on: ubuntu-latest
name: Build Flutter-Pi Bundle (${{ matrix.runner}}, ${{ matrix.arch }}, ${{ matrix.cpu}})
runs-on: ${{ matrix.runner }}
strategy:
matrix:
runner:
- windows-latest
- ubuntu-latest
arch:
- arm
- arm64
- x64
- riscv64
cpu:
- generic

# TODO: Maybe find a better way to do this.
include:
- arch: arm
- runner: windows-latest
arch: arm
cpu: pi3
- runner: ubuntu-latest
arch: arm
cpu: pi3
- arch: arm
- runner: windows-latest
arch: arm
cpu: pi4
- arch: arm64
- runner: ubuntu-latest
arch: arm
cpu: pi4
- runner: windows-latest
arch: arm64
cpu: pi3
- runner: ubuntu-latest
arch: arm64
cpu: pi3
- arch: arm64
- runner: windows-latest
arch: arm64
cpu: pi4
- runner: ubuntu-latest
arch: arm64
cpu: pi4
steps:
- uses: actions/checkout@v4

- uses: subosito/flutter-action@v2
with:
cache: true
channel: stable
flutter-version: 3.38.4
flutter-version: ${{ env.FLUTTER_VERSION }}

- name: Install dependencies & Activate as global executable
run: |
flutter pub get
Expand All @@ -51,7 +72,7 @@ jobs:
- name: Run flutterpi_tool build
working-directory: test_app
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }}
GITHUB_TOKEN: ${{ secrets.PUBLIC_ONLY_PAT }}
run: |
echo '::group::flutterpi_tool build ... --debug-unoptimized'
flutterpi_tool build --arch=${{ matrix.arch }} --cpu=${{ matrix.cpu }} --debug-unoptimized --debug-symbols --verbose
Expand All @@ -60,7 +81,7 @@ jobs:
echo '::group::flutterpi_tool build ... --debug'
flutterpi_tool build --arch=${{ matrix.arch }} --cpu=${{ matrix.cpu }} --debug --debug-symbols --verbose
echo '::endgroup::'

echo '::group::flutterpi_tool build ... --profile'
flutterpi_tool build --arch=${{ matrix.arch }} --cpu=${{ matrix.cpu }} --profile --debug-symbols --verbose
echo '::endgroup::'
Expand Down
101 changes: 87 additions & 14 deletions .github/workflows/flutter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,112 @@ name: Flutter

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

permissions:
contents: read

env:
FLUTTER_VERSION: 3.38.4

jobs:
build:
analyze:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }}
steps:
- uses: actions/checkout@v4

- uses: subosito/flutter-action@v2
with:
cache: true
channel: stable
flutter-version: 3.38.4
flutter-version: ${{ env.FLUTTER_VERSION }}

- name: Install dependencies
run: flutter pub get
run: dart pub get

- name: Verify formatting
run: dart format --output=none --set-exit-if-changed .

# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: Analyze project source
run: flutter analyze
- name: Analyze
run: dart analyze

- name: Analyze e2e/hooks_test_package
working-directory: e2e/hooks_test_package
run: |
echo '::group::dart pub get'
dart pub get --enforce-lockfile
echo '::endgroup::'

echo '::group::dart format'
dart format --output=none --set-exit-if-changed .
echo '::endgroup::'

echo '::group::dart analyze'
dart analyze
echo '::endgroup::'

test:
runs-on: ${{ matrix.runner }}
env:
GITHUB_TOKEN: ${{ secrets.token }}
strategy:
matrix:
runner:
- windows-latest
- ubuntu-latest
- macos-latest
steps:
- uses: actions/checkout@v4

- uses: subosito/flutter-action@v2
with:
cache: true
channel: stable
flutter-version: ${{ env.FLUTTER_VERSION }}

- name: Install dependencies
run: flutter pub get

# Your project will need to have tests in test/ and a dependency on
# package:test for this step to succeed. Note that Flutter projects will
# want to change this to 'flutter test'.
- name: Run tests
run: flutter test

e2e:
name: E2E Tests (${{ matrix.runner }})
runs-on: ${{ matrix.runner }}
env:
GITHUB_TOKEN: ${{ secrets.PUBLIC_ONLY_PAT }}
strategy:
matrix:
runner:
- windows-latest
- ubuntu-latest
- ubuntu-24.04-arm
- macos-latest
include:
# we need to use the main channel,
# as flutter does apparently not officially release SDKs for arm64 linux.
# see: https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json
- runner: ubuntu-24.04-arm
channel: main
fail-fast: false
steps:
- uses: actions/checkout@v4

- uses: subosito/flutter-action@v2
with:
cache: true
channel: ${{ matrix.channel || 'stable' }}
flutter-version: ${{ env.FLUTTER_VERSION }}

- name: Install dependencies
run: flutter pub get

- name: Activate flutterpi_tool globally
run: flutter pub global activate -spath .

- name: Run e2e tests
run: dart test e2e
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
.dart_tool/
.packages
build/

# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock
/pubspec.lock

# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
Expand Down Expand Up @@ -52,4 +53,4 @@ Icon
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
.apdisk
3 changes: 3 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ analyzer:
exclude:
- lib/src/archive

# separate package with additional dependencies not contained
# in the root pubspec
- e2e/hooks_test_package
# For more information about the core and recommended set of lints, see
# https://dart.dev/go/core-lints

Expand Down
Loading
Loading