Skip to content

Commit 249004a

Browse files
authored
Add CircleCI config (#763)
1 parent bc7fe3b commit 249004a

File tree

1 file changed

+113
-0
lines changed

1 file changed

+113
-0
lines changed

.circleci/config.yml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
version: 2
2+
jobs:
3+
build:
4+
working_directory: ~/analytics-android
5+
docker:
6+
- image: circleci/android:api-28-alpha
7+
environment:
8+
JVM_OPTS: -Xmx6400m
9+
CIRCLE_JDK_VERSION: oraclejdk8
10+
steps:
11+
- checkout
12+
- restore_cache:
13+
key: jars-{{ checksum "build.gradle" }}-{{ checksum "analytics/build.gradle" }}-{{ checksum "analytics-samples/analytics-sample/build.gradle" }}
14+
- run:
15+
name: Accept licenses
16+
command: yes | sdkmanager --licenses || true
17+
- run:
18+
name: Build
19+
command: ./gradlew check build assembleAndroidTest
20+
- run:
21+
name: Snyk
22+
command: curl -sL https://raw.githubusercontent.com/segmentio/snyk_helpers/master/initialization/snyk.sh | sh
23+
environment:
24+
SNYK_FAIL_ON: upgradable
25+
SNYK_SEVERITY_THRESHOLD: high
26+
- save_cache:
27+
paths:
28+
- ~/.gradle
29+
key: jars-{{ checksum "build.gradle" }}-{{ checksum "analytics/build.gradle" }}-{{ checksum "analytics-samples/analytics-sample/build.gradle" }}
30+
publish_snapshot:
31+
working_directory: ~/analytics-android
32+
docker:
33+
- image: circleci/android:api-28-alpha
34+
environment:
35+
JVM_OPTS: -Xmx3200m
36+
CIRCLE_JDK_VERSION: oraclejdk8
37+
steps:
38+
- checkout
39+
- restore_cache:
40+
key: jars-{{ checksum "build.gradle" }}-{{ checksum "analytics/build.gradle" }}-{{ checksum "analytics-samples/analytics-sample/build.gradle" }}
41+
- run:
42+
name: Accept licenses
43+
command: yes | sdkmanager --licenses || true
44+
- run:
45+
name: Set up key ring file
46+
command: |
47+
if [ "$SIGNING_PRIVATE_KEY_BASE64" == "" ]; then {
48+
echo "Invalid signature configuration"
49+
exit 1
50+
} fi
51+
echo $SIGNING_PRIVATE_KEY_BASE64 | base64 -d > $SIGNING_SECRET_KEY_RING_FILE
52+
- run:
53+
name: Publish SNAPSHOT
54+
command: ./gradlew publish
55+
publish:
56+
working_directory: ~/analytics-android
57+
docker:
58+
- image: circleci/android:api-28-alpha
59+
environment:
60+
JVM_OPTS: -Xmx3200m
61+
CIRCLE_JDK_VERSION: oraclejdk8
62+
steps:
63+
- checkout
64+
- restore_cache:
65+
key: jars-{{ checksum "build.gradle" }}-{{ checksum "analytics/build.gradle" }}-{{ checksum "analytics-samples/analytics-sample/build.gradle" }}
66+
- run:
67+
name: Accept licenses
68+
command: yes | sdkmanager --licenses || true
69+
- run:
70+
name: Set up key ring file
71+
command: |
72+
if [ "$SIGNING_PRIVATE_KEY_BASE64" == "" ]; then {
73+
echo "Invalid signature configuration"
74+
exit 1
75+
} fi
76+
echo $SIGNING_PRIVATE_KEY_BASE64 | base64 -d > $SIGNING_SECRET_KEY_RING_FILE
77+
- run:
78+
name: Verify tag
79+
command: |
80+
VERSION=$(grep VERSION_NAME gradle.properties | awk -F= '{ print $2 }' | sed "s/-SNAPSHOT//")
81+
if [ "$CIRCLE_TAG" != "$VERSION" ]; then {
82+
echo "Tag $CIRCLE_TAG does not match the package version ($VERSION)"
83+
exit 1
84+
} fi
85+
- run:
86+
name: Publish Release
87+
command: ./gradlew publish -Prelease
88+
- run:
89+
name: Mark release
90+
command: ./gradlew closeAndReleaseRepository
91+
workflows:
92+
version: 2
93+
run:
94+
jobs:
95+
- build:
96+
context: snyk
97+
filters:
98+
tags:
99+
only: /.*/
100+
- publish_snapshot:
101+
context: android-sonatype
102+
requires: [ build ]
103+
filters:
104+
branches:
105+
only: [/master/]
106+
- publish:
107+
context: android-sonatype
108+
requires: [ build ]
109+
filters:
110+
branches:
111+
ignore: /.*/
112+
tags:
113+
only: /[0-9]+.*/

0 commit comments

Comments
 (0)