Skip to content

Commit

Permalink
githubt/workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
armantorkzaban committed Sep 8, 2022
1 parent 856e99b commit 0cb988b
Show file tree
Hide file tree
Showing 5 changed files with 230 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/dart-pub-publish-on-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
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: Run build_runner
run: dart run build_runner build --delete-conflicting-outputs
if: always()

- name: Preview publish package (dry-run)
run: dart pub publish --dry-run
53 changes: 53 additions & 0 deletions .github/workflows/dart-pub-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
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: Run build_runner
run: dart run build_runner build --delete-conflicting-outputs
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()
43 changes: 43 additions & 0 deletions .github/workflows/dart-unit-tests-on-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
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 build_runner
run: dart run build_runner build --delete-conflicting-outputs
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
41 changes: 41 additions & 0 deletions .github/workflows/dart-unit-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Dart Unit Tests

on:
push:
branches: [main]

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-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 build_runner
run: dart run build_runner build --delete-conflicting-outputs
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

0 comments on commit 0cb988b

Please sign in to comment.