Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/actions/disk-cleanup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Disk cleanup
description: Clean up disk space by removing unnecessary files
runs:
using: 'composite'
steps:
- name: Clean up unnecessary files
shell: bash
run: |
# Remove .NET SDKs
sudo rm -rf /usr/share/dotnet

# Remove Swift toolchain
sudo rm -rf /usr/share/swift

# Remove Haskell (GHC)
sudo rm -rf /usr/local/.ghcup

# Remove Julia
sudo rm -rf /usr/local/julia*

# Remove Chromium (optional if not using for browser tests)
sudo rm -rf /usr/local/share/chromium

# Remove Microsoft/Edge and Google Chrome builds
sudo rm -rf /opt/microsoft /opt/google

# Remove Azure CLI
sudo rm -rf /opt/az

# Remove PowerShell
sudo rm -rf /usr/local/share/powershell

# Remove CodeQL and other toolcaches
sudo rm -rf /opt/hostedtoolcache
24 changes: 24 additions & 0 deletions .github/actions/disk-usage/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Disk usage
description: Show disk usage
runs:
using: 'composite'
steps:
- name: Total runner disk usage
shell: bash
run: df -h /

- name: Workspace usage
shell: bash
run: du -sh $GITHUB_WORKSPACE || true

- name: Gradle user home usage
shell: bash
run: du -sh ~/.gradle || true

- name: Gradle cache usage
shell: bash
run: du -sh ~/.gradle/caches ~/.gradle/wrapper || true

- name: Build outputs usage
shell: bash
run: du -sh build app-*/build || true
34 changes: 34 additions & 0 deletions .github/actions/setup-gradle/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Set up Gradle build environment
description: Prepares environment for building with JDK and Gradle
inputs:
run-release:
description: 'Whether to run in release mode (true/false). In release mode, Gradle cache is not used.'
required: false
default: 'false'
add-job-summary:
description: 'Whether to add a job summary (always, never, on-failure).'
required: false
default: 'always'
cache-encryption-key:
description: 'The secret key to use for encrypting the Gradle cache.'
required: false
default: ''
runs:
using: 'composite'
steps:
- name: Copy CI gradle.properties
shell: bash
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

- name: Set up JDK
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
distribution: 'temurin'
java-version: '21'

- name: Set up Gradle without cache
uses: gradle/actions/setup-gradle@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4
with:
cache-disabled: ${{ inputs.run-release }}
add-job-summary: ${{ inputs.add-job-summary }}
cache-encryption-key: ${{ inputs.cache-encryption-key }}
6 changes: 3 additions & 3 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ runs:
steps:
- name: Copy CI gradle.properties
shell: bash
run: mkdir -p ~/.gradle ; cp .github/ci-gradle-android-pr-workflow.properties ~/.gradle/gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

- name: Set up JDK
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
distribution: 'temurin'
java-version: '21'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
uses: gradle/actions/setup-gradle@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4

- name: Restore Gradle cache
uses: ./.github/actions/gradle_cache
10 changes: 0 additions & 10 deletions .github/ci-gradle-android-pr-workflow.properties

This file was deleted.

5 changes: 4 additions & 1 deletion .github/ci-gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
org.gradle.daemon=false
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=true
org.gradle.configuration-cache.parallel=true
org.gradle.workers.max=4
org.gradle.jvmargs=-Xmx10g -XX:MaxMetaspaceSize=2g -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError
org.gradle.jvmargs=-Xmx10g -XX:MaxMetaspaceSize=4g -Dfile.encoding=UTF-8 -XX:+UseParallelGC

kotlin.incremental=true
kotlin.compiler.execution.strategy=in-process
6 changes: 5 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
version: 2
updates:
# Dependabot does not support GitHub composite actions by default (.github/actions)
# so we need to add the folder by hand to the directories entry.
- package-ecosystem: "github-actions"
directory: "/"
directories:
- "/"
- "/.github/actions/*"
schedule:
interval: "weekly"
labels:
Expand Down
53 changes: 0 additions & 53 deletions .github/workflows/android.yml

This file was deleted.

72 changes: 72 additions & 0 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Android CI

on:
push:
branches:
- main
pull_request:
paths-ignore:
- '.idea/**'
- '.gitattributes'
- '.github/**.json'
- '.gitignore'
- '.gitmodules'
- '**.md'
- 'LICENSE'
- 'NOTICE'

permissions:
contents: read

concurrency:
group: android-ci-${{ github.ref }}-${{ github.event.pull_request.number || 'no-pr' }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
build-android:
name: Build Android application
runs-on: ubuntu-latest
timeout-minutes: 90

steps:
- name: Checkout the repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Show disk usage
uses: ./.github/actions/disk-usage

- name: Cleanup disk
uses: ./.github/actions/cleanup-disk

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle
with:
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}

- name: Show disk usage
uses: ./.github/actions/disk-usage

- name: Quality - Spotless
run: ./gradlew spotlessCheck

- name: Quality - Detekt
run: ./gradlew detekt

- name: Quality - Lint
run: ./gradlew lint

- name: Show disk usage
uses: ./.github/actions/disk-usage

- name: Quality - Dependency Guard
run: ./gradlew dependencyGuard

- name: Build (run full build and tests)
run: ./gradlew build

- name: Show disk usage
uses: ./.github/actions/disk-usage


12 changes: 3 additions & 9 deletions .github/workflows/markdown.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,10 @@ jobs:
- name: Install mdbook and extensions
run: ./docs/install.sh

- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle
with:
distribution: 'temurin'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}

- name: Quality - Spotless Markdown Check
run: ./gradlew spotlessFlexmarkCheck
Expand Down
34 changes: 8 additions & 26 deletions .github/workflows/shippable_builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -220,23 +220,13 @@ jobs:
fetch-depth: 0
token: ${{ steps.app-token.outputs.token || github.token }}

- name: Copy CI gradle.properties
if: ${{ contains(matrix.releaseTarget, 'github') || needs.dump_config.outputs.releaseType == 'daily' }}
shell: bash
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
if: ${{ contains(matrix.releaseTarget, 'github') || needs.dump_config.outputs.releaseType == 'daily' }}
with:
distribution: 'temurin'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4
- name: Setup Gradle environment
if: ${{ contains(matrix.releaseTarget, 'github') || needs.dump_config.outputs.releaseType == 'daily' }}
uses: ./.github/actions/setup-gradle
with:
cache-disabled: "${{ contains(fromJSON('[\"beta\", \"release\"]'), needs.dump_config.outputs.releaseType) }}"
run-release: "${{ contains(fromJSON('[\"beta\", \"release\"]'), needs.dump_config.outputs.releaseType) }}"
add-job-summary: never
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}

- name: Get application info
id: appinfo
Expand Down Expand Up @@ -470,20 +460,12 @@ jobs:
with:
ref: ${{ steps.sha.outputs.app_sha }}

- name: Copy CI gradle.properties
shell: bash
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
distribution: 'temurin'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4
- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle
with:
cache-disabled: "${{ contains(fromJSON('[\"beta\", \"release\"]'), needs.dump_config.outputs.releaseType) }}"
run-release: "${{ contains(fromJSON('[\"beta\", \"release\"]'), needs.dump_config.outputs.releaseType) }}"
add-job-summary: on-failure
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}

- name: Set Version Code for Daily
if: ${{ needs.dump_config.outputs.releaseType == 'daily' }}
Expand Down
Loading