Skip to content

View shared folder and its content #111

View shared folder and its content

View shared folder and its content #111

Workflow file for this run

name: Lint Checks
# Always run the checks on a push and a PR.
#
# 20250914 gjw Run the tests as separate jobs so we see the individual
# results. We can instead run then as a single job with multiple
# steps, but then it stops on the first fail and so not as
# informative.
on:
push:
pull_request:
types: [opened, reopened, synchronize]
env:
FLUTTER_VERSION: '3.35.5'
jobs:
analyze:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: ${{env.FLUTTER_VERSION}}
- run: flutter pub get
- run: flutter analyze --fatal-infos
format:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: ${{env.FLUTTER_VERSION}}
- run: flutter pub get
- run: dart format --set-exit-if-changed .
unused_code:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: ${{env.FLUTTER_VERSION}}
- run: flutter pub get
- run: dart pub global activate dart_code_metrics
- run: metrics check-unused-code --disable-sunset-warning lib
unused_files:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: ${{env.FLUTTER_VERSION}}
- run: flutter pub get
- run: dart pub global activate dart_code_metrics
- run: metrics check-unused-files --disable-sunset-warning lib
import_order:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: ${{env.FLUTTER_VERSION}}
- run: flutter pub get
- run: dart pub global activate import_order_lint
- run: import_order --check
markdown:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: npm install -g markdownlint-cli
- run: markdownlint *.md lib assets installers
link_checker:
runs-on: ubuntu-latest
if: github.event.repository.private == false
permissions:
issues: write # required for peter-evans/create-issue-from-file
steps:
- uses: actions/checkout@v4
- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@v2
with: # Don't fail for now but then create an issue - useful?
args:
--verbose
--no-progress
'assets/**/*.md'
'assets/**/*.html'
'lib/**/*.dart'
fail: false
- name: Create Issue From File
if: steps.lychee.outputs.exit_code != 0
uses: peter-evans/create-issue-from-file@v5
with:
title: Link Checker Report
content-filepath: ./lychee/out.md
labels: report, automated issue
locmax:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- run: make locmax-enforce
copyright:
runs-on: ubuntu-latest
if: github.event.repository.private == false
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: ${{env.FLUTTER_VERSION}}
- run: flutter pub get
- name: Check copyright headers
run: |
# Find Dart files without proper copyright headers, excluding generated files
missing_copyright=$(find lib -type f -name '*.dart' \
! -name '*.g.dart' \
! -name '*.gr.dart' \
! -name '*.freezed.dart' \
! -name '*.chopper.dart' \
! -name '*.part.dart' \
! -name '*.config.dart' \
-exec grep -L "Copyright" {} \;)
if [ -n "$missing_copyright" ]; then
echo "❌ Files missing copyright headers:"
echo "$missing_copyright"
echo ""
echo "💡 Note: Generated files (*.g.dart, *.freezed.dart, etc.) are automatically excluded"
exit 1
else
echo "✅ All non-generated Dart files have copyright headers"
fi