diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 00000000..14173ae6 --- /dev/null +++ b/.github/dependabot.yaml @@ -0,0 +1,7 @@ +version: 2 +enable-beta-ecosystems: true +updates: + - package-ecosystem: "pub" + directory: "/" + schedule: + interval: "daily" \ No newline at end of file diff --git a/.github/workflows/analyze.yaml b/.github/workflows/analyze.yaml new file mode 100644 index 00000000..98c79a7b --- /dev/null +++ b/.github/workflows/analyze.yaml @@ -0,0 +1,30 @@ +name: Analyze + +on: + pull_request: + branches: + - main + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Set up Repository + uses: actions/checkout@v2 + + - name: Setup Dart SDK + uses: dart-lang/setup-dart@v1.6.0 + with: + sdk: "stable" + - name: Install Melos + run: dart pub global activate melos + + - name: Install dependencies + run: dart pub global run melos bootstrap + + - name: Analyze + run: dart analyze . diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml new file mode 100644 index 00000000..532b1e36 --- /dev/null +++ b/.github/workflows/coverage.yaml @@ -0,0 +1,59 @@ +name: Upload Coverage + +on: + pull_request: + branches: + - main + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Set up Repository + uses: actions/checkout@v2 + + - name: List Files + run: ls -R + + - name: Setup Dart SDK + uses: dart-lang/setup-dart@v1.6.0 + with: + sdk: "stable" + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: "3.16.0" + + - name: Install Melos + run: dart pub global activate melos + + - name: Install dependencies + run: melos bootstrap + + - name: Run unit tests + run: melos run unit_test + + - name: Create coverage directory + run: mkdir -p coverage + + - name: Run unit tests + run: | + melos exec rm -rf coverage + melos run unit_test + + - name: Calculate and merge coverage + if: success() + run: | + melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde filter --input coverage/lcov.info --output coverage/filtered.lcov.info --filters .g.dart' + melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt' + + - name: Upload coverage to Codecov + if: success() + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: coverage/filtered.lcov.info diff --git a/.gitignore b/.gitignore index edc28547..87c0e251 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,9 @@ coverage/ -coverage.lcov .dart_tool /packages/*/.dart_tool /packages/*/build /packages/*/idea -coverage/ *.iml .idea diff --git a/README.md b/README.md index 10d52775..aa820c3c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # tfgrid-sdk-dart -[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos) +[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos) [![codecov](https://codecov.io/gh/codescalers/tfgrid-sdk-dart/graph/badge.svg?token=O34UDTMW5O)](https://codecov.io/gh/codescalers/tfgrid-sdk-dart) + ## Prerequisites Make sure you have the following tools installed: diff --git a/melos.yaml b/melos.yaml index 269b005b..6ecefa2a 100644 --- a/melos.yaml +++ b/melos.yaml @@ -5,16 +5,14 @@ packages: scripts: analyze: run: melos exec -- flutter analyze . - description: Run `dart analyze` in all packages. + description: Run `dart analyze` in all packages (linting). unit_test: run: melos exec --dir-exists="test" --fail-fast -- flutter test --no-pub --coverage description: Run all Flutter tests in this project. unit_test_and_coverage: - description: Merge all packages coverage tracefiles ignoring data related to generated files. + description: Merge all packages coverage trace files ignoring data related to generated files. run: | melos exec rm -rf coverage melos run unit_test - melos exec dart pub global run coverde filter --input ./coverage/lcov.info --output ./coverage/filtered.lcov.info --filters .g.dart - melos exec dart pub global run coverde value -i ./coverage/filtered.lcov.info > ./coverage/result.txt - - + melos exec -c 1 --file-exists=coverage/lcov.info -- coverde filter --input ./coverage/lcov.info --output MELOS_ROOT_PATH/coverage/filtered.lcov.info --filters \.g\.dart + coverde value -i coverage/filtered.lcov.info > MELOS_ROOT_PATH/coverage/result.txt diff --git a/packages/signer/test/signer_test.dart b/packages/signer/test/signer_test.dart index 2d2a8e81..ab90cdc6 100644 --- a/packages/signer/test/signer_test.dart +++ b/packages/signer/test/signer_test.dart @@ -1,6 +1,5 @@ import 'dart:typed_data'; -import 'package:polkadart_keyring/polkadart_keyring.dart'; import 'package:signer/signer.dart'; import 'package:test/test.dart'; @@ -18,16 +17,16 @@ void main() { await signer.fromMnemonic(mnemonic, KPType.ed25519); final data = 'dummyData'; - final signature = await signer.sign(data); + final signature = signer.sign(data); - final isVerified = await signer.verify(signature, data); + final isVerified = signer.verify(signature, data); expect(isVerified, isTrue); }); test('Test not initializing signer', () async { final data = 'dummyData'; try { - await signer.sign(data); + signer.sign(data); fail('Expected an exception when signing with uninitialized signer.'); } catch (e) { expect(e, isA()); @@ -49,10 +48,10 @@ void main() { await signer.fromMnemonic(mnemonic, KPType.ed25519); final data = 'dummyData'; - final signature = await signer.sign(data); - final modifiedSignature = signature + '00'; + final signature = signer.sign(data); + final modifiedSignature = '${signature}00'; - final isVerified = await signer.verify(modifiedSignature, data); + final isVerified = signer.verify(modifiedSignature, data); expect(isVerified, isFalse); }); @@ -63,7 +62,7 @@ void main() { 148, 202, ]); - expect(() async => await signer.fromSeed(invalidSeed, KPType.ed25519), + expect(() async => signer.fromSeed(invalidSeed, KPType.ed25519), throwsException); }); @@ -78,9 +77,9 @@ void main() { await signer.fromMnemonic(mnemonic, KPType.ed25519); final data = ''; - final signature = await signer.sign(data); + final signature = signer.sign(data); - final isVerified = await signer.verify(signature, data); + final isVerified = signer.verify(signature, data); expect(isVerified, isTrue); }); @@ -90,10 +89,10 @@ void main() { await signer.fromMnemonic(mnemonic, KPType.ed25519); final originalData = 'originalData'; - final signature = await signer.sign(originalData); + final signature = signer.sign(originalData); final differentData = 'differentData'; - final isVerified = await signer.verify(signature, differentData); + final isVerified = signer.verify(signature, differentData); expect(isVerified, isFalse); }); }); diff --git a/pubspec.yaml b/pubspec.yaml index 8d20a815..5f7552a5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,6 +8,7 @@ environment: dev_dependencies: lints: ^3.0.0 test: ^1.24.0 + dependencies: coverage: ^1.7.1 melos: ^3.2.0