Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
20ecdfa
Merge pull request #9707 from thunderbird/dependabot/github_actions/g…
coreycb Sep 2, 2025
ed517de
Merge pull request #9706 from thunderbird/dependabot/github_actions/g…
coreycb Sep 2, 2025
b58e7a6
Merge pull request #9679 from wmontwe/chore-ci-improve-cache-use
wmontwe Sep 3, 2025
2ddf463
Merge pull request #9752 from thunderbird/dependabot/github_actions/s…
coreycb Sep 9, 2025
f3f1317
Merge pull request #9750 from thunderbird/dependabot/github_actions/g…
coreycb Sep 9, 2025
b300202
Merge pull request #9751 from thunderbird/dependabot/github_actions/g…
coreycb Sep 9, 2025
2123406
Merge pull request #9747 from wmontwe/chore-ci-add-dependabot-for-gradle
wmontwe Sep 10, 2025
893e2dd
Merge pull request #9681 from rafaeltonholo/ci/update-pr-pipeline
rafaeltonholo Sep 11, 2025
d5a6a9e
Merge pull request #9767 from wmontwe/chore-ci-fix-dependabot-config
wmontwe Sep 15, 2025
0e55af0
Merge pull request #9786 from thunderbird/dependabot/github_actions/g…
coreycb Sep 15, 2025
19a2940
Merge pull request #9785 from thunderbird/dependabot/github_actions/g…
coreycb Sep 15, 2025
33be4a1
Merge pull request #9780 from thunderbird/dependabot/github_actions/a…
coreycb Sep 15, 2025
bb80413
Merge pull request #9778 from rafaeltonholo/ci/change-pr-workflow-uni…
wmontwe Sep 16, 2025
0bf32d0
Merge pull request #9811 from rafaeltonholo/ci/add-missing-step-to-bu…
rafaeltonholo Sep 18, 2025
a056015
Merge pull request #9807 from wmontwe/chore-ci-remove-codeql-workflow
wmontwe Sep 19, 2025
8c0713c
Merge pull request #9805 from rafaeltonholo/ci/add-dependabot-depende…
rafaeltonholo Sep 17, 2025
04f6272
Merge pull request #9815 from rafaeltonholo/ci/add-dependabot-depende…
rafaeltonholo Sep 19, 2025
5f76372
Merge pull request #9868 from thunderbird/dependabot/github_actions/g…
coreycb Sep 30, 2025
851888f
Merge pull request #9869 from thunderbird/dependabot/github_actions/g…
wmontwe Sep 30, 2025
47dbca7
Merge pull request #9849 from rafaeltonholo/ci/change-dependency-guar…
rafaeltonholo Sep 23, 2025
f7c56c8
Merge pull request #9851 from rafaeltonholo/ci/dependency-guard-set-t…
rafaeltonholo Sep 24, 2025
9fee20f
Merge pull request #9800 from thunderbird/dependabot/gradle/org.robol…
wmontwe Oct 1, 2025
50b6b20
Merge pull request #9910 from rafaeltonholo/ci/fix-dependabot-depende…
rafaeltonholo Oct 3, 2025
0924c1c
Merge pull request #9904 from thunderbird/dependabot/github_actions/g…
coreycb Oct 3, 2025
a93afba
Merge pull request #9902 from thunderbird/dependabot/github_actions/o…
coreycb Oct 3, 2025
624816c
Merge pull request #9893 from wmontwe/fix-github-actions-disk-space-u…
wmontwe Oct 2, 2025
459cc5f
Merge pull request #9901 from thunderbird/dependabot/github_actions/d…
coreycb Oct 3, 2025
4bf03a3
Merge pull request #9917 from thunderbird/dependabot/github_actions/s…
coreycb Oct 7, 2025
2595b0d
Merge pull request #9914 from wmontwe/fix/9899/add-dedicated-code-ql-…
wmontwe Oct 8, 2025
4d109bc
Merge pull request #9924 from wmontwe/chore-ci-android-workflow-impro…
wmontwe Oct 9, 2025
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
37 changes: 37 additions & 0 deletions .github/actions/disk-cleanup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
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 Java JDKs
sudo rm -rf /usr/lib/jvm

# 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 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 || 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'
write-cache:
description: 'Whether to write to the cache (true/false).'
required: false
default: 'false'
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@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0
with:
cache-disabled: ${{ inputs.run-release }}
add-job-summary: ${{ inputs.add-job-summary }}
cache-read-only: ${{ inputs.write-cache == 'false' || inputs.run-release == 'true' }}
9 changes: 6 additions & 3 deletions .github/ci-gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
org.gradle.daemon=false
org.gradle.daemon=true
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=1g -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError
org.gradle.jvmargs=-Xmx10g -XX:MaxMetaspaceSize=4g -Dfile.encoding=UTF-8 -XX:+UseParallelGC

kotlin.incremental=false
kotlin.incremental=true
kotlin.compiler.execution.strategy=in-process
25 changes: 20 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,26 @@
version: 2
commit-message:
prefix: chore
include: scope
labels:
- "type: dependency"
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"
directories:
- "/"
- "/.github/actions/*"
schedule:
interval: "weekly"
labels:
- "type: dependency"
- "type: github actions"
commit-message:
prefix: chore
include: scope
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "weekly"
labels:
- "type: dependency"
- "type: gradle"
commit-message:
prefix: chore
include: scope
50 changes: 0 additions & 50 deletions .github/workflows/android.yml

This file was deleted.

158 changes: 158 additions & 0 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
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-common:
name: Build common code
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/disk-cleanup

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle
with:
write-cache: ${{ github.ref == 'refs/heads/main' }}

- name: Prime configuration and dependency cache
run: ./gradlew --no-daemon help

- name: Assemble common
run: ./gradlew :app-common:assemble

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

build-k9:
name: Build K9 application
runs-on: ubuntu-latest
timeout-minutes: 90
needs: [build-common]
steps:
- name: Checkout the repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle

- name: Build K9 application
run: ./gradlew :app-k9mail:assemble

- name: Check K9 Badging
run: |
./gradlew :app-k9mail:checkFossReleaseBadging \
:app-k9mail:checkFullReleaseBadging \
-x assemble \
-x build

build-thunderbird:
name: Build Thunderbird application
runs-on: ubuntu-latest
timeout-minutes: 90
needs: [build-common]
steps:
- name: Checkout the repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle

- name: Build Thunderbird application
run: ./gradlew :app-thunderbird:assemble

- name: Check Thunderbird Badging
run: |
./gradlew :app-thunderbird:checkFossBetaBadging \
:app-thunderbird:checkFossDailyBadging \
:app-thunderbird:checkFossReleaseBadging \
:app-thunderbird:checkFullBetaBadging \
:app-thunderbird:checkFullDailyBadging \
:app-thunderbird:checkFullReleaseBadging \
-x assemble \
-x build

build-ui-catalog:
name: Build UI-catalog application
runs-on: ubuntu-latest
timeout-minutes: 90
needs: [build-common]
steps:
- name: Checkout the repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle

- name: Build App UI-catalog application in Debug mode
run: ./gradlew :app-ui-catalog:assembleDebug

quality-unit-test:
name: Quality - Unit tests
runs-on: ubuntu-latest
timeout-minutes: 90
needs: [build-common]
steps:
- name: Checkout the repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle

- name: Running unit tests
run: ./gradlew testsOnCi --parallel

quality-lint:
name: Quality - Lint
runs-on: ubuntu-latest
timeout-minutes: 90
needs: [build-common]
steps:
- name: Checkout the repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle

- name: Running Android lint
run: ./gradlew lint
35 changes: 35 additions & 0 deletions .github/workflows/build-cli-tools.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: CLI Tools CI

on:
push:
branches:
- main
paths:
- 'cli/**'
pull_request:
paths:
- 'cli/**'

permissions:
contents: read

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

jobs:
build-cli-tools:
name: Build CLI tools
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout the repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Setup Gradle environment
uses: ./.github/actions/setup-gradle

- name: Build CLI tools
run: ./gradlew buildCliTools
Loading
Loading