diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..6c8c7fcea --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,95 @@ +name: CI +on: + push: + branches: + - dev + 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 == 'inorichi/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 == 'inorichi/tachiyomi' + uses: jobobby04/sign-android-release@v1.0.2 + 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 == 'inorichi/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 == 'inorichi/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 diff --git a/.github/workflows/build_check.yml b/.github/workflows/build_check.yml deleted file mode 100644 index 5b87192a6..000000000 --- a/.github/workflows/build_check.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: CI -on: - push: - branches: - - dev - - master - 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: assembleStandardDebug - wrapper-cache-enabled: true - dependencies-cache-enabled: true - configuration-cache-enabled: true