[feature] apply speed chart toggle on home screen #1306
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| on: | |
| push: | |
| branches: | |
| - '**' | |
| tags: | |
| - '*' | |
| release: | |
| types: [published] | |
| jobs: | |
| build_android: | |
| runs-on: ubuntu22.04_x64 | |
| environment: RELEASE_ENVIRONMENT | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| submodules: true | |
| - name: Set version environment variables | |
| if: github.event_name == 'release' | |
| run: | | |
| echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
| echo "RELEASE_VERSION_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
| - name: Set dev version environment variables | |
| if: github.event_name != 'release' | |
| run: | | |
| echo "RELEASE_VERSION=0.0.0.1" >> $GITHUB_ENV | |
| echo "RELEASE_VERSION_NAME=$(date +'%Y-%m-%d__%H-%M-%S')-dev" >> $GITHUB_ENV | |
| - name: Set environment variables | |
| run: | | |
| echo "PATH=$CMDLINE_TOOLS:$PATH" >> $GITHUB_ENV | |
| echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV | |
| echo "KEY_ALIAS=$KEY_ALIAS" >> $GITHUB_ENV | |
| echo "KEY_PASSWORD=$KEY_PASSWORD" >> $GITHUB_ENV | |
| echo "STORE_PASSWORD=$STORE_PASSWORD" >> $GITHUB_ENV | |
| echo "KEYSTORE_PATH=$KEYSTORE_PATH" >> $GITHUB_ENV | |
| env: | |
| KEY_ALIAS: ${{ secrets.KEY_ALIAS }} | |
| KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} | |
| STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }} | |
| KEYSTORE_PATH: ${{ vars.KEYSTORE_PATH }} | |
| ANDROID_HOME: ${{ vars.ANDROID_HOME }} | |
| CMDLINE_TOOLS: ${{ vars.CMDLINE_TOOLS }} | |
| - name: Create local.properties | |
| run: echo "sdk.dir=$ANDROID_HOME" > local.properties | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x gradlew | |
| - name: Print Release Version | |
| if: github.event_name == 'release' | |
| run: | | |
| echo "Release Version: $RELEASE_VERSION" | |
| - name: Build project | |
| run: ./gradlew assembleDebug | |
| - name: Run tests | |
| run: ./gradlew test | |
| - name: Build APK and AAB | |
| if: github.event_name == 'release' | |
| run: | | |
| ./gradlew assembleRelease bundleRelease | |
| AAB_FILE=app/build/outputs/bundle/release/app-release.aab | |
| if [ -f "$AAB_FILE" ]; then | |
| cp -v "$AAB_FILE" "fptn-android-${RELEASE_VERSION_NAME}.aab" | |
| else | |
| echo "Error: AAB file not found at $AAB_FILE" | |
| exit 1 | |
| fi | |
| UNIVERSAL_APK=app/build/outputs/apk/release/app-universal-release.apk | |
| if [ -f "$UNIVERSAL_APK" ]; then | |
| cp -v "$UNIVERSAL_APK" "fptn-android-${RELEASE_VERSION_NAME}-all-platforms-universal.apk" | |
| else | |
| echo "Error: Universal APK not found at $UNIVERSAL_APK" | |
| exit 1 | |
| fi | |
| for ARCH in arm64-v8a armeabi-v7a x86_64; do | |
| ABI_APK="app/build/outputs/apk/release/app-${ARCH}-release.apk" | |
| if [ -f "$ABI_APK" ]; then | |
| cp -v "$ABI_APK" "fptn-android-${RELEASE_VERSION_NAME}-${ARCH}.apk" | |
| else | |
| echo "Error: APK not found for arch $ARCH at $ABI_APK" | |
| exit 1 | |
| fi | |
| done | |
| - name: Upload APK to Release | |
| if: github.event_name == 'release' | |
| uses: AButler/upload-release-assets@v3.0 | |
| with: | |
| files: "*.apk" | |
| repo-token: ${{ secrets.CI_TOKEN }} | |
| - name: Upload AAB to Release | |
| if: github.event_name == 'release' | |
| uses: AButler/upload-release-assets@v3.0 | |
| with: | |
| files: "*.aab" | |
| repo-token: ${{ secrets.CI_TOKEN }} | |
| - name: Upload Build Artifacts | |
| if: github.event_name == 'release' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: AndroidArtifacts | |
| path: | | |
| *.apk | |
| *.aab | |
| if-no-files-found: warn |