Skip to content

Merge pull request #4 from j-roskopf/jr/swipe #30

Merge pull request #4 from j-roskopf/jr/swipe

Merge pull request #4 from j-roskopf/jr/swipe #30

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags:
- v*
pull_request:
workflow_dispatch:
jobs:
code-style:
runs-on: macos-14
timeout-minutes: 60
steps:
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- uses: gradle/gradle-build-action@v2
with:
cache-disabled: true
- name: Check convention plugins code style with Spotless
run: ./gradlew -p gradle/build-logic spotlessCheck
- name: Check code style with Spotless
run: ./gradlew spotlessCheck
- name: Run tests
run: ./gradlew test
android:
runs-on: macos-14
timeout-minutes: 60
env:
GOOGLE_PLAY_API_CREDENTIALS: ${{ secrets.GOOGLE_PLAY_API_CREDENTIALS }}
steps:
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- uses: gradle/gradle-build-action@v2
with:
cache-disabled: true
- name: Generate android keystore
id: android_keystore
uses: timheuer/base64-to-file@v1.0.4
with:
fileName: keystore.jks
encodedString: ${{ secrets.KEYSTORE }}
- name: Create key.properties
run: |
echo "storeFile=${{ steps.android_keystore.outputs.filePath }}" > androidApp/key.properties
echo "storePassword=${{ secrets.ANDROID_SIGNING_STORE_PASSWORD }}" >> androidApp/key.properties
echo "keyPassword=${{ secrets.ANDROID_SIGNING_KEY_PASSWORD }}" >> androidApp/key.properties
echo "keyAlias=${{ secrets.ANDROID_SIGNING_KEY_ALIAS }}" >> androidApp/key.properties
- name: build prod
run: ./gradlew :androidApp:bundleRelease :androidApp:assembleRelease
env:
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }}
- name: Upload build outputs
if: always()
uses: actions/upload-artifact@v3
with:
name: android-build-outputs
path: androidApp/build/outputs/
ios:
runs-on: macos-14
timeout-minutes: 60
env:
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.GIT_PERSONAL_ACCESS_TOKEN }}
MATCH_PASSWORD: ${{ secrets.SYNC_SPHERE_GIT_PW }}
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
ROCKABYE_BUILD_NUMBER: ${{ github.run_number }}
steps:
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- uses: gradle/gradle-build-action@v2
with:
cache-disabled: true
- run: brew install swiftlint
- name: Build iOS application
run: bundle exec fastlane ios build
- name: Upload build outputs
if: always()
continue-on-error: true
uses: actions/upload-artifact@v3
with:
name: ios-build-outputs
path: |
*.ipa
*.dSYM.zip
- name: Upload build logs
if: always()
uses: actions/upload-artifact@v3
with:
name: ios-logs
path: |
**/fastlane-buildlog