name: Pull Request Pipeline on: pull_request: jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 # Required for Flutter action - name: Install jq run: | apt-get update apt-get install -y jq - name: Set up Flutter uses: subosito/flutter-action@v2 with: channel: stable - name: Get dependencies run: | git config --global --add safe.directory '*' flutter pub get - name: Analyze Formatting run: flutter analyze lib test test: runs-on: ubuntu-latest container: image: ghcr.io/cirruslabs/flutter:stable steps: - name: Install Node run: | apt-get update apt-get install -y nodejs npm - name: Checkout code uses: actions/checkout@v4 # Required for Flutter action - name: Install jq run: | apt-get update apt-get install -y jq - name: Set up Flutter uses: subosito/flutter-action@v2 with: channel: stable - name: Get dependencies run: | git config --global --add safe.directory '*' flutter pub get - name: Install system sqlite run: | apt-get update apt-get install -y libsqlite3-0 - name: Run tests run: flutter test localizations: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 # Required for Flutter action - name: Install jq run: | apt-get update apt-get install -y jq - name: Set up Flutter uses: subosito/flutter-action@v2 with: channel: stable - name: Get dependencies run: | git config --global --add safe.directory '*' flutter pub get - name: Check for untranslated messages run: | flutter gen-l10n --no-use-deferred-loading UNTRANSLATED_FILE=lib/l10n/untranslated_messages.json if [ ! -f "$UNTRANSLATED_FILE" ]; then echo "Expected $UNTRANSLATED_FILE to be generated, but it does not exist." exit 1 fi CONTENT=$(tr -d '[:space:]' < "$UNTRANSLATED_FILE") if [ "$CONTENT" != "{}" ]; then echo "Found untranslated messages:" cat "$UNTRANSLATED_FILE" exit 1 fi echo "All messages translated."