Fix crash in forced transcoding when building playlists (#773) #868
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: Development build | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - develop/* | |
| defaults: | |
| run: | |
| shell: bash | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| BRANCH_NAME: ${{ github.ref_name }} | |
| GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4g -XX:MaxMetaspaceSize=512m'" | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout the code | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 # Need the tags to build | |
| submodules: true # Need the submodules to build | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Native build | |
| uses: ./.github/actions/native-build | |
| with: | |
| cache: true | |
| - name: Get version names | |
| run: | | |
| LATEST_TAG=$(git describe --tags --match 'v*' --abbrev=0) | |
| VERSION_NAME=$(git describe --tags --match 'v*' --long) | |
| if [[ $BRANCH_NAME == "main" ]]; then | |
| TAG_NAME="develop" | |
| else | |
| TAG_NAME="${BRANCH_NAME/\//-}" | |
| fi | |
| echo "LATEST_TAG=$LATEST_TAG" >> "$GITHUB_ENV" | |
| echo "VERSION_NAME=$VERSION_NAME" >> "$GITHUB_ENV" | |
| echo "TAG_NAME=$TAG_NAME" >> "$GITHUB_ENV" | |
| - name: Build release app | |
| id: build | |
| env: | |
| KEY_ALIAS: "${{ secrets.KEY_ALIAS }}" | |
| KEY_PASSWORD: "${{ secrets.KEY_PASSWORD }}" | |
| KEY_STORE_PASSWORD: "${{ secrets.KEY_STORE_PASSWORD }}" | |
| SIGNING_KEY: "${{ secrets.SIGNING_KEY }}" | |
| run: | | |
| ./gradlew clean assembleRelease assembleDebug --no-daemon | |
| - name: Verify signatures | |
| run: | | |
| echo "Verify APK signatures" | |
| find app/build/outputs/apk -name '*.apk' | |
| find app/build/outputs/apk -name '*.apk' -print0 | xargs -t -0 -n1 ${{env.ANDROID_SDK_ROOT}}/build-tools/${{ env.BUILD_TOOLS_VERSION }}/apksigner verify --verbose --print-certs | |
| - name: Copy APK to shorter names | |
| id: apks | |
| run: | | |
| find app/build/outputs/apk -name '*.apk' -print0 | | |
| while IFS= read -r -d '' line; do | |
| # StashAppAndroidTv-release-0.2.9-62-g5c12e03-16-arm64-v8a.apk => StashAppAndroidTv-arm64-v8a.apk | |
| short_name="$(echo $line | sed -E 's/-[0-9]+\.[0-9]+\.[0-9]+-[0-9]+-g[a-fA-F0-9]+-[0-9]+//')" | |
| echo "$line => $short_name" | |
| cp "$line" "$short_name" | |
| done | |
| apks=$(find app/build/outputs/apk -name '*.apk' -print0 | tr '\0' ',' | sed 's/,$//') | |
| echo "apks=$apks" >> "$GITHUB_OUTPUT" | |
| - name: Checksums | |
| run: | | |
| echo "SHA256 checksums:" | |
| find app/build/outputs/apk -name '*.apk' -print0 | xargs -0 sha256sum | |
| - name: Delete ${{ env.TAG_NAME }} tag and release | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| gh release delete "${{ env.TAG_NAME }}" --cleanup-tag -y || true | |
| echo '### `${{ env.BRANCH_NAME }}` development build | |
| This pre-release tracks the development build of StashAppAndroidTv from the `${{ env.BRANCH_NAME }}` unstable branch. | |
| See https://github.com/damontecres/StashAppAndroidTv/releases/latest for the latest stable release. | |
| If you want to update to this version in-app, change Settings->Advanced->Update URL to https://api.github.com/repos/damontecres/StashAppAndroidTv/releases/tags/${{ env.TAG_NAME }} (replace `latest` with `tags/${{ env.TAG_NAME }}`). | |
| [See changes since `${{ env.LATEST_TAG }}`](https://github.com/damontecres/StashAppAndroidTv/compare/${{ env.LATEST_TAG }}...${{ env.TAG_NAME }})' > ci_release_note.txt | |
| gh release create "${{ env.TAG_NAME }}" \ | |
| --latest=false --prerelease --title "${{ env.VERSION_NAME }}" --target "${{ env.BRANCH_NAME }}" -F ci_release_note.txt \ | |
| "app/build/outputs/apk/**/*.apk" |