-
Notifications
You must be signed in to change notification settings - Fork 4
156 lines (127 loc) · 3.83 KB
/
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
---
name: Android CI/CD
on:
push:
tags:
- "v*.*.*"
jobs:
build:
name: Build and Test
runs-on: ubuntu-latest
env:
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
LANG: en_US.UTF-8
LC_ALL: en_US.UTF-8
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "17"
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9
run_install: false
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Configure pnpm store
run: pnpm config set store-dir ~/.pnpm-store
- name: Install Dependencies
run: pnpm install
- name: Build Project
run: pnpm build
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Decrypt and Extract signing.tar.enc
env:
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: |
cd sidekick
openssl enc -aes-256-cbc -pbkdf2 -iter 100000 \
-d -in signing.tar.enc -out signing.tar \
-pass pass:"$SIGNING_KEY_PASSWORD"
tar xvf signing.tar
- name: Configure Keystore
run: |
mkdir -p ~/.android
cp sidekick/keystore.properties ~/.android/keystore.properties
- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper/
key: >
${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build Release
run: |
cd sidekick
./gradlew assembleRelease
deploy:
name: Deploy to Google Play
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
env:
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
LANG: en_US.UTF-8
LC_ALL: en_US.UTF-8
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "17"
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9
run_install: false
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Configure pnpm store
run: pnpm config set store-dir ~/.pnpm-store
- name: Install Dependencies
run: pnpm install
- name: Build Project
run: pnpm build
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Decrypt and Extract signing.tar.enc
env:
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: |
cd sidekick
openssl enc -aes-256-cbc -pbkdf2 -iter 100000 \
-d -in signing.tar.enc -out signing.tar \
-pass pass:"$SIGNING_KEY_PASSWORD"
tar xvf signing.tar
- name: Configure Keystore
run: |
mkdir -p ~/.android
cp sidekick/keystore.properties ~/.android/keystore.properties
- name: Install Fastlane
run: sudo gem install fastlane
- name: Set up Fastlane Environment Variables
env:
GOOGLE_APPLICATION_CREDENTIALS: ${{ github.workspace }}/api.json
run: |
echo "GOOGLE_PLAY_JSON_KEY=api.json" >> $GITHUB_ENV
- name: Build and Deploy with Fastlane
run: |
fastlane alpha