diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..61f0a03e --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,58 @@ +name: CI + +on: + push: + branches: + - 'master' + - 'test_consume_*' + pull_request: + branches: + - '**' + +jobs: + checks: + uses: Workiva/gha-dart-oss/.github/workflows/checks.yaml@v0.1.7 + with: + format-check: false + + build: + uses: Workiva/gha-dart-oss/.github/workflows/build.yaml@v0.1.7 + + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dart-lang/setup-dart@v1 + with: + sdk: 2.19.6 + + - name: Check formatting + run: dart format . -l 120 --set-exit-if-changed + + test-unit: + runs-on: ubuntu-latest + name: unit tests (${{ matrix.release-mode && 'release' || 'dev' }}) + strategy: + fail-fast: false + matrix: + release-mode: [true, false] + steps: + - uses: actions/checkout@v4 + - uses: dart-lang/setup-dart@v1 + with: + sdk: 2.19.6 + + - name: Install dependencies + run: dart pub get + timeout-minutes: 2 + + - name: Run tests + timeout-minutes: 10 + run: | + args=() + if [[ "${{ matrix.release-mode }}" == "true" ]]; then + args+=(--release) + fi + + dart run build_runner test "${args[@]}" -- -P concurrent-tests + dart run build_runner test "${args[@]}" -- -P non-concurrent-tests diff --git a/.github/workflows/dart_ci.yml b/.github/workflows/dart_ci.yml deleted file mode 100644 index c2adfc52..00000000 --- a/.github/workflows/dart_ci.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Dart CI - -on: - push: - branches: - - 'master' - - 'test_consume_*' - pull_request: - branches: - - '**' - -jobs: - build: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - sdk: [ 2.19.6 ] - steps: - - uses: actions/checkout@v2 - - uses: dart-lang/setup-dart@v1 - with: - sdk: ${{ matrix.sdk }} - - - id: install - name: Install dependencies - run: dart pub get - timeout-minutes: 2 - - - name: Check formatting - run: dart format . -l 120 --set-exit-if-changed - if: ${{ always() && steps.install.outcome == 'success' }} - - - name: Analyze project source - run: dart analyze - if: ${{ always() && steps.install.outcome == 'success' }} - - - name: Run tests (DDC) - run: | - dart run build_runner test -- -P concurrent-tests - dart run build_runner test -- -P non-concurrent-tests - timeout-minutes: 10 - if: ${{ always() && steps.install.outcome == 'success' }} - - - name: Run tests (dart2js) - run: | - dart run build_runner test -r -- -P concurrent-tests - dart run build_runner test -r -- -P non-concurrent-tests - timeout-minutes: 10 - if: ${{ always() && steps.install.outcome == 'success' }} - - uses: anchore/sbom-action@v0 - with: - path: ./ - format: cyclonedx-json diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 00000000..f978e2e0 --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,15 @@ +name: Publish + +on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+' + +permissions: + contents: write + id-token: write + pull-requests: write + +jobs: + publish: + uses: Workiva/gha-dart-oss/.github/workflows/publish.yaml@v0.1.7 \ No newline at end of file