Skip to content
Draft
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