Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial improvements #1

Draft
wants to merge 13 commits into
base: main
Choose a base branch
from
31 changes: 31 additions & 0 deletions .github/workflows/dart-pub-publish-on-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Dart pub publish --dry-run, Publishing Preview for PRs
on:
pull_request:
branches:
- releases
jobs:
preview-publish:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- uses: dart-lang/setup-dart@v1
with:
sdk: stable

- name: Print Dart SDK version
run: dart --version

- name: Install dependencies
run: dart pub get

- name: Verify formatting
run: dart format --output=none --set-exit-if-changed .

- name: Analyze project source
run: dart analyze
if: always()

- name: Preview publish package (dry-run)
run: dart pub publish --dry-run
49 changes: 49 additions & 0 deletions .github/workflows/dart-pub-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Publish package to pub.dev
on:
push:
branches:
- releases
jobs:
publish:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- uses: dart-lang/setup-dart@v1
with:
sdk: stable

- name: Print Dart SDK version
run: dart --version

- name: Install dependencies
run: dart pub get

- name: Verify formatting
run: dart format --output=none --set-exit-if-changed .

- name: Analyze project source
run: dart analyze
if: always()

- name: Setup credentials
env:
OAUTH_ACCESS_TOKEN: ${{ secrets.OAUTH_ACCESS_TOKEN }}
OAUTH_REFRESH_TOKEN: ${{ secrets.OAUTH_REFRESH_TOKEN }}
OAUTH_EXPIRATION: ${{ secrets.OAUTH_EXPIRATION }}
run: |
mkdir -p ~/.pub-cache
cat <<EOF > ~/.pub-cache/credentials.json
{
"accessToken":"${OAUTH_ACCESS_TOKEN}",
"refreshToken":"${OAUTH_REFRESH_TOKEN}",
"tokenEndpoint":"https://accounts.google.com/o/oauth2/token",
"scopes": [ "openid", "https://www.googleapis.com/auth/userinfo.email" ],
"expiration": ${OAUTH_EXPIRATION}
}
EOF

- name: Publish package
run: dart pub publish --force
if: always()
39 changes: 39 additions & 0 deletions .github/workflows/dart-unit-tests-on-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Dart Unit Tests for PRs

on:
pull_request:
branches: ["**"]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- uses: dart-lang/setup-dart@v1
with:
sdk: stable

- name: Print Dart SDK version
run: dart --version

- name: Install dependencies
run: dart pub get

- name: Verify formatting
run: dart format --output=none --set-exit-if-changed .

- name: Analyze project source
run: dart analyze
if: always()

- name: Run tests with coverage enabled
run: dart test --coverage=./coverage
if: always()

- name: Archive raw coverage artifacts
if: always()
uses: actions/upload-artifact@v2
with:
name: raw-coverage
path: ./coverage
37 changes: 37 additions & 0 deletions .github/workflows/dart-unit-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Dart Unit Tests

on:
push:
branches: [main]

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
sdk: [stable]
steps:
- uses: actions/checkout@v2

- uses: dart-lang/setup-dart@v1
with:
sdk: ${{ matrix.sdk }}

- name: Print Dart SDK version
run: dart --version

- name: Install dependencies
run: dart pub get

- name: Verify formatting
run: dart format --output=none --set-exit-if-changed .

- name: Analyze project source
run: dart analyze
if: always()

- name: Run tests
run: dart test
if: always()
58 changes: 58 additions & 0 deletions .github/workflows/pr-code-coverage-reporting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Pull Request Code Coverage Reporting
on:
workflow_run:
workflows: ["Dart Unit Tests for PRs"]
types: [completed]

jobs:
coverage-reporting:
if: >
${{ github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- uses: dart-lang/setup-dart@v1
with:
sdk: stable

- name: Print Dart SDK version
run: dart --version

- name: Install dependencies
run: dart pub get

- name: Download raw coverage from tests workflow
uses: dawidd6/[email protected]
with:
workflow: dart-unit-tests-on-pr.yml
run_id: ${{ github.event.workflow_run.id }}
name: raw-coverage
path: ./coverage

- name: Convert to LCOV report
run: |
dart pub global activate coverage
dart pub global run coverage:format_coverage --packages=.dart_tool/package_config.json --report-on=lib --lcov -o ./coverage/lcov.info -i ./coverage

- name: Generate HTML coverage report
run: |
sudo apt install lcov
genhtml -o ./coverage/report ./coverage/lcov.info

- name: Comment on PR with coverage
continue-on-error: true
uses: romeovs/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
lcov-file: ./coverage/lcov.info

- name: Archive coverage report
if: always()
uses: actions/upload-artifact@v2
with:
name: coverage-report
path: |
./coverage/report
./coverage/lcov.info
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# GeoTypes
A lightweight library for GeoJSON data types available dart and flutter.
A lightweight GeoJson library for dart and Flutter.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dart


This library intentionally maintains a focused scope, enabling GeoTypes to serve as a foundational element for a wide range of geospatial applications.
This library provides a simple and efficient way to work with GeoJson data in Dart and Flutter. It is designed to be easy to use, and to provide a clean and consistent API for working with geospatial data. Therefore we intentionally maintains a limited scope, enabling GeoTypes to serve as a foundational element for a wide range of geospatial applications.

To leverage advanced geospatial analysis features, explore [turf.dart](https://github.com/dartclub/turf_dart), a Dart adaptation of the widely-used [turf.js](https://github.com/Turfjs/turf) library.

Expand Down
Loading
Loading