mirror of
https://github.com/gsantner/dandelion
synced 2024-11-24 13:22:08 +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 ###
|
||||||
.gradle
|
.gradle
|
||||||
build/
|
build/
|
||||||
|
dist/
|
||||||
gradle-app.setting
|
gradle-app.setting
|
||||||
|
|
||||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
# 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_TEST_BUILD", "false"
|
||||||
buildConfigField "boolean", "IS_GPLAY_BUILD", "false"
|
buildConfigField "boolean", "IS_GPLAY_BUILD", "false"
|
||||||
buildConfigField "String[]", "DETECTED_ANDROID_LOCALES", "${findUsedAndroidLocales()}"
|
buildConfigField "String[]", "DETECTED_ANDROID_LOCALES", "${findUsedAndroidLocales()}"
|
||||||
|
buildConfigField "String", "BUILD_DATE", "\"${getBuildDate()}\""
|
||||||
buildConfigField "String", "GITHASH", "\"${getGitHash()}\""
|
buildConfigField "String", "GITHASH", "\"${getGitHash()}\""
|
||||||
setProperty("archivesBaseName", applicationId + "-v" + versionCode + "-" + versionName)
|
setProperty("archivesBaseName", applicationId + "-v" + versionCode + "-" + versionName)
|
||||||
}
|
}
|
||||||
|
@ -89,8 +90,7 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
lintOptions {
|
lintOptions {
|
||||||
disable 'MissingTranslation'
|
disable 'MissingTranslation', 'InvalidPackage', 'ObsoleteLintCustomCheck', 'DefaultLocale', 'UnusedAttribute', 'VectorRaster', 'InflateParams', 'IconLocation', 'UnusedResources', 'TypographyEllipsis'
|
||||||
disable 'InvalidPackage'
|
|
||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,9 +118,10 @@ dependencies {
|
||||||
implementation 'commons-io:commons-io:2.6'
|
implementation 'commons-io:commons-io:2.6'
|
||||||
implementation "info.guardianproject.netcipher:netcipher:${version_library_netcipher}"
|
implementation "info.guardianproject.netcipher:netcipher:${version_library_netcipher}"
|
||||||
implementation "info.guardianproject.netcipher:netcipher-webkit:${version_library_netcipher}"
|
implementation "info.guardianproject.netcipher:netcipher-webkit:${version_library_netcipher}"
|
||||||
|
//noinspection AnnotationProcessorOnCompilePath
|
||||||
implementation "com.jakewharton:butterknife:${version_library_butterknife}"
|
implementation "com.jakewharton:butterknife:${version_library_butterknife}"
|
||||||
if (enable_plugin_kotlin) {
|
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
|
// 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