Add github-specific setup (#1)
* Add github-specific setup Change-Id: Iad8edf3c16182807eda6893c696244d9147f7cab * Update Build.yaml Replaces cC for cAT * Filters out benchmark tests * Trying to increase storage with disk.dataPartition.size * Increasing size a bit more for API 23 * Remove API 23 * Reverting, using correct param name * Increase again to 1500M * heap=512M java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw an exception; no stack trace available * replace 29 for 31 looks like 29 has memory issues https://github.com/google/android-fhir/issues/73 * API 30 * Arch x86_64 as there's no API 30 x86 Co-authored-by: Jose Alcérreca <JoseAlcerreca@users.noreply.github.com>pull/3/head
parent
c465a1856c
commit
ae0cc710ef
@ -0,0 +1,46 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: File a bug report
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels: ["bug", "triage me"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report!
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue for this?
|
||||||
|
description: Please search to see if an issue already exists for the bug you encountered.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues
|
||||||
|
required: true
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there a StackOverflow question about this issue?
|
||||||
|
description: Please search [StackOverflow](https://stackoverflow.com/questions/tagged/android-jetpack) if an issue with an answer already exists for the bug you encountered.
|
||||||
|
options:
|
||||||
|
- label: I have searched StackOverflow
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: what-happened
|
||||||
|
attributes:
|
||||||
|
label: What happened?
|
||||||
|
description: Also tell us, what did you expect to happen?
|
||||||
|
placeholder: Tell us what you see!
|
||||||
|
value: "A bug happened!"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Relevant logcat output
|
||||||
|
description: Please copy and paste any relevant logcat output. This will be automatically formatted into code, so no need for backticks.
|
||||||
|
render: shell
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](CODE_OF_CONDUCT.md)
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
@ -0,0 +1,46 @@
|
|||||||
|
name: Feature request
|
||||||
|
description: File a feature request
|
||||||
|
title: "[FR]: "
|
||||||
|
labels: ["enhancement", "triage me"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report!
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue for this?
|
||||||
|
description: Please search to see if an issue already exists for this feature request.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: describe-problem
|
||||||
|
attributes:
|
||||||
|
label: Describe the problem
|
||||||
|
description: Is your feature request related to a problem? Please describe.
|
||||||
|
placeholder: I'm always frustrated when...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: solution
|
||||||
|
attributes:
|
||||||
|
label: Describe the solution
|
||||||
|
description: Please describe the solution you'd like. A clear and concise description of what you want to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context or screenshots about the feature request here.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](CODE_OF_CONDUCT.md)
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
name: Pull request
|
||||||
|
about: Create a pull request
|
||||||
|
label: 'triage me'
|
||||||
|
---
|
||||||
|
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
|
||||||
|
- [ ] Make sure to open a GitHub issue as a bug/feature request before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
|
||||||
|
- [ ] Ensure the tests and linter pass
|
||||||
|
- [ ] Appropriate docs were updated (if necessary)
|
||||||
|
|
||||||
|
Fixes #<issue_number_goes_here> 🦕
|
@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2020 The Android Open Source Project
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
org.gradle.daemon=false
|
||||||
|
org.gradle.parallel=true
|
||||||
|
org.gradle.jvmargs=-Xmx5120m
|
||||||
|
org.gradle.workers.max=2
|
||||||
|
|
||||||
|
kotlin.incremental=false
|
||||||
|
kotlin.compiler.execution.strategy=in-process
|
||||||
|
|
||||||
|
# Controls KotlinOptions.allWarningsAsErrors. This is used in CI and can be set in local properties.
|
||||||
|
warningsAsErrors=true
|
@ -0,0 +1,114 @@
|
|||||||
|
name: Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
concurrency:
|
||||||
|
group: build-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 60
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Copy CI gradle.properties
|
||||||
|
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
|
||||||
|
|
||||||
|
- name: Set up JDK 11
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Generate cache key
|
||||||
|
run: ./scripts/checksum.sh checksum.txt
|
||||||
|
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches/modules-*
|
||||||
|
~/.gradle/caches/jars-*
|
||||||
|
~/.gradle/caches/build-cache-*
|
||||||
|
key: gradle-${{ hashFiles('checksum.txt') }}
|
||||||
|
|
||||||
|
- name: Check spotless
|
||||||
|
run: ./gradlew spotlessCheck --stacktrace
|
||||||
|
|
||||||
|
- name: Check lint
|
||||||
|
run: ./gradlew lintDebug --stacktrace
|
||||||
|
|
||||||
|
- name: Build debug
|
||||||
|
run: ./gradlew assembleDebug --stacktrace
|
||||||
|
|
||||||
|
- name: Build release
|
||||||
|
run: ./gradlew assembleRelease --stacktrace
|
||||||
|
|
||||||
|
- name: Run local tests
|
||||||
|
run: ./gradlew testDebug --stacktrace
|
||||||
|
|
||||||
|
- name: Upload build outputs (APKs)
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: build-outputs
|
||||||
|
path: app/build/outputs
|
||||||
|
|
||||||
|
- name: Upload build reports
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: build-reports
|
||||||
|
path: app/build/reports
|
||||||
|
|
||||||
|
androidTest:
|
||||||
|
needs: build
|
||||||
|
runs-on: macOS-latest # enables hardware acceleration in the virtual machine
|
||||||
|
timeout-minutes: 30
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
api-level: [23, 26, 30]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Copy CI gradle.properties
|
||||||
|
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
|
||||||
|
|
||||||
|
- name: Set up JDK 11
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Generate cache key
|
||||||
|
run: ./scripts/checksum.sh $SAMPLE_PATH checksum.txt
|
||||||
|
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches/modules-*
|
||||||
|
~/.gradle/caches/jars-*
|
||||||
|
~/.gradle/caches/build-cache-*
|
||||||
|
key: gradle-${{ hashFiles('checksum.txt') }}
|
||||||
|
|
||||||
|
- name: Run instrumentation tests
|
||||||
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
arch: x86_64
|
||||||
|
disable-animations: true
|
||||||
|
disk-size: 1500M
|
||||||
|
heap-size: 512M
|
||||||
|
script: ./gradlew connectedAndroidTest -x :benchmark:connectedBenchmarkAndroidTest
|
||||||
|
|
||||||
|
- name: Upload test reports
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: test-reports
|
||||||
|
path: app/build/reports/androidTests
|
@ -0,0 +1,107 @@
|
|||||||
|
name: GitHub Release with APKs
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 45
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Copy CI gradle.properties
|
||||||
|
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
|
||||||
|
|
||||||
|
- name: Set up JDK 11
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Build all projects
|
||||||
|
run: ./scripts/gradlew_recursive.sh assembleDebug
|
||||||
|
|
||||||
|
- name: Create Release
|
||||||
|
id: create_release
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: ${{ github.ref }}
|
||||||
|
release_name: ${{ github.ref }}
|
||||||
|
draft: true
|
||||||
|
prerelease: false
|
||||||
|
|
||||||
|
- name: Upload Crane
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: Crane/app/build/outputs/apk/debug/app-debug.apk
|
||||||
|
asset_name: crane-debug.apk
|
||||||
|
asset_content_type: application/vnd.android.package-archive
|
||||||
|
|
||||||
|
- name: Upload Owl
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: Owl/app/build/outputs/apk/debug/app-debug.apk
|
||||||
|
asset_name: owl-debug.apk
|
||||||
|
asset_content_type: application/vnd.android.package-archive
|
||||||
|
|
||||||
|
- name: Upload Jetcaster
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: Jetcaster/app/build/outputs/apk/debug/app-debug.apk
|
||||||
|
asset_name: jetcaster-debug.apk
|
||||||
|
asset_content_type: application/vnd.android.package-archive
|
||||||
|
|
||||||
|
- name: Upload Jetchat
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: Jetchat/app/build/outputs/apk/debug/app-debug.apk
|
||||||
|
asset_name: jetchat-debug.apk
|
||||||
|
asset_content_type: application/vnd.android.package-archive
|
||||||
|
|
||||||
|
- name: Upload Jetnews
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: JetNews/app/build/outputs/apk/debug/app-debug.apk
|
||||||
|
asset_name: jetnews-debug.apk
|
||||||
|
asset_content_type: application/vnd.android.package-archive
|
||||||
|
|
||||||
|
- name: Upload Jetsnack
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: Jetsnack/app/build/outputs/apk/debug/app-debug.apk
|
||||||
|
asset_name: jetsnack-debug.apk
|
||||||
|
asset_content_type: application/vnd.android.package-archive
|
||||||
|
|
||||||
|
- name: Upload Jetsurvey
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: Jetsurvey/app/build/outputs/apk/debug/app-debug.apk
|
||||||
|
asset_name: jetsurvey-debug.apk
|
||||||
|
asset_content_type: application/vnd.android.package-archive
|
@ -0,0 +1,39 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2022 Google, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
RESULT_FILE=$1
|
||||||
|
|
||||||
|
if [ -f $RESULT_FILE ]; then
|
||||||
|
rm $RESULT_FILE
|
||||||
|
fi
|
||||||
|
touch $RESULT_FILE
|
||||||
|
|
||||||
|
checksum_file() {
|
||||||
|
echo $(openssl md5 $1 | awk '{print $2}')
|
||||||
|
}
|
||||||
|
|
||||||
|
FILES=()
|
||||||
|
while read -r -d ''; do
|
||||||
|
FILES+=("$REPLY")
|
||||||
|
done < <(find . -type f \( -name "build.gradle*" -o -name "gradle-wrapper.properties" -o -name "robolectric.properties" \) -print0)
|
||||||
|
|
||||||
|
# Loop through files and append MD5 to result file
|
||||||
|
for FILE in ${FILES[@]}; do
|
||||||
|
echo $(checksum_file $FILE) >> $RESULT_FILE
|
||||||
|
done
|
||||||
|
# Now sort the file so that it is idempotent
|
||||||
|
sort $RESULT_FILE -o $RESULT_FILE
|
Loading…
Reference in new issue