77 lines
2.6 KiB
YAML
77 lines
2.6 KiB
YAML
name: Android CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Set up build environment
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get -y install ccache libcurl4-openssl-dev ninja-build
|
|
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: true
|
|
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: ~/.ccache
|
|
key: android-ccache-${{ github.sha }}
|
|
restore-keys: android-ccache-
|
|
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: android-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: android-gradle-
|
|
|
|
- name: Gradle
|
|
working-directory: shell/android-studio
|
|
run: ./gradlew assembleRelease --parallel
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: flycast-release.apk
|
|
path: shell/android-studio/flycast/build/outputs/apk/release/flycast-release.apk
|
|
|
|
- name: Build dump_syms
|
|
working-directory: core/deps/breakpad
|
|
run: |
|
|
./configure --prefix=$PWD
|
|
make -j2
|
|
make install
|
|
|
|
- name: Extract symbols
|
|
run: |
|
|
DUMP_SYMS=./core/deps/breakpad/bin/dump_syms
|
|
SO_DIR=shell/android-studio/flycast/build/intermediates/cmake/release/obj
|
|
for arch in arm64-v8a armeabi-v7a x86 x86_64 ; do
|
|
$DUMP_SYMS $SO_DIR/$arch/libflycast.so > libflycast.so.sym
|
|
BUILD_ID=`head -1 libflycast.so.sym | awk '{ print $4 }'`
|
|
mkdir -p symbols/libflycast.so/$BUILD_ID
|
|
mv libflycast.so.sym symbols/libflycast.so/$BUILD_ID
|
|
done
|
|
|
|
- name: Configure AWS Credentials
|
|
id: aws-credentials
|
|
uses: aws-actions/configure-aws-credentials@v1
|
|
with:
|
|
aws-access-key-id: AKIAJOZQS4H2PHQWYFCA
|
|
aws-secret-access-key: ${{ secrets.S3_SECRET_KEY }}
|
|
aws-region: us-east-2
|
|
if: github.repository == 'flyinghead/flycast' && github.event_name == 'push'
|
|
|
|
- name: Upload to S3
|
|
run: aws s3 sync shell/android-studio/flycast/build/outputs/apk/release s3://flycast-builds/android/${GITHUB_REF#refs/}-$GITHUB_SHA --acl public-read --exclude='*.json' --follow-symlinks
|
|
if: ${{ steps.aws-credentials.outputs.aws-account-id != '' }}
|
|
|
|
- name: Upload to S3 (symbols)
|
|
run: aws s3 sync symbols s3://flycast-symbols/android --follow-symlinks
|
|
if: ${{ steps.aws-credentials.outputs.aws-account-id != '' }}
|