name: CI on: push: branches: - master tags: - v* pull_request: jobs: check_wrapper: name: Validate Gradle Wrapper runs-on: ubuntu-latest steps: - name: Clone repo uses: actions/checkout@v2 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 build: name: Build app needs: check_wrapper if: "!startsWith(github.event.head_commit.message, '[SKIP CI]')" runs-on: ubuntu-latest steps: - name: Cancel previous runs uses: styfle/cancel-workflow-action@0.5.0 with: access_token: ${{ github.token }} - name: Clone repo uses: actions/checkout@v2 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: 1.8 - name: Copy CI gradle.properties run: | mkdir -p ~/.gradle cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties - name: Build app uses: eskatos/gradle-command-action@v1 with: arguments: assembleStandardRelease wrapper-cache-enabled: true dependencies-cache-enabled: true configuration-cache-enabled: true # Sign APK and create release for tags - name: Get tag name if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi' id: get_tag_name run: | set -x echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Sign APK if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi' uses: r0adkll/sign-android-release@v1 with: releaseDirectory: app/build/outputs/apk/standard/release signingKeyBase64: ${{ secrets.SIGNING_KEY }} alias: ${{ secrets.ALIAS }} keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} keyPassword: ${{ secrets.KEY_PASSWORD }} - name: Create release if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi' id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.VERSION_TAG }} release_name: Tachiyomi ${{ env.VERSION_TAG }} draft: true prerelease: false - name: Upload APK to release if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ${{ env.SIGNED_RELEASE_FILE }} asset_name: tachiyomi-${{ env.VERSION_TAG }}.apk asset_content_type: application/vnd.android.package-archive