7 changed files with 288 additions and 43 deletions
-
21.ci/scripts/android/eabuild.sh
-
21.ci/scripts/android/mainlinebuild.sh
-
66.github/workflows/android-ea-play-release.yml
-
59.github/workflows/android-mainline-play-release.yml
-
129.github/workflows/android-merge.js
-
4.github/workflows/android-publish.yml
-
31src/android/app/build.gradle.kts
@ -0,0 +1,21 @@ |
|||||
|
#!/bin/bash -ex |
||||
|
|
||||
|
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project |
||||
|
# SPDX-License-Identifier: GPL-3.0-or-later |
||||
|
|
||||
|
export NDK_CCACHE="$(which ccache)" |
||||
|
ccache -s |
||||
|
|
||||
|
export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" |
||||
|
base64 --decode <<< "${EA_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" |
||||
|
export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}" |
||||
|
export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}" |
||||
|
export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json" |
||||
|
base64 --decode <<< "${EA_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}" |
||||
|
./gradlew "publishEaReleaseBundle" |
||||
|
|
||||
|
ccache -s |
||||
|
|
||||
|
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then |
||||
|
rm "${ANDROID_KEYSTORE_FILE}" |
||||
|
fi |
||||
@ -0,0 +1,21 @@ |
|||||
|
#!/bin/bash -ex |
||||
|
|
||||
|
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project |
||||
|
# SPDX-License-Identifier: GPL-3.0-or-later |
||||
|
|
||||
|
export NDK_CCACHE="$(which ccache)" |
||||
|
ccache -s |
||||
|
|
||||
|
export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" |
||||
|
base64 --decode <<< "${MAINLINE_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" |
||||
|
export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}" |
||||
|
export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}" |
||||
|
export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json" |
||||
|
base64 --decode <<< "${MAINLINE_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}" |
||||
|
./gradlew "publishMainlineReleaseBundle" |
||||
|
|
||||
|
ccache -s |
||||
|
|
||||
|
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then |
||||
|
rm "${ANDROID_KEYSTORE_FILE}" |
||||
|
fi |
||||
@ -0,0 +1,66 @@ |
|||||
|
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project |
||||
|
# SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
|
||||
|
name: yuzu-android-ea-play-release |
||||
|
|
||||
|
on: |
||||
|
workflow_dispatch: |
||||
|
inputs: |
||||
|
release-track: |
||||
|
description: 'Play store release track (internal/alpha/beta/production)' |
||||
|
required: true |
||||
|
default: 'alpha' |
||||
|
|
||||
|
jobs: |
||||
|
android: |
||||
|
runs-on: ubuntu-latest |
||||
|
if: ${{ github.repository == 'yuzu-emu/yuzu' }} |
||||
|
steps: |
||||
|
- uses: actions/checkout@v3 |
||||
|
name: Checkout |
||||
|
with: |
||||
|
fetch-depth: 0 |
||||
|
submodules: true |
||||
|
token: ${{ secrets.ALT_GITHUB_TOKEN }} |
||||
|
- run: npm install execa@5 |
||||
|
- uses: actions/github-script@v5 |
||||
|
name: 'Merge and publish Android EA changes' |
||||
|
env: |
||||
|
ALT_GITHUB_TOKEN: ${{ secrets.ALT_GITHUB_TOKEN }} |
||||
|
BUILD_EA: true |
||||
|
with: |
||||
|
script: | |
||||
|
const execa = require("execa"); |
||||
|
const mergebot = require('./.github/workflows/android-merge.js').mergebot; |
||||
|
process.chdir('${{ github.workspace }}'); |
||||
|
mergebot(github, context, execa); |
||||
|
- name: Get tag name |
||||
|
run: echo "GIT_TAG_NAME=$(cat tag-name.txt)" >> $GITHUB_ENV |
||||
|
- name: Set up JDK 17 |
||||
|
uses: actions/setup-java@v3 |
||||
|
with: |
||||
|
java-version: '17' |
||||
|
distribution: 'temurin' |
||||
|
- name: Install dependencies |
||||
|
run: | |
||||
|
sudo apt-get update |
||||
|
sudo apt-get install -y ccache apksigner glslang-dev glslang-tools |
||||
|
- name: Build |
||||
|
run: ./.ci/scripts/android/eabuild.sh |
||||
|
env: |
||||
|
EA_PLAY_ANDROID_KEYSTORE_B64: ${{ secrets.PLAY_ANDROID_KEYSTORE_B64 }} |
||||
|
PLAY_ANDROID_KEY_ALIAS: ${{ secrets.PLAY_ANDROID_KEY_ALIAS }} |
||||
|
PLAY_ANDROID_KEYSTORE_PASS: ${{ secrets.PLAY_ANDROID_KEYSTORE_PASS }} |
||||
|
EA_SERVICE_ACCOUNT_KEY_B64: ${{ secrets.EA_SERVICE_ACCOUNT_KEY_B64 }} |
||||
|
STORE_TRACK: ${{ github.event.inputs.release-track }} |
||||
|
AUTO_VERSIONED: true |
||||
|
BUILD_EA: true |
||||
|
- name: Create release |
||||
|
uses: softprops/action-gh-release@v1 |
||||
|
with: |
||||
|
tag_name: ${{ env.EA_TAG_NAME }} |
||||
|
name: ${{ env.EA_TAG_NAME }} |
||||
|
draft: false |
||||
|
prerelease: false |
||||
|
repository: yuzu/yuzu-android |
||||
|
token: ${{ secrets.ALT_GITHUB_TOKEN }} |
||||
@ -0,0 +1,59 @@ |
|||||
|
# SPDX-FileCopyrightText: 2024 yuzu Emulator Project |
||||
|
# SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
|
||||
|
name: yuzu-android-mainline-play-release |
||||
|
|
||||
|
on: |
||||
|
workflow_dispatch: |
||||
|
inputs: |
||||
|
release-tag: |
||||
|
description: 'Tag # from yuzu-android that you want to build and publish' |
||||
|
required: true |
||||
|
default: '200' |
||||
|
release-track: |
||||
|
description: 'Play store release track (internal/alpha/beta/production)' |
||||
|
required: true |
||||
|
default: 'alpha' |
||||
|
|
||||
|
jobs: |
||||
|
android: |
||||
|
runs-on: ubuntu-latest |
||||
|
if: ${{ github.repository == 'yuzu-emu/yuzu' }} |
||||
|
steps: |
||||
|
- uses: actions/checkout@v3 |
||||
|
name: Checkout |
||||
|
with: |
||||
|
fetch-depth: 0 |
||||
|
submodules: true |
||||
|
token: ${{ secrets.ALT_GITHUB_TOKEN }} |
||||
|
- run: npm install execa@5 |
||||
|
- uses: actions/github-script@v5 |
||||
|
name: 'Pull mainline tag' |
||||
|
env: |
||||
|
MAINLINE_TAG: ${{ github.event.inputs.release-tag }} |
||||
|
with: |
||||
|
script: | |
||||
|
const execa = require("execa"); |
||||
|
const mergebot = require('./.github/workflows/android-merge.js').getMainlineTag; |
||||
|
process.chdir('${{ github.workspace }}'); |
||||
|
mergebot(execa); |
||||
|
- name: Set up JDK 17 |
||||
|
uses: actions/setup-java@v3 |
||||
|
with: |
||||
|
java-version: '17' |
||||
|
distribution: 'temurin' |
||||
|
- name: Install dependencies |
||||
|
run: | |
||||
|
sudo apt-get update |
||||
|
sudo apt-get install -y ccache apksigner glslang-dev glslang-tools |
||||
|
- name: Build |
||||
|
run: | |
||||
|
echo "GIT_TAG_NAME=android-${{ github.event.inputs.releast-tag }}" >> $GITHUB_ENV |
||||
|
./.ci/scripts/android/mainlinebuild.sh |
||||
|
env: |
||||
|
MAINLINE_PLAY_ANDROID_KEYSTORE_B64: ${{ secrets.PLAY_ANDROID_KEYSTORE_B64 }} |
||||
|
PLAY_ANDROID_KEY_ALIAS: ${{ secrets.PLAY_ANDROID_KEY_ALIAS }} |
||||
|
PLAY_ANDROID_KEYSTORE_PASS: ${{ secrets.PLAY_ANDROID_KEYSTORE_PASS }} |
||||
|
SERVICE_ACCOUNT_KEY_B64: ${{ secrets.MAINLINE_SERVICE_ACCOUNT_KEY_B64 }} |
||||
|
STORE_TRACK: ${{ github.event.inputs.release-track }} |
||||
|
AUTO_VERSIONED: true |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue