You've already forked element-x-android
mirror of
https://github.com/element-hq/element-x-android.git
synced 2026-10-23 18:49:00 +03:00
The GitHub cache is limited to 10 GB per repository. About 15 jobs were writing the Gradle cache on develop, each adding up to several GB (dependencies, transforms and build cache), so the cache was always at the limit and entries were evicted. A job could then restore a Gradle User Home without its matching dependencies entry, which broke the nightly build on all the PRs. Only the debug build job and the unit tests job now write the cache on develop. All the other jobs only read it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
73 lines
3.1 KiB
YAML
73 lines
3.1 KiB
YAML
name: Record screenshots
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
types: [ labeled ]
|
|
|
|
permissions: {}
|
|
|
|
# Enrich gradle.properties for CI/CD
|
|
env:
|
|
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g -Dsonar.gradle.skipCompile=true
|
|
CI_GRADLE_ARG_PROPERTIES: --no-configuration-cache
|
|
|
|
jobs:
|
|
record:
|
|
permissions:
|
|
# Need write permissions on PRs to remove the label "Record-Screenshots"
|
|
pull-requests: write
|
|
contents: write
|
|
name: Record screenshots on branch ${{ github.event.pull_request.head.ref || github.ref_name }}
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'workflow_dispatch' || github.event.label.name == 'Record-Screenshots'
|
|
|
|
steps:
|
|
- name: Free Disk Space (Ubuntu)
|
|
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
|
|
with:
|
|
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
|
|
tool-cache: true
|
|
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
|
|
android: false
|
|
dotnet: true
|
|
haskell: true
|
|
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
|
|
large-packages: false
|
|
docker-images: true
|
|
swap-storage: false
|
|
|
|
- name: Remove Record-Screenshots label
|
|
if: github.event.label.name == 'Record-Screenshots'
|
|
uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1.3.0
|
|
with:
|
|
labels: Record-Screenshots
|
|
- name: ⏬ Checkout with LFS (PR)
|
|
if: github.event.label.name == 'Record-Screenshots'
|
|
uses: nschloe/action-cached-lfs-checkout@385a8ecc719e50b8c71af6ab01a624b486b7c3bc # v1.2.5
|
|
with:
|
|
persist-credentials: false
|
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || github.ref }}
|
|
- name: ⏬ Checkout with LFS (Branch)
|
|
if: github.event_name == 'workflow_dispatch'
|
|
uses: nschloe/action-cached-lfs-checkout@385a8ecc719e50b8c71af6ab01a624b486b7c3bc # v1.2.5
|
|
with:
|
|
persist-credentials: false
|
|
- name: ☕️ Use JDK 21
|
|
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
|
|
with:
|
|
distribution: 'temurin' # See 'Supported distributions' for available options
|
|
java-version: '21'
|
|
# Add gradle cache, this should speed up the process
|
|
- name: Configure gradle
|
|
uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0
|
|
with:
|
|
cache-read-only: true # Only the debug build and unit tests jobs write the Gradle cache, see build.yml
|
|
- name: Record screenshots
|
|
id: record
|
|
run: ./.github/workflows/scripts/recordScreenshots.sh
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN || secrets.GITHUB_TOKEN }}
|
|
GITHUB_REPOSITORY: ${{ secrets.GITHUB_REPOSITORY }}
|
|
GRADLE_ARGS: ${{ env.CI_GRADLE_ARG_PROPERTIES }}
|