mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 14:18:20 +08:00 
			
		
		
		
	feat(dart): Add build check for Dart (#886)
* feat(dart): Add build check for Dart * feat(dart): Add dart analyze to check * fix(dart): remove dart analyze * feat(dart): Ignore unused variable and add dart analyze
This commit is contained in:
		
							
								
								
									
										36
									
								
								.github/workflows/dart.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								.github/workflows/dart.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					# This workflow will install Dart SDK, run format and build with Dart
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name: Dart
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: ["main"]
 | 
				
			||||||
 | 
					    paths: ["codes/dart/**/*.dart"]
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    branches: ["main"]
 | 
				
			||||||
 | 
					    paths: ["codes/dart/**/*.dart"]
 | 
				
			||||||
 | 
					  workflow_dispatch:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					permissions:
 | 
				
			||||||
 | 
					  contents: read
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					    name: Dart ${{ matrix.dart-sdk }} on ${{ matrix.os }}
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        os: [ubuntu-latest, macos-latest, windows-latest]
 | 
				
			||||||
 | 
					        dart-sdk: [stable, beta, dev]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v3
 | 
				
			||||||
 | 
					      - name: Set up Dart ${{ matrix.dart-sdk }}
 | 
				
			||||||
 | 
					        uses: dart-lang/setup-dart@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          sdk: ${{ matrix.dart-sdk}}
 | 
				
			||||||
 | 
					      - name: Run format
 | 
				
			||||||
 | 
					        run: dart format codes/dart
 | 
				
			||||||
 | 
					      - name: Run analyze
 | 
				
			||||||
 | 
					        run: dart analyze codes/dart
 | 
				
			||||||
 | 
					      - name: Run build
 | 
				
			||||||
 | 
					        run: dart codes/dart/build.dart
 | 
				
			||||||
							
								
								
									
										39
									
								
								codes/dart/build.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								codes/dart/build.dart
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					import 'dart:io';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() {
 | 
				
			||||||
 | 
					  Directory foldPath = Directory('codes/dart/');
 | 
				
			||||||
 | 
					  List<FileSystemEntity> files = foldPath.listSync();
 | 
				
			||||||
 | 
					  int totalCount = 0;
 | 
				
			||||||
 | 
					  int errorCount = 0;
 | 
				
			||||||
 | 
					  for (var file in files) {
 | 
				
			||||||
 | 
					    if (file.path.endsWith('build.dart')) continue;
 | 
				
			||||||
 | 
					    if (file is File && file.path.endsWith('.dart')) {
 | 
				
			||||||
 | 
					      totalCount++;
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        Process.runSync('dart', [file.path]);
 | 
				
			||||||
 | 
					      } catch (e) {
 | 
				
			||||||
 | 
					        errorCount++;
 | 
				
			||||||
 | 
					        print('Error: $e');
 | 
				
			||||||
 | 
					        print('File: ${file.path}');
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    } else if (file is Directory) {
 | 
				
			||||||
 | 
					      List<FileSystemEntity> subFiles = file.listSync();
 | 
				
			||||||
 | 
					      for (var subFile in subFiles) {
 | 
				
			||||||
 | 
					        if (subFile is File && subFile.path.endsWith('.dart')) {
 | 
				
			||||||
 | 
					          totalCount++;
 | 
				
			||||||
 | 
					          try {
 | 
				
			||||||
 | 
					            Process.runSync('dart', [subFile.path]);
 | 
				
			||||||
 | 
					          } catch (e) {
 | 
				
			||||||
 | 
					            errorCount++;
 | 
				
			||||||
 | 
					            print('Error: $e');
 | 
				
			||||||
 | 
					            print('File: ${file.path}');
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  print('===== Build Complete =====');
 | 
				
			||||||
 | 
					  print('Total: $totalCount');
 | 
				
			||||||
 | 
					  print('Error: $errorCount');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -4,6 +4,8 @@
 | 
				
			|||||||
 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
					 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ignore_for_file: unused_local_variable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'dart:math';
 | 
					import 'dart:math';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* 随机访问元素 */
 | 
					/* 随机访问元素 */
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,8 @@
 | 
				
			|||||||
 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
					 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ignore_for_file: unused_local_variable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Driver Code */
 | 
					/* Driver Code */
 | 
				
			||||||
void main() {
 | 
					void main() {
 | 
				
			||||||
  /* 初始化列表 */
 | 
					  /* 初始化列表 */
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,8 @@
 | 
				
			|||||||
 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
					 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ignore_for_file: unused_local_variable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'dart:collection';
 | 
					import 'dart:collection';
 | 
				
			||||||
import '../utils/list_node.dart';
 | 
					import '../utils/list_node.dart';
 | 
				
			||||||
import '../utils/print_util.dart';
 | 
					import '../utils/print_util.dart';
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,8 @@
 | 
				
			|||||||
 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
					 * Author: Jefferson (JeffersonHuang77@gmail.com)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ignore_for_file: unused_local_variable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* 常数阶 */
 | 
					/* 常数阶 */
 | 
				
			||||||
int constant(int n) {
 | 
					int constant(int n) {
 | 
				
			||||||
  int count = 0;
 | 
					  int count = 0;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user