forked from shosetsuorg/shosetsu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
121 lines (102 loc) · 3.46 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
image: openjdk:11-jdk
variables:
# ANDROID_COMPILE_SDK is the version of Android you're compiling with.
# It should match compileSdkVersion.
ANDROID_COMPILE_SDK: "33"
# ANDROID_BUILD_TOOLS is the version of the Android build tools you are using.
# It should match buildToolsVersion.
ANDROID_BUILD_TOOLS: "30.0.3"
# It's what version of the command line tools we're going to download from the official site.
# Official Site-> https://developer.android.com/studio/index.html
# There, look down below at the cli tools only, sdk tools package is of format:
# commandlinetools-os_type-ANDROID_SDK_TOOLS_latest.zip
# when the script was last modified for latest compileSdkVersion, it was which is written down below
ANDROID_SDK_TOOLS: "7583922"
# Packages installation before running script
before_script:
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
- export ANDROID_HOME="${PWD}/android-home"
- export PATH=$PATH:${ANDROID_HOME}/cmdline-tools/tools/bin/
- export GRADLE_USER_HOME=`pwd`/.gradle
- export CI_MODE=true
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- .gradle/
- android/build/
- build/
- android-home/
stages:
- lint
- standard
- fdroid
- uptodown
- playstore
# Setup
packages:
interruptible: true
stage: .pre
script:
- rm -rf $ANDROID_HOME
# Create a new directory at specified location
- install -d $ANDROID_HOME
# Here we are installing androidSDK tools from official source,
# (the key thing here is the url from where you are downloading these sdk tool for command line, so please do note this url pattern there and here as well)
# after that unzipping those tools and
# then running a series of SDK manager commands to install necessary android SDK packages that'll allow the app to build
- wget -q --output-document=$ANDROID_HOME/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
# move to the archive at ANDROID_HOME
- pushd $ANDROID_HOME
- unzip -d cmdline-tools cmdline-tools.zip
- pushd cmdline-tools
- mv cmdline-tools tools || true
- popd
- popd
# Nothing fancy here, just checking sdkManager version
- sdkmanager --version
# use yes to accept all licenses
- yes | sdkmanager --licenses || true
- sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}"
- sdkmanager "platform-tools"
- sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}"
# Not necessary, but just for surity
- chmod +x ./gradlew
# Basic android and gradle stuff
# Check linting
lint:
interruptible: true
stage: lint
script:
- ./gradlew -Pci --console=plain :android:lint -PbuildDir=lint
# Make Project
.assembleStandard:
interruptible: true
stage: standard
timeout: 2 hours # We need extra time for building
script:
- ./gradlew assembleStandard
.assembleFdroid:
interruptible: true
stage: fdroid
timeout: 2 hours # We need extra time for building
script:
- ./gradlew assembleFdroid
.assembleUptodown:
interruptible: true
stage: uptodown
timeout: 2 hours # We need extra time for building
script:
- ./gradlew assembleUptodown
.assemblePlaystore:
interruptible: true
stage: playstore
timeout: 2 hours # We need extra time for building
script:
- ./gradlew assemblePlaystore
# Run all tests, if any fails, interrupt the pipeline(fail it)
#debugTests:
# interruptible: true
# stage: test
# script:
# - ./gradlew -Pci --console=plain :app:testDebug