Skip to content

Android CI/CD

Android CI/CD #24

Workflow file for this run

---
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: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Decrypt and Extract signing.tar.enc
run: |
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 --strip-components=1
working-directory: sidekick
- name: Configure Keystore
run: |
mkdir -p ~/.android
cp keystore.properties ~/.android/keystore.properties
cp android-keystore.jks ~/.android/android-keystore.jks
working-directory: sidekick
- 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: Make gradlew Executable
run: chmod +x ./gradlew
working-directory: sidekick
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.0" # Specify the Ruby version you need
bundler-cache: true # Automatically caches gems
- name: Build and Deploy with Fastlane
working-directory: sidekick # Directory containing Fastfile
run: bundle exec fastlane alpha