Skip to content

Commit

Permalink
Add matrix workflow (#259)
Browse files Browse the repository at this point in the history
* Add matrix workflow

* Move composeAPp

* Update with build-lib

* Split

* Check

* Check

* Check

* ::

* Split

* Add UI

* Add UI

* Add UI #3

* Restore sample

* Update bases

* Update pull_request.yml
  • Loading branch information
alorma authored May 13, 2024
1 parent 757f6c4 commit 5705a31
Showing 1 changed file with 54 additions and 133 deletions.
187 changes: 54 additions & 133 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,101 +26,17 @@ jobs:
- name: Detekt - PR
run: ./gradlew detektAll

build-storage-base:
name: Build storage base - PR
build-lib-base:
strategy:
matrix:
config: [
{ target: storage, module: storage-base, task: build, continueOnError: false },
{ target: ui, module: ui-base, task: build, continueOnError: false },
]
name: Build ${{ matrix.config.target }} - PR
if: ${{ success() }}
needs: [ detekt ]
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17

- name: Build storage base - PR
run: ./gradlew :storage-base:build

build-ui-base:
name: Build ui base - PR
if: ${{ success() }}
needs: [ detekt ]
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17

- name: Build ui base - PR
run: ./gradlew :ui-base:build

build-ui-tiles:
name: Build ui tiles - PR
if: ${{ success() }}
needs: [ build-ui-base ]
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17

- name: Build ui tiles - PR
run: ./gradlew :ui-tiles:build

build-ui-tiles-extended:
name: Build ui tiles extended - PR
if: ${{ success() }}
needs: [ build-ui-base ]
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17

- name: Build ui tiles extended - PR
run: ./gradlew :ui-tiles-extended:build

build-storage-memory:
name: Build storage memory - PR
if: ${{ success() }}
needs: [ build-storage-base ]
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17

- name: Build storage memory - PR
run: ./gradlew :storage-memory:build

build-storage-disk:
name: Build storage disk - PR
if: ${{ success() }}
needs: [ build-storage-base ]
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4
Expand All @@ -132,12 +48,19 @@ jobs:
java-version: 17

- name: Build
run: ./gradlew :storage-disk:build

build-sample-android:
name: Build sample Android- PR
continue-on-error: ${{ matrix.config.continueOnError }}
run: ./gradlew :${{ matrix.config.module }}:${{ matrix.config.task }}

build-lib-storage:
strategy:
matrix:
config: [
{ target: memory, module: storage-memory, task: build, continueOnError: false },
{ target: disk, module: storage-disk, task: build, continueOnError: false },
]
name: Build ${{ matrix.config.target }} - PR
if: ${{ success() }}
needs: [ build-storage-memory, build-storage-disk, build-ui-tiles, build-ui-tiles-extended ]
needs: [ detekt, build-lib-base ]
runs-on: macos-latest
steps:
- name: Check out code
Expand All @@ -149,31 +72,20 @@ jobs:
distribution: adopt
java-version: 17

- name: Build sample Android - PR
run: ./gradlew :composeApp:assembleDebug :composeApp:assembleRelease

build-sample-desktop:
name: Build sample Desktop - PR
if: ${{ success() }}
needs: [ build-storage-memory, build-storage-disk, build-ui-tiles, build-ui-tiles-extended ]
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: adopt
java-version: 17

- name: Build sample Desktop - PR
run: ./gradlew :composeApp:compileKotlinDesktop

build-sample-iOS:
name: Build sample iOS - PR
- name: Build
continue-on-error: ${{ matrix.config.continueOnError }}
run: ./gradlew :${{ matrix.config.module }}:${{ matrix.config.task }}

build-lib-ui:
strategy:
matrix:
config: [
{ target: tiles, module: ui-tiles, task: build, continueOnError: false },
{ target: tiles expanded, module: ui-tiles-extended, task: build, continueOnError: false },
]
name: Build ${{ matrix.config.target }} - PR
if: ${{ success() }}
needs: [ build-storage-memory, build-storage-disk, build-ui-tiles, build-ui-tiles-extended ]
needs: [ detekt, build-lib-base ]
runs-on: macos-latest
steps:
- name: Check out code
Expand All @@ -185,14 +97,22 @@ jobs:
distribution: adopt
java-version: 17

- name: Build sample iOS - PR
run: ./gradlew :composeApp:compileKotlinIosArm64 :composeApp:compileKotlinIosX64 :composeApp:compileKotlinIosSimulatorArm64

build-sample-js:
name: Build sample JS - PR
- name: Build
continue-on-error: ${{ matrix.config.continueOnError }}
run: ./gradlew :${{ matrix.config.module }}:${{ matrix.config.task }}

build-sample:
strategy:
matrix:
config: [
{ target: android, os: ubuntu-latest, tasks: assembleDebug, continueOnError: false },
{ target: iOS, os: macos-latest, tasks: compileKotlinIosArm64 compileKotlinIosX64 compileKotlinIosSimulatorArm64, continueOnError: false },
{ target: js, os: ubuntu-latest, tasks: jsBrowserDistribution, continueOnError: false },
{ target: desktop, os: ubuntu-latest, tasks: compileKotlinDesktop, continueOnError: false }
]
if: ${{ success() }}
needs: [ build-storage-memory, build-storage-disk, build-ui-tiles, build-ui-tiles-extended ]
runs-on: macos-latest
needs: [ build-lib-ui, build-lib-storage ]
runs-on: ${{ matrix.config.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
Expand All @@ -203,13 +123,14 @@ jobs:
distribution: adopt
java-version: 17

- name: Build sample JS - PR
run: ./gradlew jsBrowserDistribution
- name: Build sample ${{ matrix.config.target }} - PR
continue-on-error: ${{ matrix.config.continueOnError }}
run: ./gradlew :composeApp:${{ matrix.config.tasks }}

check-sign:
name: Check signature - PR
if: ${{ success() }}
needs: [ build-sample-android, build-sample-iOS, build-sample-desktop, build-sample-js ]
needs: [ build-sample ]
runs-on: macos-latest
steps:
- name: Check out code
Expand All @@ -227,7 +148,7 @@ jobs:
fake-publish:
name: Fake publish - PR
if: ${{ success() }}
needs: [ build-sample-android, build-sample-iOS, build-sample-desktop, build-sample-js ]
needs: [ build-sample ]
runs-on: macos-latest
steps:
- name: Check out code
Expand All @@ -245,7 +166,7 @@ jobs:
publish-dry:
name: Dry run publish - PR
if: ${{ success() }}
needs: [ check-sign, build-sample-android, build-sample-iOS, build-sample-desktop, build-sample-js ]
needs: [ check-sign, build-sample ]
runs-on: macos-latest
steps:
- name: Check out code
Expand Down

0 comments on commit 5705a31

Please sign in to comment.