From 99586970a1d80e45eee3f99324d1d8f250747f45 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 3 Oct 2021 18:09:24 +0530 Subject: [PATCH] Cleanup and improve CI checks (#1511) --- .github/check-changed-files.js | 20 ++++++ .github/workflows/pull_request.yml | 70 ++++++------------- .../autofill/oreo/ui/AutofillSmsActivity.kt | 4 +- 3 files changed, 45 insertions(+), 49 deletions(-) create mode 100644 .github/check-changed-files.js diff --git a/.github/check-changed-files.js b/.github/check-changed-files.js new file mode 100644 index 00000000..10f86348 --- /dev/null +++ b/.github/check-changed-files.js @@ -0,0 +1,20 @@ +module.exports = async ({github, context}) => { + const result = await github.pulls.listFiles({ + owner: context.payload.repository.owner.login, + repo: context.payload.repository.name, + pull_number: context.payload.number, + per_page: 100, + }); + + const files = result.data.filter((file) => { + const filename = file.filename + // Markdown files are not tested + return !filename.endsWith("md") && + // Exclude YAML files as long as they are not the PR workflow itself + !(filename.endsWith("yml") && !filename.endsWith("pull_request.yml")) && !filename.endsWith("yaml") && + // Fastlane metadata does not need tests + !filename.startsWith("fastlane/"); + }); + console.log(`Remaining changed files: ${files.map(file => file.filename)}`) + return files.length != 0; +} diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 045a9124..ead79571 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -10,45 +10,35 @@ jobs: unit-tests: runs-on: ubuntu-latest steps: + - name: Checkout repository + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + with: + fetch-depth: 0 + - name: Check if relevant files have changed uses: actions/github-script@a3e7071a34d7e1f219a8a4de9a5e0a34d1ee1293 id: service-changed with: result-encoding: string script: | - const result = await github.pulls.listFiles({ - owner: context.payload.repository.owner.login, - repo: context.payload.repository.name, - pull_number: context.payload.number, - per_page: 100 - }) - const files = result.data.filter(file => - // We wanna run this if the PR workflow is modified - (file.filename.endsWith(".yml") && !file.filename.endsWith("pull_request.yml")) || - // Changes in Markdown files don't need tests - file.filename.endsWith(".md") || - // Changes to fastlane metadata aren't covered by tests - file.filename.startsWith("fastlane/") - ) - // If filtered file count and source file count is equal, it means all files - // in this PR are skip-worthy. - return files.length != result.data.length + const script = require('.github/check-changed-files.js') + return await script({github, context}) - uses: actions/setup-java@d202f5dbf7256730fb690ec59f6381650114feb2 if: ${{ steps.service-changed.outputs.result == 'true' }} with: java-version: '11' - - name: Checkout repository - if: ${{ steps.service-changed.outputs.result == 'true' }} - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - with: - fetch-depth: 0 - - name: Copy CI gradle.properties if: ${{ steps.service-changed.outputs.result == 'true' }} run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties + - name: Build debug APKs + if: ${{ steps.service-changed.outputs.result == 'true' }} + uses: burrunan/gradle-cache-action@03c71a8ba93d670980695505f48f49daf43704a6 + with: + arguments: assembleFreeDebug assembleNonFreeDebug + - name: Run unit tests if: ${{ steps.service-changed.outputs.result == 'true' }} uses: burrunan/gradle-cache-action@03c71a8ba93d670980695505f48f49daf43704a6 @@ -62,32 +52,22 @@ jobs: name: Test report path: app/build/reports - run-screenshot-tests: - runs-on: macOS-latest + instrumentation-tests: + runs-on: macos-11 steps: + - name: Checkout repository + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + with: + fetch-depth: 0 + - name: Check if relevant files have changed uses: actions/github-script@a3e7071a34d7e1f219a8a4de9a5e0a34d1ee1293 id: service-changed with: result-encoding: string script: | - const result = await github.pulls.listFiles({ - owner: context.payload.repository.owner.login, - repo: context.payload.repository.name, - pull_number: context.payload.number, - per_page: 100 - }) - const files = result.data.filter(file => - // We wanna run this if the PR workflow is modified - (file.filename.endsWith(".yml") && !file.filename.endsWith("pull_request.yml")) || - // Changes in Markdown files don't need tests - file.filename.endsWith(".md") || - // Changes to fastlane metadata aren't covered by tests - file.filename.startsWith("fastlane/") - ) - // If filtered file count and source file count is equal, it means all files - // in this PR are skip-worthy. - return files.length != result.data.length + const script = require('.github/check-changed-files.js') + return await script({github, context}) - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 if: ${{ steps.service-changed.outputs.result == 'true' }} @@ -103,12 +83,6 @@ jobs: with: java-version: '11' - - name: Checkout repository - if: ${{ steps.service-changed.outputs.result == 'true' }} - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - with: - fetch-depth: 0 - - name: Copy CI gradle.properties if: ${{ steps.service-changed.outputs.result == 'true' }} run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties diff --git a/app/src/nonFree/java/dev/msfjarvis/aps/autofill/oreo/ui/AutofillSmsActivity.kt b/app/src/nonFree/java/dev/msfjarvis/aps/autofill/oreo/ui/AutofillSmsActivity.kt index 094c6c33..abe855cd 100644 --- a/app/src/nonFree/java/dev/msfjarvis/aps/autofill/oreo/ui/AutofillSmsActivity.kt +++ b/app/src/nonFree/java/dev/msfjarvis/aps/autofill/oreo/ui/AutofillSmsActivity.kt @@ -37,7 +37,9 @@ import kotlin.coroutines.suspendCoroutine import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import logcat.LogPriority.ERROR import logcat.LogPriority.WARN +import logcat.asLog import logcat.logcat suspend fun Task.suspendableAwait() = @@ -134,7 +136,7 @@ class AutofillSmsActivity : AppCompatActivity() { if (e is ResolvableApiException) { e.startResolutionForResult(this@AutofillSmsActivity, 1) } else { - e(e) + logcat(ERROR) { e.asLog() } withContext(Dispatchers.Main) { finish() } } }