Add proot and Python to first-run setup, auto-changelog in CI #8
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: Build APK | |
| on: | |
| push: | |
| branches: [android] | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "21" | |
| cache: "npm" | |
| - name: Install npm dependencies | |
| run: npm ci --ignore-scripts || npm install | |
| - name: Build Vue frontend | |
| run: npm run build:frontend | |
| - name: Build CLI server | |
| run: npm run build:cli | |
| - name: Bundle server into APK assets | |
| run: bash android/scripts/build-server-bundle.sh | |
| - name: Download Termux bootstrap | |
| run: bash android/scripts/download-bootstrap.sh | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "17" | |
| distribution: "temurin" | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Build debug APK | |
| working-directory: android | |
| run: ./gradlew assembleDebug | |
| - name: Rename APK | |
| run: cp android/app/build/outputs/apk/debug/app-debug.apk android/app/build/outputs/apk/debug/codexapp.apk | |
| - name: Upload APK artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: codexapp | |
| path: android/app/build/outputs/apk/debug/codexapp.apk | |
| - name: Generate changelog | |
| if: github.ref == 'refs/heads/android' | |
| id: changelog | |
| run: | | |
| PREV_TAG=$(git tag --sort=-v:refname | head -1) | |
| if [ -n "$PREV_TAG" ]; then | |
| CHANGES=$(git log "$PREV_TAG"..HEAD --pretty=format:"- %s" --reverse) | |
| else | |
| CHANGES=$(git log --pretty=format:"- %s" --reverse -20) | |
| fi | |
| { | |
| echo "notes<<CHANGELOG_EOF" | |
| echo "$CHANGES" | |
| echo "CHANGELOG_EOF" | |
| } >> "$GITHUB_OUTPUT" | |
| - name: Create Release | |
| if: github.ref == 'refs/heads/android' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: v${{ github.run_number }} | |
| name: "Codex App v${{ github.run_number }}" | |
| body: | | |
| 🔥 **Codex App** — OpenAI Codex on Android | |
| 📱 Install the APK on any ARM64 Android 7.0+ device. No root required. | |
| ### Changes | |
| ${{ steps.changelog.outputs.notes }} | |
| --- | |
| Built from commit ${{ github.sha }} | |
| files: android/app/build/outputs/apk/debug/codexapp.apk | |
| draft: false | |
| prerelease: false |