From 52d555a639b0ab68583d6f89b8fe893ad5103ece Mon Sep 17 00:00:00 2001 From: heinrichreimer Date: Wed, 28 Aug 2019 13:53:37 +0200 Subject: [PATCH 1/7] Fix line endings --- ci/deploy-github-releases | 14 +++++++------- ci/deploy-google-play | 14 +++++++------- ci/local.properties | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/ci/deploy-github-releases b/ci/deploy-github-releases index e2b20fc..89c60c7 100755 --- a/ci/deploy-github-releases +++ b/ci/deploy-github-releases @@ -1,7 +1,7 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -echo "Create new GitHub draft release, including a changelog and app bundles." -./gradlew --daemon --console=plain githubRelease +#!/usr/bin/env bash + +# Fail fast when a command returns non-zero exit code. +set -e + +echo "Create new GitHub draft release, including a changelog and app bundles." +./gradlew --daemon --console=plain githubRelease diff --git a/ci/deploy-google-play b/ci/deploy-google-play index 186db31..29787aa 100755 --- a/ci/deploy-google-play +++ b/ci/deploy-google-play @@ -1,7 +1,7 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -echo "Create new draft release on Google Play." -./gradlew --daemon --console=plain publishRelease +#!/usr/bin/env bash + +# Fail fast when a command returns non-zero exit code. +set -e + +echo "Create new draft release on Google Play." +./gradlew --daemon --console=plain publishRelease diff --git a/ci/local.properties b/ci/local.properties index ceddbcb..edb8b80 100644 --- a/ci/local.properties +++ b/ci/local.properties @@ -1,2 +1,2 @@ -# F-Droid server path -fdroid.dir=fdroid/server +# F-Droid server path +fdroid.dir=fdroid/server From 903eb811e9a6c113179dda0b835d3f81fe0de7d1 Mon Sep 17 00:00:00 2001 From: heinrichreimer Date: Tue, 17 Dec 2019 02:46:12 +0100 Subject: [PATCH 2/7] Fix .codecov.yml --- .codecov.yml | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/.codecov.yml b/.codecov.yml index a5e5cf1..de62a30 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -1,7 +1,5 @@ codecov: - branch: master - notify: - require_ci_to_pass: yes + require_ci_to_pass: true coverage: precision: 2 @@ -9,19 +7,19 @@ coverage: range: "70...100" status: - project: yes - patch: yes - changes: no + project: true + patch: true + changes: false parsers: gcov: branch_detection: - conditional: yes - loop: yes - method: no - macro: no + conditional: true + loop: true + method: false + macro: false comment: - layout: "header, diff" + layout: diff behavior: default - require_changes: no + require_changes: false From 9a5f1823ea7916ace7afacbd9f78a4d76e84ad4f Mon Sep 17 00:00:00 2001 From: heinrichreimer Date: Tue, 17 Dec 2019 02:46:48 +0100 Subject: [PATCH 3/7] Migrate CI to GitHub actions --- .github/workflows/ci.yml | 41 +++++++++++++++++ .github/workflows/deploy.yml | 33 ++++++++++++++ .travis.yml | 85 ----------------------------------- ci/android-assemble | 7 --- ci/android-install-emulator | 29 ------------ ci/android-install-sdk | 21 --------- ci/android-integration-tests | 14 ------ ci/android-launch-emulator | 37 --------------- ci/android-lint | 7 --- ci/android-setup-sdk | 31 ------------- ci/android-silent-sdkmanager | 8 ---- ci/android-test-coverage | 12 ----- ci/android-unit-tests | 7 --- ci/android-update-sdk | 9 ---- ci/android-wait-for-emulator | 53 ---------------------- ci/decrypt-secrets | 13 ------ ci/deploy-github-releases | 7 --- ci/deploy-google-play | 7 --- ci/encrypt-secrets | 18 -------- secret/.gitignore | 2 +- secret/secrets.tar.enc | Bin 20496 -> 0 bytes secret/secrets.tar.gpg | Bin 0 -> 6565 bytes 22 files changed, 75 insertions(+), 366 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/deploy.yml delete mode 100644 .travis.yml delete mode 100755 ci/android-assemble delete mode 100755 ci/android-install-emulator delete mode 100755 ci/android-install-sdk delete mode 100755 ci/android-integration-tests delete mode 100755 ci/android-launch-emulator delete mode 100755 ci/android-lint delete mode 100755 ci/android-setup-sdk delete mode 100755 ci/android-silent-sdkmanager delete mode 100755 ci/android-test-coverage delete mode 100755 ci/android-unit-tests delete mode 100755 ci/android-update-sdk delete mode 100755 ci/android-wait-for-emulator delete mode 100755 ci/decrypt-secrets delete mode 100755 ci/deploy-github-releases delete mode 100755 ci/deploy-google-play delete mode 100755 ci/encrypt-secrets delete mode 100644 secret/secrets.tar.enc create mode 100644 secret/secrets.tar.gpg diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3324e61 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: CI +on: push +jobs: + build: + runs-on: macOS-10.14 + steps: + - name: "๐Ÿ“ฅ Check-out" + uses: actions/checkout@v1 + - name: "๐Ÿงฐ Install JDK" + uses: actions/setup-java@v1 + with: + java-version: 1.8 + java-package: jdk + - name: "๐Ÿงฐ Install Android SDK" + uses: malinskiy/action-android/install-sdk@release/0.0.5 + with: + acceptLicense: yes + - name: "๐Ÿ“ Copy local CI properties" + run: cp ci/local.properties ./ + - name: "๐Ÿ— Build" + run: ./gradlew assembleDebug + - name: "๐Ÿงช Android LINT" + run: ./gradlew lint + - name: "๐Ÿงช Code coverage" + run: ./gradlew jacocoTestReport + - name: "๐Ÿงช Unit test" + run: ./gradlew test + - name: "๐Ÿงช Integration test" + uses: malinskiy/action-android/emulator-run-cmd@release/0.0.5 + with: + cmd: ./gradlew connectedAndroidTest + api: 25 + tag: google_apis + abi: x86 + - name: "๐Ÿ“ค Upload code coverage" + uses: codecov/codecov-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + yml: .codecov.yml #optional + fail_ci_if_error: true #optional (default = false) + run: bash <(curl -s https://codecov.io/bash) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..c633d1f --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,33 @@ +name: Deploy +on: + push: + branches: + - master +jobs: + deploy: + runs-on: macOS-10.14 + steps: + - name: "๐Ÿ“ฅ Check-out" + uses: actions/checkout@v1 + - name: "๐Ÿงฐ Install JDK" + uses: actions/setup-java@v1 + with: + java-version: 1.8 + java-package: jdk + - name: "๐Ÿงฐ Install Android SDK" + uses: malinskiy/action-android/install-sdk@release/0.0.5 + with: + acceptLicense: yes + - name: "๐Ÿ•ถ Decrypt secret files" + run: | + cd secrets + gpg --quiet --batch --yes --decrypt --passphrase="${{ secrets.FILES_PASSPHRASE }}" --output secrets.tar secrets.tar.gpg + tar -xf secrets.tar + - name: "๐Ÿ“ Copy local CI properties" + run: cp ci/local.properties ./ + - name: "๐Ÿ— Build" + run: ./gradlew assembleDebug + - name: "๐Ÿš€ GitHub release" + run: ./gradlew githubRelease + - name: "๐Ÿš€ Google Play publish" + run: ./gradlew publishRelease diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 241cb35..0000000 --- a/.travis.yml +++ /dev/null @@ -1,85 +0,0 @@ -language: java - -jdk: openjdk8 - -# Execute build in container-based environment. -sudo: false - -branches: - except: - - gh-pages - -env: - global: - - ANDROID_HOME=$HOME/android-sdk - - ANDROID_BUILD_TOOLS=28.0.3 - - ANDROID_SDK=28 - # Add Android SDK tools to path. - - PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator - -before_install: -# Copy fake local.properties. -- cp ci/local.properties ./ -# Decrypt secret files. -- ci/decrypt-secrets - -# Install Android SDK before each build (if not already cached). -install: ci/android-install-sdk - -stages: -- Install -- Build -- Lint -- Test -- Test Coverage - -jobs: - include: - - stage: Build - name: Assemble - script: ci/android-assemble - - stage: Test - name: Lint - script: ci/android-lint - - name: Unit test - script: ci/android-unit-tests - # - name: Integration test - # script: ci/android-integration-tests - # env: EMULATOR_ANDROID_SDK=25 EMULATOR_ABI=arm64-v8a - # - name: Integration test - # script: ci/android-integration-tests - # env: EMULATOR_ANDROID_SDK=21 EMULATOR_ABI=armeabi-v7a - - stage: Coverage - name: Test coverage - script: ci/android-test-coverage - - stage: Deploy - name: Google Play publish - script: ci/deploy-google-play - if: branch = master AND type != pull_request - - name: GitHub release - script: ci/deploy-github-releases - if: branch = master AND type != pull_request - allow_failures: - - name: Integration test - - name: Google Play publish - - name: GitHub release -matrix: - fast_finish: true - -# Use Travis CI's cache management -before_cache: -- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock -- rm -fr $HOME/.gradle/caches/*/plugin-resolution/ -cache: - directories: - # Android SDK - - "$ANDROID_HOME" - # Gradle dependencies - - "$HOME/.gradle/caches/" - - "$HOME/.gradle/wrapper/" - # Android build cache (see http://tools.android.com/tech-docs/build-cache) - - "$HOME/.android/build-cache" - # Android AVDs -# - $ANDROID_AVD_HOME -# - $ANDROID_SDK_HOME\avd -# - $HOME\.android\avd diff --git a/ci/android-assemble b/ci/android-assemble deleted file mode 100755 index d5ddfe9..0000000 --- a/ci/android-assemble +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -echo "Assembling project with Gradle." -./gradlew --daemon --console=plain assemble diff --git a/ci/android-install-emulator b/ci/android-install-emulator deleted file mode 100755 index de5a880..0000000 --- a/ci/android-install-emulator +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -# Copy ADB key. -mkdir -p "~/.android" -cp "$CURRENT_DIR/adbkey.pub" "~/.android/adbkey.pub" - -# Download emulator. -echo "Installing Android emulator runner." -${CURRENT_DIR}/android-silent-sdkmanager "emulator" - -# Print available targets. -echo "Emulator images:" -${CURRENT_DIR}/android-silent-sdkmanager --verbose --list | grep -iP '^(---|system-images).*' \ - | awk '/---/{i++}i-1' | awk '/system-images/{i++}i' - -# Download system image. -echo "Installing system image for Android SDK $EMULATOR_ANDROID_SDK (ABI: $EMULATOR_ABI)." -${CURRENT_DIR}/android-silent-sdkmanager "system-images;android-$EMULATOR_ANDROID_SDK;google_apis;$EMULATOR_ABI" - -# Print installed targets. -echo "Installed emulator images:" -${CURRENT_DIR}/android-silent-sdkmanager --verbose --list | grep -iP '^(---|system-images).*' \ - | awk '/system-images/{i++}i' | awk '/---/{i--}i+1' - -${CURRENT_DIR}/android-update-sdk diff --git a/ci/android-install-sdk b/ci/android-install-sdk deleted file mode 100755 index 0821d5d..0000000 --- a/ci/android-install-sdk +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -# Setup SDK manager. -${CURRENT_DIR}/android-setup-sdk - -# Download SDK tools. -echo "Installing SDK tools." -${CURRENT_DIR}/android-silent-sdkmanager "tools" -echo "Installing build tools $ANDROID_BUILD_TOOLS." -${CURRENT_DIR}/android-silent-sdkmanager "build-tools;$ANDROID_BUILD_TOOLS" -echo "Installing platform tools." -${CURRENT_DIR}/android-silent-sdkmanager "platform-tools" -echo "Installing Android platform SDK $ANDROID_SDK." -${CURRENT_DIR}/android-silent-sdkmanager "platforms;android-$ANDROID_SDK" - -# Update component. -${CURRENT_DIR}/android-update-sdk diff --git a/ci/android-integration-tests b/ci/android-integration-tests deleted file mode 100755 index 1d55bf7..0000000 --- a/ci/android-integration-tests +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -${CURRENT_DIR}/android-install-emulator -${CURRENT_DIR}/android-launch-emulator - -# Generate code coverage tests. -echo "Running connected instrumentation tests with Gradle." -./gradlew --daemon --console=plain connectedCheck -# TODO Instead of using `connectedCheck`, run integration tests on multiple devices using Spoon: -#./gradlew --console=plain spoonDebugAndroidTest diff --git a/ci/android-launch-emulator b/ci/android-launch-emulator deleted file mode 100755 index 34417f7..0000000 --- a/ci/android-launch-emulator +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - - -sdk=${EMULATOR_ANDROID_SDK} -abi=${EMULATOR_ABI} - -# Create and start emulator. -echo "Creating emulator device running SDK $sdk on $abi." -echo no | avdmanager create avd --force --sdcard 200M --name "test-$sdk-$abi" --package "system-images;android-$sdk;google_apis;$abi"; echo - -echo "Starting emulator device." -# Launch the emulator from the emulator tools directory, in background: -# See: https://www.bram.us/2017/05/12/launching-the-android-emulator-from-the-command-line/ -cd $(dirname $(which emulator)) && ./emulator -no-audio -no-window -no-skin -gpu off -use-system-libs -avd "test-$sdk-$abi" & - -# Wait for AVD to start. -${CURRENT_DIR}/android-wait-for-emulator "test-$sdk-$abi" - - -echo "Transferring emulator configuration." -# Turn off animations. -adb shell settings put global window_animation_scale 0 & -adb shell settings put global transition_animation_scale 0 & -adb shell settings put global animator_duration_scale 0 & -# For multi-dex issue on devices API < 19. -adb shell setprop dalvik.vm.dexopt-flags v=n,o=v -adb shell stop installd -adb shell start installd - - -# Wake up device. -echo "Wake up emulator." -adb shell input keyevent 82 & diff --git a/ci/android-lint b/ci/android-lint deleted file mode 100755 index cbfc138..0000000 --- a/ci/android-lint +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -echo "Running LINT checks with Gradle." -./gradlew --daemon --console=plain -Pci lint diff --git a/ci/android-setup-sdk b/ci/android-setup-sdk deleted file mode 100755 index 4caf25f..0000000 --- a/ci/android-setup-sdk +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -# Fix missing config file. -mkdir -p ~/.android -touch ~/.android/repositories.cfg - -# Download and unzip Android SDK tools (if not already cached) -# Latest version available here: https://developer.android.com/studio/#command-tools -SDK_DOWNLOAD_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" -SDK_DOWNLOAD_DIR="$ANDROID_HOME/dl" -SDK_DOWNLOAD_ZIP="$SDK_DOWNLOAD_DIR/sdk-tools.zip" -mkdir -p ${SDK_DOWNLOAD_DIR} -if test ! -e ${SDK_DOWNLOAD_ZIP} -then - echo "Fetching SDK tools from $SDK_DOWNLOAD_URL." - curl --create-dirs \ - --retry 3 --retry-delay 5 \ - --output ${SDK_DOWNLOAD_ZIP} --url ${SDK_DOWNLOAD_URL} -else - echo "Skipped download. Archive already exists." -fi -echo "Unzipping $SDK_DOWNLOAD_ZIP." -unzip -q -n ${SDK_DOWNLOAD_ZIP} -d ${ANDROID_HOME} - -# Accept licenses. -echo "Accepting all Android SDK licenses." -${CURRENT_DIR}/android-silent-sdkmanager --licenses diff --git a/ci/android-silent-sdkmanager b/ci/android-silent-sdkmanager deleted file mode 100755 index 38ea382..0000000 --- a/ci/android-silent-sdkmanager +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -# Pass yes ('y') to all interrupts of the SDK manager command. -# Also omit lines containing '=' to avoid exceeding log length limits on CIs, e.g. Travis. -while true; do echo y; done | sdkmanager "$@" | grep -v = || true diff --git a/ci/android-test-coverage b/ci/android-test-coverage deleted file mode 100755 index c0dc7b2..0000000 --- a/ci/android-test-coverage +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -# Set up code coverage report -echo "Setting up code coverage report with Gradle." -./gradlew --daemon --console=plain jacocoTestReport - -# Upload code coverage report -echo "Uploading report to 'https://codecov.io/'." -curl -s https://codecov.io/bash | bash - diff --git a/ci/android-unit-tests b/ci/android-unit-tests deleted file mode 100755 index 4c7da23..0000000 --- a/ci/android-unit-tests +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -echo "Running unit tests with Gradle." -./gradlew --daemon --console=plain test diff --git a/ci/android-update-sdk b/ci/android-update-sdk deleted file mode 100755 index 6655d00..0000000 --- a/ci/android-update-sdk +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -# Update SDK dependencies. -echo "Updating Android SDK components." -${CURRENT_DIR}/android-silent-sdkmanager --update diff --git a/ci/android-wait-for-emulator b/ci/android-wait-for-emulator deleted file mode 100755 index 3ff5015..0000000 --- a/ci/android-wait-for-emulator +++ /dev/null @@ -1,53 +0,0 @@ -# Copied from https://github.com/travis-ci/travis-cookbooks/blob/precise-stable/ci_environment/android-sdk/files/default/android-wait-for-emulator which is released under the MIT license. -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -# Check if ADB is installed. -if ! hash adb 2>/dev/null; -then - # Could not find `adb` command. Probably it hasn't been installed yet from the SDK manager. - echo "ADB not found. Please install using SDK manager." - exit -1 -fi - -# First wait for the device to connect to the ADB. -adb wait-for-device - -BOOT_ANIMATION_STATE="" -FAIL_COUNTER=0 -TIMEOUT_IN_MINUTES=5 -TIMEOUT_IN_SECONDS=$((TIMEOUT_IN_MINUTES * 60)) - -echo "Waiting for emulator to start..." -until [[ ${BOOT_ANIMATION_STATE} == "stopped" ]] -do - BOOT_ANIMATION_STATE=`adb -e shell getprop init.svc.bootanim 2>&1 &` - -# if [[ "$BOOT_ANIMATION_STATE" =~ "device not found" || "$BOOT_ANIMATION_STATE" =~ "device offline" || "$BOOT_ANIMATION_STATE" =~ "running" ]]; then -# let "failcounter += 1" -# echo "Waiting for emulator to start" -# fi - - FAIL_COUNTER=$((FAIL_COUNTER + 1)) - - if [[ ${FAIL_COUNTER} -ge ${TIMEOUT_IN_SECONDS} ]] - then - echo "Timeout reached after $TIMEOUT_IN_SECONDS seconds." - echo "Failed to start emulator." - exit 1 - fi - - # Only show notification every 5 seconds. - if (( $FAIL_COUNTER % 5 == 0 )) - then - REMAINING_SECONDS=$((TIMEOUT_IN_SECONDS - FAIL_COUNTER)) - echo "Current state: boot animation='$BOOT_ANIMATION_STATE'. Still waiting for $REMAINING_SECONDS seconds..." - fi - - sleep 1 -done - -echo "Emulator is ready." -exit 0 diff --git a/ci/decrypt-secrets b/ci/decrypt-secrets deleted file mode 100755 index 0a48977..0000000 --- a/ci/decrypt-secrets +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -cd secret - -echo "Decrypt archive containing all secret files." -# The next line is auto-generated by `encrypt_secrets` and should not be modified. -openssl aes-256-cbc -K $encrypted_3bd88bff048e_key -iv $encrypted_3bd88bff048e_iv -in secrets.tar.enc -out secrets.tar -d - -echo "Extract archive." -tar -xf secrets.tar diff --git a/ci/deploy-github-releases b/ci/deploy-github-releases deleted file mode 100755 index 89c60c7..0000000 --- a/ci/deploy-github-releases +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -echo "Create new GitHub draft release, including a changelog and app bundles." -./gradlew --daemon --console=plain githubRelease diff --git a/ci/deploy-google-play b/ci/deploy-google-play deleted file mode 100755 index 29787aa..0000000 --- a/ci/deploy-google-play +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e - -echo "Create new draft release on Google Play." -./gradlew --daemon --console=plain publishRelease diff --git a/ci/encrypt-secrets b/ci/encrypt-secrets deleted file mode 100755 index 0349e26..0000000 --- a/ci/encrypt-secrets +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -# Fail fast when a command returns non-zero exit code. -set -e -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -cd secret - -echo "Create archive with all secret files." -tar -cf secrets.tar --exclude=secrets.tar --exclude=secrets.tar.enc --exclude-vcs ./ - -echo "Encrypt files, store keys on Travis CI and save the decryption command." -decrypt_line=$(travis encrypt-file -f -p secrets.tar \ - | sed 's/^ *//;s/ *$//' \ - | grep -E '^openssl') - -echo "Save decryption command to decryption script." -sed -i "s/^openssl.*$/$decrypt_line/g" "$CURRENT_DIR/decrypt-secrets" \ No newline at end of file diff --git a/secret/.gitignore b/secret/.gitignore index 86ad104..2971519 100644 --- a/secret/.gitignore +++ b/secret/.gitignore @@ -4,4 +4,4 @@ # Track this .gitignore file. !.gitignore # Track encoded files -!*.enc \ No newline at end of file +!*.gpg \ No newline at end of file diff --git a/secret/secrets.tar.enc b/secret/secrets.tar.enc deleted file mode 100644 index 5be1b1a0d311bd448ebf6ffccf04007f2e59f73f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20496 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 X&fLMua+Oq~ktnMhwg+$rdRvhsWhdOC diff --git a/secret/secrets.tar.gpg b/secret/secrets.tar.gpg new file mode 100644 index 0000000000000000000000000000000000000000..15aa974ed309bd951b991155f37a36b6f608b4bb GIT binary patch literal 6565 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 XE=2vB{oamO$%?>n;YLecq|GjIj+n=z literal 0 HcmV?d00001 From 1acf271dcdb60f09fb5e34297940e55881230e0d Mon Sep 17 00:00:00 2001 From: heinrichreimer Date: Tue, 17 Dec 2019 02:47:10 +0100 Subject: [PATCH 4/7] Update readme --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index f512c12..1ca6343 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,18 @@ That way you stay anonymous and safe in internet, while your frien Happy sharing! ๐Ÿ˜ฝ +## Deployment + +### Encoding secrets + +```shell script +cd secrets +tar -cf secrets.tar --exclude=secrets.tar --exclude=secrets.tar.gpg --exclude=.gitignore . +gpg --symmetric --cipher-algo AES256 --output secrets.tar.gpg secrets.tar +``` + +The same password needs to be saved as `FILES_PASSPHRASE` variable +to this repository's [secrets](https://github.com/Crazy-Marvin/MetadataRemover/settings/secrets). ## Contributing From 06a2ea8cb55f6ddf26aef6589ee3579ff4625a78 Mon Sep 17 00:00:00 2001 From: heinrichreimer Date: Tue, 17 Dec 2019 02:48:51 +0100 Subject: [PATCH 5/7] Fix CI --- .github/workflows/ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3324e61..9034726 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,4 @@ jobs: uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} - yml: .codecov.yml #optional - fail_ci_if_error: true #optional (default = false) - run: bash <(curl -s https://codecov.io/bash) + yml: .codecov.yml From 94ec04b8052f749670cc19b76db6c9de5fbecfbf Mon Sep 17 00:00:00 2001 From: heinrichreimer Date: Tue, 17 Dec 2019 02:50:05 +0100 Subject: [PATCH 6/7] Update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ca6343..a4cb107 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![Icon](art/icons/ic_launcher/legacy/ic_launcher_squircle_xxxhdpi.png)](art/icons/ic_launcher/ic_launcher_play_store.png) # Metadata Remover App For Android -[![Build Status](https://img.shields.io/travis/Crazy-Marvin/MetadataRemover/master.svg?style=flat)](https://travis-ci.org/Crazy-Marvin/MetadataRemover) +[![Build Status](https://img.shields.io/github/workflow/status/Crazy-Marvin/MetadataRemover/CI?style=flat)](https://github.com/Crazy-Marvin/MetadataRemover/actions) [![License](https://img.shields.io/github/license/Crazy-Marvin/MetadataRemover.svg?style=flat)](LICENSE.txt) [![Last commit](https://img.shields.io/github/last-commit/Crazy-Marvin/MetadataRemover.svg?style=flat)](https://github.com/Crazy-Marvin/MetadataRemover/commits) [![Releases](https://img.shields.io/github/downloads/Crazy-Marvin/MetadataRemover/total.svg?style=flat)](https://github.com/Crazy-Marvin/MetadataRemover/releases) From b8bb28906f956c9abb6738ecdc3ddc6205c1702d Mon Sep 17 00:00:00 2001 From: heinrichreimer Date: Tue, 17 Dec 2019 03:05:20 +0100 Subject: [PATCH 7/7] Fix CI --- app/build.gradle.kts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dafa933..47ce176 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -137,14 +137,7 @@ kapt { } play { - serviceAccountCredentials = rootProject - .file("secret/api-7281121051860956110-977812-57e7308358e6.json") - .also { file -> - require(file.exists()) { - "Could not find Google Play credentials." - } - } - + serviceAccountCredentials = rootProject.file("secret/api-7281121051860956110-977812-57e7308358e6.json") track = "internal" releaseStatus = "draft" defaultToAppBundles = true