fix: eliminate green border stroke ghosting on modifier keys #13
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
| name: Android CI/CD | |
| on: | |
| push: | |
| branches: [ master ] | |
| tags: [ 'v*' ] | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| cache: gradle | |
| - name: Prepare environment | |
| run: | | |
| # Remove Termux-specific aapt2 override for CI | |
| sed -i '/android.aapt2FromMavenOverride/d' gradle.properties | |
| # Remove hardcoded buildToolsVersion to let CI use defaults | |
| sed -i '/buildToolsVersion/d' app/build.gradle | |
| # Ensure Gradle wrapper is executable | |
| chmod +x gradlew | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| with: | |
| packages: "platforms;android-33" | |
| log-accepted-android-sdk-licenses: false | |
| - name: Build with Gradle | |
| run: ./gradlew assembleRelease | |
| - name: Sign APK | |
| run: | | |
| # Generate a dummy keystore | |
| keytool -genkey -v -keystore dummy.keystore -alias dummy -keyalg RSA -keysize 2048 -validity 10000 -storepass password -keypass password -dname "CN=HackerKeyboard, OU=TokyoNight, O=TokyoNight, L=Termux, S=Linux, C=US" | |
| # Find the unsigned APK | |
| UNSIGNED_APK=$(find app/build/outputs/apk/release -name "*.apk" | head -n 1) | |
| SIGNED_APK="app/build/outputs/apk/release/hackers-keyboard-tokyonight-signed.apk" | |
| # Sign the APK | |
| # apksigner is usually in $ANDROID_HOME/build-tools/<version>/apksigner | |
| APKSIGNER=$(find $ANDROID_HOME/build-tools -name apksigner | sort -r | head -n 1) | |
| $APKSIGNER sign --ks dummy.keystore --ks-key-alias dummy --ks-pass pass:password --key-pass pass:password --out "$SIGNED_APK" "$UNSIGNED_APK" | |
| echo "SIGNED_APK_PATH=$SIGNED_APK" >> $GITHUB_ENV | |
| - name: Upload APK | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: hackers-keyboard-tokyonight-signed | |
| path: ${{ env.SIGNED_APK_PATH }} | |
| - name: Create Release (Tags) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: ${{ env.SIGNED_APK_PATH }} | |
| generate_release_notes: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Update Latest Release (Master) | |
| if: github.ref == 'refs/heads/master' | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: latest | |
| name: "Latest Tokyo Night Build" | |
| body: | | |
| This is an automated build of the latest `master` branch. | |
| **Warning**: This is a development build and may be unstable. | |
| Built on: ${{ github.event.head_commit.timestamp }} | |
| Commit: ${{ github.sha }} | |
| files: ${{ env.SIGNED_APK_PATH }} | |
| prerelease: false | |
| make_latest: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |