Skip to content

Build on arm64 with github action #4571

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 34 additions & 8 deletions .github/workflows/debug_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,48 @@ on:

jobs:
build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-15 ]
package_variant: [ apt-android-7, apt-android-5 ]

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Install GNU tools on macos runner
if: runner.os == 'macOS'
run: |
# macOS runner ships with bash v3, and BSD grep and sed which dont support the required options.
brew update
brew install bash
brew install grep
brew install gnu-sed

echo "/opt/homebrew/opt/grep/libexec/gnubin:/opt/homebrew/opt/gnu-sed/libexec/gnubin" >> "$GITHUB_PATH"

- name: Build APKs
shell: bash {0}
env:
PACKAGE_VARIANT: ${{ matrix.package_variant }}
run: |
exit_on_error() { echo "$1"; exit 1; }

if [ -n "$JAVA_HOME_17_X64" ]; then
JAVA_HOME_17="$JAVA_HOME_17_X64"
elif [ -n "$JAVA_HOME_17_arm64" ]; then
JAVA_HOME_17="$JAVA_HOME_17_arm64"
else
exit_on_error "jdk-17 not set in '\$JAVA_HOME_17_X64\' or '\$JAVA_HOME_17_arm64\'."
fi

if [ ! -f "$JAVA_HOME_17/bin/javac" ] || [ ! -x "$JAVA_HOME_17/bin/javac" ]; then
exit_on_error "jdk-17 binary not found at path '$JAVA_HOME_17/bin/javac' or is not executable."
fi


echo "Setting vars"

if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
Expand All @@ -51,10 +76,11 @@ jobs:
echo "APK_VERSION_TAG=$APK_VERSION_TAG" >> $GITHUB_ENV
echo "APK_BASENAME_PREFIX=$APK_BASENAME_PREFIX" >> $GITHUB_ENV

echo "Building APKs for 'APK_VERSION_TAG' build"
echo "Building APKs for $APK_VERSION_TAG build"
export TERMUX_APP_VERSION_NAME="${RELEASE_VERSION_NAME/v/}" # Used by app/build.gradle
export TERMUX_APK_VERSION_TAG="$APK_VERSION_TAG" # Used by app/build.gradle
export TERMUX_PACKAGE_VARIANT="${{ env.PACKAGE_VARIANT }}" # Used by app/build.gradle
export GRADLE_OPTS="-Dorg.gradle.java.home=$JAVA_HOME_17"
if ! ./gradlew assembleDebug; then
exit_on_error "Build failed for '$APK_VERSION_TAG' build."
fi
Expand All @@ -81,47 +107,47 @@ jobs:
- name: Attach universal APK file
uses: actions/upload-artifact@v4
with:
name: ${{ env.APK_BASENAME_PREFIX }}_universal
name: ${{ env.APK_BASENAME_PREFIX }}_universal_${{ matrix.os }}
path: |
${{ env.APK_DIR_PATH }}/${{ env.APK_BASENAME_PREFIX }}_universal.apk
${{ env.APK_DIR_PATH }}/output-metadata.json

- name: Attach arm64-v8a APK file
uses: actions/upload-artifact@v4
with:
name: ${{ env.APK_BASENAME_PREFIX }}_arm64-v8a
name: ${{ env.APK_BASENAME_PREFIX }}_arm64-v8a_${{ matrix.os }}
path: |
${{ env.APK_DIR_PATH }}/${{ env.APK_BASENAME_PREFIX }}_arm64-v8a.apk
${{ env.APK_DIR_PATH }}/output-metadata.json

- name: Attach armeabi-v7a APK file
uses: actions/upload-artifact@v4
with:
name: ${{ env.APK_BASENAME_PREFIX }}_armeabi-v7a
name: ${{ env.APK_BASENAME_PREFIX }}_armeabi-v7a_${{ matrix.os }}
path: |
${{ env.APK_DIR_PATH }}/${{ env.APK_BASENAME_PREFIX }}_armeabi-v7a.apk
${{ env.APK_DIR_PATH }}/output-metadata.json

- name: Attach x86_64 APK file
uses: actions/upload-artifact@v4
with:
name: ${{ env.APK_BASENAME_PREFIX }}_x86_64
name: ${{ env.APK_BASENAME_PREFIX }}_x86_64_${{ matrix.os }}
path: |
${{ env.APK_DIR_PATH }}/${{ env.APK_BASENAME_PREFIX }}_x86_64.apk
${{ env.APK_DIR_PATH }}/output-metadata.json

- name: Attach x86 APK file
uses: actions/upload-artifact@v4
with:
name: ${{ env.APK_BASENAME_PREFIX }}_x86
name: ${{ env.APK_BASENAME_PREFIX }}_x86_${{ matrix.os }}
path: |
${{ env.APK_DIR_PATH }}/${{ env.APK_BASENAME_PREFIX }}_x86.apk
${{ env.APK_DIR_PATH }}/output-metadata.json

- name: Attach sha256sums file
uses: actions/upload-artifact@v4
with:
name: ${{ env.APK_BASENAME_PREFIX }}_sha256sums
name: ${{ env.APK_BASENAME_PREFIX }}_sha256sums_${{ matrix.os }}
path: |
${{ env.APK_DIR_PATH }}/${{ env.APK_BASENAME_PREFIX }}_sha256sums
${{ env.APK_DIR_PATH }}/output-metadata.json
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ android.useAndroidX=true

minSdkVersion=21
targetSdkVersion=28
ndkVersion=22.1.7171670
ndkVersion=27.1.12297006
compileSdkVersion=30

markwonVersion=4.6.2
Expand Down
Loading