mirror of
https://github.com/gsantner/dandelion
synced 2024-12-30 14:58:07 +01:00
Add Makefile; CI: Remove Circle/Travis, add GitHub Actions
This commit is contained in:
parent
6fbd399a4b
commit
ff62aa5a07
5 changed files with 129 additions and 41 deletions
69
.github/workflows/build-android-project.yml
vendored
Normal file
69
.github/workflows/build-android-project.yml
vendored
Normal file
|
@ -0,0 +1,69 @@
|
|||
name: "CI"
|
||||
|
||||
on: [push, pull_request_target]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: "!contains(github.event.head_commit.message, 'ci skip') && (!contains(github.event_name, 'pull_request') || (contains(github.event_name, 'pull_request') && github.event.pull_request.head.repo.full_name != github.repository))"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: "Checkout: Code"
|
||||
uses: actions/checkout@v2
|
||||
|
||||
|
||||
- name: "Checkout: Code (PR)"
|
||||
uses: actions/checkout@v2
|
||||
if: "contains(github.event_name, 'pull_request')"
|
||||
with:
|
||||
ref: ${{github.event.pull_request.head.ref}}
|
||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
|
||||
- name: "Setup: Java"
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
|
||||
- name: "Cache: Gradle"
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle
|
||||
.gradle
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('gradle/wrapper/gradle-wrapper.*') }}
|
||||
|
||||
- name: "Build: Project with make"
|
||||
run: make clean all
|
||||
|
||||
- name: "Build: List dist files"
|
||||
if: always()
|
||||
run: find dist -type f -maxdepth 2
|
||||
|
||||
- name: "Artifacts: All"
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v2.2.1
|
||||
with:
|
||||
name: "all"
|
||||
path: dist
|
||||
retention-days: 5
|
||||
|
||||
- name: "Artifacts: Android APK"
|
||||
uses: actions/upload-artifact@v2.2.1
|
||||
with:
|
||||
name: "android-apk"
|
||||
path: |
|
||||
dist/*.apk
|
||||
|
||||
- name: "Test: JUnit report"
|
||||
if: always()
|
||||
uses: mikepenz/action-junit-report@v1
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
report_paths: 'dist/tests/TEST-*.xml'
|
||||
check_name: "JUnit"
|
||||
|
||||
- name: "Test: Android Lint"
|
||||
if: always()
|
||||
uses: yutailang0119/action-android-lint@v1.0.2
|
||||
with:
|
||||
xml_path: 'dist/lint/lint-results-flavorDefaultDebug.xml'
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -36,6 +36,7 @@ tmp/
|
|||
### Gradle ###
|
||||
.gradle
|
||||
build/
|
||||
dist/
|
||||
gradle-app.setting
|
||||
|
||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
||||
|
|
55
Makefile
Normal file
55
Makefile
Normal file
|
@ -0,0 +1,55 @@
|
|||
# License of Makefile: Public Domain / CC0
|
||||
.PHONY: $(shell sed -n -e '/^$$/ { n ; /^[^ .\#][^ ]*:/ { s/:.*$$// ; p ; } ; }' $(MAKEFILE_LIST))
|
||||
.NOTPARALLEL: clean
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
env-%:
|
||||
@: $(if ${${*}},,$(error Environment variable $* not set))
|
||||
####################################################################################
|
||||
|
||||
DIST_DIR = dist
|
||||
MOVE = mv
|
||||
|
||||
all: $(DIST_DIR) lint test build
|
||||
|
||||
####################################################################################
|
||||
|
||||
$(DIST_DIR):
|
||||
mkdir -p ${DIST_DIR}
|
||||
|
||||
.NOTPARALLEL: gradle gradle-check-error
|
||||
gradle: env-ANDROID_SDK_ROOT
|
||||
mkdir -p $(DIST_DIR)/log/
|
||||
chmod +x gradlew
|
||||
./gradlew --no-daemon --parallel --stacktrace $A 2>&1 | tee "$(DIST_DIR)/log/gradle.log"
|
||||
@echo "-----------------------------------------------------------------------------------"
|
||||
|
||||
gradle-check-error:
|
||||
mv "$(DIST_DIR)/log/gradle.log" "$(DIST_DIR)/log/gradle$A.log"
|
||||
cat "$(DIST_DIR)/log/gradle$A.log" | grep "BUILD " | tail -n1 | grep -q "BUILD SUCCESSFUL in"
|
||||
|
||||
build:
|
||||
rm -f $(DIST_DIR)/*.apk
|
||||
$(MAKE) A="clean assembleFlavorAtest -x lint" gradle
|
||||
find app -type f -iname '*.apk' | grep -v 'unsigned.apk' | xargs cp -R -t $(DIST_DIR)/
|
||||
$(MAKE) A="-build" gradle-check-error
|
||||
|
||||
lint:
|
||||
rm -Rf $(DIST_DIR)/lint
|
||||
mkdir -p $(DIST_DIR)/lint/
|
||||
$(MAKE) A="lintFlavorDefaultDebug" gradle
|
||||
find app -type f -iname 'lint-results-*' | xargs cp -R -t $(DIST_DIR)/lint
|
||||
$(MAKE) A="-lint" gradle-check-error
|
||||
|
||||
test:
|
||||
rm -Rf $(DIST_DIR)/tests
|
||||
$(MAKE) A="testFlavorDefaultDebugUnitTest -x lint" gradle
|
||||
mkdir -p app/build/test-results/testFlavorDefaultDebugUnitTest && echo 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHRlc3RzdWl0ZSBuYW1lPSJkdW1teSIgdGVzdHM9IjEiIHNraXBwZWQ9IjAiIGZhaWx1cmVzPSIwIiBlcnJvcnM9IjAiIHRpbWVzdGFtcD0iMjAyMC0xMi0wOFQwMDowMDowMCIgaG9zdG5hbWU9ImxvY2FsaG9zdCIgdGltZT0iMC4wMSI+CiAgPHByb3BlcnRpZXMvPgogIDx0ZXN0Y2FzZSBuYW1lPSJkdW1teSIgY2xhc3NuYW1lPSJkdW1teSIgdGltZT0iMC4wMSIvPgogIDxzeXN0ZW0tb3V0PjwhW0NEQVRBW11dPjwvc3lzdGVtLW91dD4KICA8c3lzdGVtLWVycj48IVtDREFUQVtdXT48L3N5c3RlbS1lcnI+CjwvdGVzdHN1aXRlPgo=' | base64 -d > 'app/build/test-results/testFlavorDefaultDebugUnitTest/TEST-dummy.xml'
|
||||
find app -type d -iname 'testFlavorDefaultDebugUnitTest' | xargs cp -R -t $(DIST_DIR)/
|
||||
mv ${DIST_DIR}/testFlavorDefaultDebugUnitTest $(DIST_DIR)/tests
|
||||
$(MAKE) A="-test" gradle-check-error
|
||||
|
||||
clean:
|
||||
$(MAKE) A="clean" gradle
|
||||
rm -Rf $(DIST_DIR) app/build app/flavor*
|
||||
$(MAKE) $(DIST_DIR)
|
|
@ -21,6 +21,7 @@ android {
|
|||
buildConfigField "boolean", "IS_TEST_BUILD", "false"
|
||||
buildConfigField "boolean", "IS_GPLAY_BUILD", "false"
|
||||
buildConfigField "String[]", "DETECTED_ANDROID_LOCALES", "${findUsedAndroidLocales()}"
|
||||
buildConfigField "String", "BUILD_DATE", "\"${getBuildDate()}\""
|
||||
buildConfigField "String", "GITHASH", "\"${getGitHash()}\""
|
||||
setProperty("archivesBaseName", applicationId + "-v" + versionCode + "-" + versionName)
|
||||
}
|
||||
|
@ -89,8 +90,7 @@ android {
|
|||
}
|
||||
|
||||
lintOptions {
|
||||
disable 'MissingTranslation'
|
||||
disable 'InvalidPackage'
|
||||
disable 'MissingTranslation', 'InvalidPackage', 'ObsoleteLintCustomCheck', 'DefaultLocale', 'UnusedAttribute', 'VectorRaster', 'InflateParams', 'IconLocation', 'UnusedResources', 'TypographyEllipsis'
|
||||
abortOnError false
|
||||
}
|
||||
}
|
||||
|
@ -118,9 +118,10 @@ dependencies {
|
|||
implementation 'commons-io:commons-io:2.6'
|
||||
implementation "info.guardianproject.netcipher:netcipher:${version_library_netcipher}"
|
||||
implementation "info.guardianproject.netcipher:netcipher-webkit:${version_library_netcipher}"
|
||||
//noinspection AnnotationProcessorOnCompilePath
|
||||
implementation "com.jakewharton:butterknife:${version_library_butterknife}"
|
||||
if (enable_plugin_kotlin) {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$version_plugin_kotlin"
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${version_plugin_kotlin}"
|
||||
}
|
||||
|
||||
// Processors
|
||||
|
|
38
circle.yml
38
circle.yml
|
@ -1,38 +0,0 @@
|
|||
###################
|
||||
general:
|
||||
artifacts:
|
||||
- /home/ubuntu/dandelion/app/build/outputs/apk/
|
||||
branches:
|
||||
ignore:
|
||||
- gh-pages
|
||||
- l10n_master
|
||||
- crowdin
|
||||
|
||||
###################
|
||||
machine:
|
||||
java:
|
||||
version: oraclejdk8
|
||||
environment:
|
||||
ANDROID_HOME: /usr/local/android-sdk-linux
|
||||
|
||||
###################
|
||||
dependencies:
|
||||
pre:
|
||||
# Android SDK Platform
|
||||
- if [ ! -d "/usr/local/android-sdk-linux/platforms/android-26" ]; then echo y | android update sdk --no-ui --all --filter "android-26"; fi
|
||||
# Android SDK Build-tools
|
||||
- if [ ! -d "/usr/local/android-sdk-linux/build-tools/26.0.1" ]; then echo y | android update sdk --no-ui --all --filter "build-tools-26.0.1"; fi
|
||||
# Android Support Repository - deprecated
|
||||
#- if [ ! -d "/usr/local/android-sdk-linux/extras/android/m2repository/com/android/support/design/26.2.0" ]; then echo y | android update sdk --no-ui --all --filter "extra-android-m2repository"; fi
|
||||
|
||||
|
||||
cache_directories:
|
||||
- /usr/local/android-sdk-linux/platforms/android-26
|
||||
- /usr/local/android-sdk-linux/build-tools/26.0.1
|
||||
#- /usr/local/android-sdk-linux/extras/android/m2repository
|
||||
|
||||
###################
|
||||
test:
|
||||
override:
|
||||
- (./gradlew assembleFlavorDefault):
|
||||
timeout: 360
|
Loading…
Reference in a new issue