Skip to content
This repository has been archived by the owner on Feb 17, 2020. It is now read-only.

Commit

Permalink
Merge pull request #623 from squanchy-dev/update-circleci-config
Browse files Browse the repository at this point in the history
Update CircleCI config to 2.1
  • Loading branch information
rock3r committed Mar 20, 2019
2 parents ce69059 + 2bc13fd commit a646b7d
Showing 1 changed file with 119 additions and 93 deletions.
212 changes: 119 additions & 93 deletions .circleci/config.yml
@@ -1,80 +1,106 @@
version: 2

aliases:
version: 2.1

executors:
android:
working_directory: ~/squanchy
docker:
- image: circleci/android:api-28-alpha
environment:
ANDROID_HOME: /opt/android/sdk
APPLICATION_ID: net.squanchy.example
FABRIC_API_KEY: 0000000000000000000000000000000000000000
ALGOLIA_APPLICATION_ID: ABCDEFGH12
ALGOLIA_API_KEY: 00000000000000000000000000000000
ALGOLIA_INDICES_PREFIX: squanchy_dev

commands:
# FOSSA CLI install
- &install-fossa-cli
name: Install FOSSA CLI
command: workspace/repo/.circleci/ci-scripts/install-fossa.sh

# Build Tools cache aliases
- &restore-build-tools-cache
name: Restore Android build tools cache
keys:
- v3-build-tools-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}
- &save-build-tools-cache
name: Save Android build tools cache
paths:
- /opt/android/sdk/build-tools
key: v3-build-tools-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}

# Gradle cache aliases
- &restore-gradle-cache
name: Restore Gradle cache
keys:
- v3-gradle-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}
- &save-gradle-cache
name: Save Gradle cache
paths:
- ~/.gradle/caches
- ~/.gradle/wrapper
key: v3-gradle-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}

# Android Gradle build cache aliases
- &restore-android-build-cache
name: Restore Android Gradle build cache
keys:
- v3-build-cache-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}
- &save-android-build-cache
name: Save Android Gradle build cache
paths:
- ~/.android/build-cache
key: v3-build-cache-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}

- &ensure-android-sdk-is-ready
name: Ensure Android SDK install is up-to-date
command: workspace/repo/.circleci/ci-scripts/ensure-sdkmanager.sh

- &download-gradle-dependencies
name: Download Gradle dependencies
command: cd workspace/repo/ && ./gradlew downloadDependencies

circle_ci_android_container_config: &circle_ci_android_container_config
working_directory: ~/squanchy

docker:
- image: circleci/android:api-28-alpha

environment:
ANDROID_HOME: /opt/android/sdk
APPLICATION_ID: net.squanchy.example
FABRIC_API_KEY: 0000000000000000000000000000000000000000
ALGOLIA_APPLICATION_ID: ABCDEFGH12
ALGOLIA_API_KEY: 00000000000000000000000000000000
ALGOLIA_INDICES_PREFIX: squanchy_dev

attach_workspace: &attach_workspace
attach_workspace:
at: workspace
install_fossa_cli:
steps:
- run:
name: Install FOSSA CLI
command: workspace/repo/.circleci/ci-scripts/install-fossa.sh

# Build Tools cache commands
restore_build_tools_cache:
steps:
- restore_cache:
name: Restore Android build tools cache
keys:
- v3-build-tools-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}
save_build_tools_cache:
steps:
- save_cache:
name: Save Android build tools cache
paths:
- /opt/android/sdk/build-tools
key: v3-build-tools-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}

# Gradle cache commands
restore_gradle_cache:
steps:
- restore_cache:
name: Restore Gradle dependencies cache
keys:
- v1-gradle-dependencies-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}
- restore_cache:
name: Restore Gradle wrapper cache
keys:
- v1-gradle-wrapper-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle/wrapper/gradle-wrapper.properties" }}
save_gradle_cache:
steps:
- save_cache:
name: Save Gradle dependencies cache
paths:
- ~/.gradle/caches
key: v1-gradle-dependencies-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}
- save_cache:
name: Save Gradle wrapper cache
paths:
- ~/.gradle/wrapper
key: v1-gradle-wrapper-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle/wrapper/gradle-wrapper.properties" }}

# Android Gradle build cache commands
restore_android_build_cache:
steps:
- restore_cache:
name: Restore Android Gradle build cache
keys:
- v3-build-cache-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}
save_android_build_cache:
steps:
- save_cache:
name: Save Android Gradle build cache
paths:
- ~/.android/build-cache
key: v3-build-cache-{{ checksum "workspace/repo/.circleci/config.yml" }}-{{ checksum "workspace/repo/gradle.properties" }}-{{ checksum "workspace/repo/dependencies.gradle" }}

ensure_android_sdk_is_ready:
steps:
- run:
name: Ensure Android SDK install is up-to-date
command: workspace/repo/.circleci/ci-scripts/ensure-sdkmanager.sh

download_gradle_dependencies:
steps:
- run:
name: Download Gradle dependencies
command: cd workspace/repo/ && ./gradlew downloadDependencies

restore_workspace:
steps:
- attach_workspace:
at: workspace

jobs:
checkout:
<<: *circle_ci_android_container_config
executor: android
steps:
- checkout:
path: workspace/repo

# Prepare the container for the build
- run: *ensure-android-sdk-is-ready
- ensure_android_sdk_is_ready
- run:
name: Create mock Play Services JSON
command: workspace/repo/.circleci/ci-scripts/ci-mock-google-services-setup.sh
Expand All @@ -86,18 +112,18 @@ jobs:
- repo

prepare_for_checks:
<<: *circle_ci_android_container_config
executor: android
steps:
- *attach_workspace
- restore_cache: *restore-gradle-cache
- restore_cache: *restore-android-build-cache
- restore_cache: *restore-build-tools-cache
- restore_workspace
- restore_gradle_cache
- restore_android_build_cache
- restore_build_tools_cache

- run: *download-gradle-dependencies
- download_gradle_dependencies

- save_cache: *save-android-build-cache
- save_cache: *save-gradle-cache
- save_cache: *save-build-tools-cache
- save_android_build_cache
- save_gradle_cache
- save_build_tools_cache

# Persist built app code
- persist_to_workspace:
Expand All @@ -106,12 +132,12 @@ jobs:
- repo/app/build

static_analysis:
<<: *circle_ci_android_container_config
executor: android
steps:
- *attach_workspace
- restore_cache: *restore-gradle-cache
- restore_cache: *restore-android-build-cache
- restore_cache: *restore-build-tools-cache
- restore_workspace
- restore_gradle_cache
- restore_android_build_cache
- restore_build_tools_cache

# See https://issuetracker.google.com/issues/62217354 for the parallelism option
- run:
Expand All @@ -124,12 +150,12 @@ jobs:
destination: reports

tests:
<<: *circle_ci_android_container_config
executor: android
steps:
- *attach_workspace
- restore_cache: *restore-gradle-cache
- restore_cache: *restore-android-build-cache
- restore_cache: *restore-build-tools-cache
- restore_workspace
- restore_gradle_cache
- restore_android_build_cache
- restore_build_tools_cache

# See https://issuetracker.google.com/issues/62217354 for the parallelism option
- run:
Expand All @@ -141,14 +167,14 @@ jobs:
path: workspace/repo/app/build/test-results

license_checks:
<<: *circle_ci_android_container_config
executor: android
steps:
- *attach_workspace
- restore_cache: *restore-gradle-cache
- restore_cache: *restore-android-build-cache
- restore_cache: *restore-build-tools-cache
- restore_workspace
- restore_gradle_cache
- restore_android_build_cache
- restore_build_tools_cache

- run: *install-fossa-cli
- install_fossa_cli

- run:
name: Run FOSSA license check
Expand Down

0 comments on commit a646b7d

Please sign in to comment.