Files
shorebird-updater/.github/workflows/main.yaml
T
Bryan Oltman 5707bd8168 feat: add updater_tools library (#162)
* feat: add patch_packager library

* remove .github folder

* add patch_packager to ci

* update name to updater_tools

* delete unused file
2024-05-15 09:37:37 -04:00

150 lines
3.7 KiB
YAML

name: ci
on:
pull_request:
push:
branches:
- main
jobs:
semantic_pull_request:
name: ✅ Semantic Pull Request
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1
changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
needs_dart_build: ${{ steps.needs_dart_build.outputs.changes }}
needs_flutter_build: ${{ steps.needs_flutter_build.outputs.changes }}
needs_rust_build: ${{ steps.needs_rust_build.outputs.changes }}
name: 👀 Detect Changes
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
name: Build Detection
id: needs_dart_build
with:
filters: |
updater_tools:
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- updater_tools/**
- uses: dorny/paths-filter@v3
name: Build Detection
id: needs_flutter_build
with:
filters: |
shorebird_code_push:
- ./.github/workflows/main.yaml
- ./.github/actions/flutter_package/action.yaml
- shorebird_code_push/**
- uses: dorny/paths-filter@v3
name: Build Detection
id: needs_rust_build
with:
filters: |
library:
- ./.github/actions/rust_crate/action.yaml
- library/**
patch:
- ./.github/actions/rust_crate/action.yaml
- patch/**
build_rust_crates:
needs: changes
if: ${{ needs.changes.outputs.needs_rust_build != '[]' }}
strategy:
matrix:
crate: ${{ fromJSON(needs.changes.outputs.needs_rust_build) }}
runs-on: ubuntu-latest
name: 🦀 Build ${{ matrix.crate }}
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
- name: 🦀 Build ${{ matrix.crate }}
uses: ./.github/actions/rust_crate
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
working_directory: ${{ matrix.crate }}
build_dart_packages:
needs: changes
if: ${{ needs.changes.outputs.needs_dart_build != '[]' }}
strategy:
matrix:
package: ${{ fromJSON(needs.changes.outputs.needs_dart_build) }}
runs-on: ubuntu-latest
name: 🎯 Build ${{ matrix.package }}
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: 🐦 Build ${{ matrix.package }}
uses: ./.github/actions/dart_package
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
coverage_excludes: "**/*.g.dart"
working_directory: ${{ matrix.package }}
build_flutter_packages:
needs: changes
if: ${{ needs.changes.outputs.needs_flutter_build != '[]' }}
strategy:
matrix:
package: ${{ fromJSON(needs.changes.outputs.needs_flutter_build) }}
runs-on: ubuntu-latest
name: 🎯 Build ${{ matrix.package }}
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: 🐦 Build ${{ matrix.package }}
uses: ./.github/actions/flutter_package
with:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
coverage_excludes: "**/*.g.dart"
working_directory: ${{ matrix.package }}
ci:
needs:
[
semantic_pull_request,
build_dart_packages,
build_flutter_packages,
build_rust_crates,
]
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: ⛔️ exit(1) on failure
if: ${{ contains(join(needs.*.result, ','), 'failure') }}
run: exit 1