96 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: Pull Request Workflow
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|   merge_group:
 | |
| 
 | |
| jobs:
 | |
|   code_tests:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: ./scripts/generate-locale-config.sh
 | |
|       - run: git diff --exit-code
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: subosito/flutter-action@v2
 | |
|         with:
 | |
|           flutter-version: ${{ env.FLUTTER_VERSION }}
 | |
|           cache: true
 | |
|       - run: flutter pub get
 | |
|       - run: flutter gen-l10n
 | |
|       - name: Check formatting
 | |
|         run: dart format lib/ test/ --set-exit-if-changed
 | |
|       - name: Check import formatting
 | |
|         run: dart run import_sorter:main --no-comments --exit-if-changed
 | |
|       - name: Check license compliance
 | |
|         run: dart run license_checker check-licenses -c licenses.yaml --problematic
 | |
|       - run: flutter analyze
 | |
|       - name: Apply google services patch
 | |
|         run: git apply ./scripts/enable-android-google-services.patch
 | |
|       - run: flutter analyze
 | |
|       - run: flutter test
 | |
| 
 | |
|   build_debug_apk:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: actions/setup-java@v4
 | |
|         with:
 | |
|           java-version: ${{ env.JAVA_VERSION }}
 | |
|           distribution: "zulu"
 | |
|       - uses: subosito/flutter-action@v2
 | |
|         with:
 | |
|           flutter-version: ${{ env.FLUTTER_VERSION }}
 | |
|           cache: true
 | |
|       - run: flutter pub get
 | |
|       - run: flutter build apk --debug
 | |
| 
 | |
|   build_debug_web:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: subosito/flutter-action@v2
 | |
|         with:
 | |
|           flutter-version: ${{ env.FLUTTER_VERSION }}
 | |
|           cache: true
 | |
|       - run: flutter pub get
 | |
|       - name: Prepare web
 | |
|         run: ./scripts/prepare-web.sh
 | |
|       - run: flutter build web
 | |
| 
 | |
|   build_debug_linux:
 | |
|     strategy:
 | |
|       matrix:
 | |
|         arch: [ x64, arm64 ]
 | |
|     runs-on: ${{ matrix.arch == 'arm64' && 'self-hosted' || 'ubuntu-latest'}}
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - name: Install dependencies
 | |
|         run: sudo apt-get update && sudo apt-get install git wget curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libsecret-1-dev libsecret-1-0 librhash0 libssl-dev libwebkit2gtk-4.1-dev -y
 | |
|       - name: Install Flutter
 | |
|         run: |
 | |
|           git clone --branch ${{ env.FLUTTER_VERSION }} https://github.com/flutter/flutter.git
 | |
|           ./flutter/bin/flutter doctor          
 | |
|       - run: ./flutter/bin/flutter pub get
 | |
|       - run: ./flutter/bin/flutter build linux --target-platform linux-${{ matrix.arch }}
 | |
| 
 | |
|   build_debug_ios:
 | |
|     runs-on: macos-15
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: subosito/flutter-action@v2
 | |
|         with:
 | |
|           flutter-version: ${{ env.FLUTTER_VERSION }}
 | |
|           cache: true
 | |
|       - name: Setup Xcode version
 | |
|         uses: maxim-lobanov/setup-xcode@v1.6.0
 | |
|         with:
 | |
|           xcode-version: latest
 | |
|       - run: brew install sqlcipher
 | |
|       - run: flutter pub get
 | |
|       - run: flutter build ios --no-codesign
 |