Skip to content

chore(develop): release Mockzilla mobile ui libraries #972

chore(develop): release Mockzilla mobile ui libraries

chore(develop): release Mockzilla mobile ui libraries #972

name: Combined Pull Request
on:
workflow_dispatch:
pull_request:
jobs:
setup:
runs-on: ubuntu-latest
outputs:
should_run: ${{ steps.should_run.outputs.should_run }}
steps:
- id: should_run
run: |
if [[ ${{ github.head_ref }} == *"release-please--branches"* ]]; then
echo "should_run=false" >> $GITHUB_OUTPUT
else
echo "should_run=true" >> $GITHUB_OUTPUT
fi
filter:
needs: [ setup ]
if: needs.setup.outputs.should_run == 'true'
runs-on: ubuntu-latest
outputs:
common-fastlane: ${{ steps.filter.outputs.common-fastlane }}
common-kotlin: ${{ steps.filter.outputs.common-kotlin }}
flutter: ${{ steps.filter.outputs.flutter }}
docs: ${{ steps.filter.outputs.docs }}
mockzilla-server: ${{ steps.filter.outputs.mockzilla-server }}
mockzilla-management: ${{ steps.filter.outputs.mockzilla-management }}
mockzilla-management-ui: ${{ steps.filter.outputs.mockzilla-management-ui }}
swift-mockzilla: ${{ steps.filter.outputs.swift-mockzilla }}
sample-ios: ${{ steps.filter.outputs.sample-ios }}
sample-android: ${{ steps.filter.outputs.sample-android }}
sample-kmm: ${{ steps.filter.outputs.sample-kmm }}
swagger: ${{ steps.filter.outputs.swagger }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
common-fastlane: &common-fastlane
- fastlane/Appfile
- Gemfile
- Gemfile.lock
common-kotlin: &common-kotlin
- *common-fastlane
- build-logic/**
- settings.gradle.kts
- gradle.properties
- build.gradle.kts
- mockzilla-common/**
- gradle/**
flutter:
- *common-fastlane
- FlutterMockzilla/**
- fastlane/fastfiles/flutter.rb
docs:
- *common-fastlane
- docs/**
- fastlane/fastfiles/docs.rb
mockzilla-server: &mockzilla-server
- *common-kotlin
- mockzilla/**
- fastlane/fastfiles/lib_pull_request.rb
mockzilla-management: &mockzilla-management
- *mockzilla-server
- mockzilla-management/**
mockzilla-management-ui:
- *mockzilla-management
- fastlane/fastfiles/management-ui.rb
- mockzilla-management-ui/**
swift-mockzilla:
- *mockzilla-server
- SwiftMockzilla/**
sample-ios:
- samples/demo-ios/**
sample-android:
- *mockzilla-server
- samples/demo-android/**
sample-kmm:
- *mockzilla-server
- samples/demo-kmm/**
swagger:
- webapi.yml
docs:
needs: filter
if: needs.filter.outputs.docs == 'true'
runs-on: macos-14
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: 3.x
- name: Setup fastlane
run: bundle install
- name: Generate Docs
run: |
pip install --upgrade setuptools
pip install -r docs/requirements.txt
bundle exec fastlane generate_docs
flutter:
needs: filter
if: needs.filter.outputs.flutter == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.35.0'
channel: 'stable'
- name: Setup fastlane
run: bundle install
- name: Run Flutter Fastlane
run: |
bundle exec fastlane flutter_lib_pull_request
bundle exec fastlane demo_flutter_pull_request
mockzilla-server:
needs: filter
if: needs.filter.outputs.mockzilla-server == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
- name: Setup fastlane
run: bundle install
- name: Build Mockzilla Server
run: |
bundle exec fastlane android lib_mockzilla_pull_request
bundle exec fastlane ios lib_mockzilla_pull_request
bundle exec fastlane js lib_mockzilla_pull_request
bundle exec fastlane publish_to_maven_local
mockzilla-management:
needs: filter
if: needs.filter.outputs.mockzilla-management == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- name: Setup fastlane
run: bundle install
- name: Build Management Library
run: bundle exec fastlane lib_mockzilla_management_pull_request
mockzilla-management-ui:
needs: filter
if: needs.filter.outputs.mockzilla-management-ui == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- name: Setup fastlane
run: bundle install
- name: Build Management UI
run: bundle exec fastlane management_ui_pull_request
swift-mockzilla:
needs: filter
if: needs.filter.outputs.swift-mockzilla == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- name: Setup fastlane
run: bundle install
- name: Build SwiftMockzilla
run: bundle exec fastlane ios lib_swift_mockzilla_pull_request
sample-android:
needs: filter
if: needs.filter.outputs.sample-android == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- name: Setup fastlane
run: bundle install
- name: Build Sample Android
run: bundle exec fastlane android demo_android_pull_request
sample-ios:
needs: filter
if: needs.filter.outputs.sample-ios == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- name: Setup fastlane
run: bundle install
- name: Build Sample iOS
run: bundle exec fastlane ios demo_ios_pull_request
sample-kmm-ios:
needs: filter
if: needs.filter.outputs.sample-kmm == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- name: Setup fastlane
run: bundle install
- name: Build Sample KMM
run: |
bundle exec fastlane ios demo_kmm_pull_request
sample-kmm-android:
needs: filter
if: needs.filter.outputs.sample-kmm == 'true'
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4.0'
- uses: actions/checkout@v5
- name: Setup fastlane
run: bundle install
- name: Build Sample KMM
run: |
bundle exec fastlane android demo_kmm_pull_request
swagger:
needs: filter
if: needs.filter.outputs.swagger == 'true'
runs-on: macos-14
steps:
- uses: actions/checkout@v5
- name: Validate Swagger
uses: mbowman100/[email protected]
with:
files: webapi.yaml
env:
PR: true