Skip to content

build

build #28

Workflow file for this run

name: build
on:
push:
tags:
- "v*"
pull_request:
paths-ignore:
- "README.md"
- "architecture.md"
- 'CHANGELOG.md'
- 'CONTRIBUTING.md'
branches-ignore:
- 'bttv/l10n_master'
workflow_dispatch: {}
jobs:
build:
runs-on: ubuntu-latest
steps:
# checkout current state of repo
- uses: actions/checkout@v3
# set env variables
- name: set variables
run: |
echo 'APK_URL=https://www.apkmirror.com/wp-content/themes/APKMirror/download.php?id=5192421&key=c831db3fd02dea97d28fe64a1b3ff1eb3a37b0c0&forcebaseapk=true' >> $GITHUB_ENV
# get keystore.kjs from secret
- name: create keystore.kjs from secret
run: echo "${{ secrets.KEYSTORE }}" | base64 -d > keystore.jks
# download apk when cache miss
- name: download base
if: steps.apk-cache.outputs.cache-hit != 'true'
run: wget --user-agent="Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Mobile Safari/537.36" '${{ env.APK_URL }}' -O twitch.apk
- name: Create bttv directory
run: mkdir -p /opt/bttv
- name: Set git identity
run: |
git config --global user.email "<>"
git config --global user.name "bttv-android"
- name: Install SDK Tools
run: |
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
unzip commandlinetools-linux-6858069_latest.zip
rm commandlinetools-linux-6858069_latest.zip
echo "y" | cmdline-tools/bin/sdkmanager --sdk_root=/opt/android-sdk-linux "build-tools;30.0.0"
- name: Install APKTool
run: |
wget https://github.com/iBotPeaches/Apktool/releases/download/v2.5.0/apktool_2.5.0.jar
mv apktool_2.5.0.jar /opt/bttv/apktool_2.5.0.jar
- name: Install Uber APK Signer
run: |
wget https://github.com/patrickfav/uber-apk-signer/releases/download/v1.2.1/uber-apk-signer-1.2.1.jar
mv uber-apk-signer-1.2.1.jar /opt/bttv/uber-apk-signer-1.2.1.jar
- name: Install Smali
run: |
wget https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.4.0.jar
mv baksmali-2.4.0.jar /opt/bttv/baksmali-2.4.0.jar
- name: Install Build Companion
run: |
wget https://github.com/bttv-android/build-companion/releases/download/v5.2.0/build-companion
shasum build-companion
chmod +x build-companion
mv build-companion /opt/bttv/build-companion
- name: Disable long-lived gradle daemon
run: |
mkdir -p ~/.gradle && echo "org.gradle.daemon=false" >> ~/.gradle/gradle.properties
- name: Set env variables
run: |
echo "ANDROID_SDK_HOME=/opt/android-sdk-linux" >> $GITHUB_ENV
echo "ANDROID_SDK_ROOT=/opt/android-sdk-linux" >> $GITHUB_ENV
echo "ANDROID_HOME=/opt/android-sdk-linux" >> $GITHUB_ENV
echo "ANDROID_SDK=/opt/android-sdk-linux" >> $GITHUB_ENV
echo "PATH=$PATH:/opt/bttv" >> $GITHUB_ENV
# build apk
- name: build apk
run: ./initworkspace
# print checksums so anybody can confirm legitimacy of their apk
- name: print checksums
run: cp ./disass/dist/twitch.apk bttv.apk && shasum *.apk
# send to other release job if needed
- uses: actions/upload-artifact@v2
if: ${{ github.event_name != 'pull_request' }}
with:
name: bttv-apk
path: bttv.apk
retention-days: 1
release:
needs: build
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get CHANGELOGA
id: changelog
run: |
echo "RELEASE_BODY<<EOF" > /tmp/bttv &&
head -n25 CHANGELOG.md >> /tmp/bttv &&
echo "EOF" >> /tmp/bttv &&
cat /tmp/bttv >> $GITHUB_OUTPUT
- uses: actions/download-artifact@v2
with:
name: bttv-apk
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body: ${{ steps.changelog.outputs.RELEASE_BODY }}
draft: true
prerelease: false
- id: version_tag
run: echo "version_tag=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
- name: upload Release Apk
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./bttv.apk
asset_name: bttv-${{ steps.version_tag.outputs.version_tag }}.apk
asset_content_type: application/vnd.android.package-archive