mirror of
https://github.com/leinelissen/jellyfin-audio-player.git
synced 2026-09-03 05:10:01 +03:00
112 lines
3.3 KiB
YAML
112 lines
3.3 KiB
YAML
name: Build
|
|
|
|
on: [push, pull_request]
|
|
|
|
env:
|
|
FASTLANE_SKIP_UPDATE_CHECK: true
|
|
|
|
jobs:
|
|
build-android:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'zulu' # See 'Supported distributions' for available options
|
|
java-version: '17'
|
|
- name: Set outputs
|
|
id: vars
|
|
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true
|
|
- name: Cache Gradle
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22'
|
|
cache: 'pnpm'
|
|
- name: Install fastlane
|
|
run: bundle install -j 6
|
|
- name: Install Node dependencies
|
|
run: pnpm i
|
|
- name: Generate APK
|
|
env:
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
|
SENTRY_DISABLE_AUTO_UPLOAD: true
|
|
run: bundle exec fastlane android build
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: jellyfin-audio-player-android-${{ steps.vars.outputs.sha_short }}.apk
|
|
path: android/app/build/outputs/**/*.apk
|
|
|
|
build-ios:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Set outputs
|
|
id: vars
|
|
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
|
|
- name: Set up Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
bundler-cache: true
|
|
- name: Install fastlane
|
|
run: bundle install -j 6
|
|
- name: Cache CocoaPods
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/Library/Caches/CocoaPods
|
|
~/.cocoapods
|
|
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pods-
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '22'
|
|
cache: 'pnpm'
|
|
- name: Install Node dependencies
|
|
run: pnpm i
|
|
- name: Install CocoaPods dependencies
|
|
run: cd ios && pod install
|
|
- name: Cache Xcode DerivedData
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/Library/Developer/Xcode/DerivedData
|
|
key: ${{ runner.os }}-deriveddata-${{ hashFiles('src/**', 'ios/**/*.{h,m,mm,swift,pbxproj}', 'package.json', 'Podfile.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-deriveddata-
|
|
- name: Build iOS app
|
|
env:
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
|
SENTRY_DISABLE_AUTO_UPLOAD: true
|
|
run: bundle exec fastlane ios ci_build
|