290
.github/workflows/maestro-local.yml
vendored
@@ -1,149 +1,163 @@
|
|||||||
name: Maestro (local)
|
name: Maestro (local) [disabled]
|
||||||
|
|
||||||
# Run this flow only when APK Build workflow completes
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
pull_request:
|
|
||||||
|
|
||||||
permissions: {}
|
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
|
|
||||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
|
|
||||||
ARCH: x86_64
|
|
||||||
DEVICE: pixel_7_pro
|
|
||||||
API_LEVEL: 33
|
|
||||||
TARGET: google_apis
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-apk:
|
disabled:
|
||||||
name: Build APK
|
name: Disabled in fork
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
concurrency:
|
|
||||||
group: ${{ format('maestro-build-{0}', github.ref) }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
steps:
|
steps:
|
||||||
- name: Free Disk Space (Ubuntu)
|
- run: echo "Maestro workflow is disabled in this fork."
|
||||||
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
|
|
||||||
|
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
# name: Maestro (local)
|
||||||
with:
|
|
||||||
# Ensure we are building the branch and not the branch after being merged on develop
|
|
||||||
# https://github.com/actions/checkout/issues/881
|
|
||||||
ref: ${{ github.ref }}
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
|
||||||
name: Use JDK 21
|
|
||||||
with:
|
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
|
||||||
java-version: '21'
|
|
||||||
- name: Configure gradle
|
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
|
||||||
with:
|
|
||||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
|
||||||
- name: Assemble debug APK
|
|
||||||
run: ./gradlew :app:assembleGplayDebug $CI_GRADLE_ARG_PROPERTIES
|
|
||||||
env:
|
|
||||||
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
|
||||||
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
|
||||||
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
|
||||||
- name: Upload APK as artifact
|
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
|
||||||
with:
|
|
||||||
name: elementx-apk-maestro
|
|
||||||
path: |
|
|
||||||
app/build/outputs/apk/gplay/debug/app-gplay-x86_64-debug.apk
|
|
||||||
retention-days: 5
|
|
||||||
overwrite: true
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
maestro-cloud:
|
# # Run this flow only when APK Build workflow completes
|
||||||
name: Maestro test suite
|
# on:
|
||||||
runs-on: ubuntu-latest
|
# workflow_dispatch:
|
||||||
needs: [ build-apk ]
|
# pull_request:
|
||||||
# Allow only one to run at a time, since they use the same environment.
|
|
||||||
# Otherwise, tests running in parallel can break each other.
|
# permissions: {}
|
||||||
concurrency:
|
|
||||||
group: maestro-test
|
# # Enrich gradle.properties for CI/CD
|
||||||
steps:
|
# env:
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
# GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
|
||||||
if: (github.event_name == 'pull_request' && github.event.pull_request.fork == null) || github.event_name == 'workflow_dispatch'
|
# CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
|
||||||
with:
|
# ARCH: x86_64
|
||||||
# Ensure we are building the branch and not the branch after being merged on develop
|
# DEVICE: pixel_7_pro
|
||||||
# https://github.com/actions/checkout/issues/881
|
# API_LEVEL: 33
|
||||||
ref: ${{ github.ref }}
|
# TARGET: google_apis
|
||||||
persist-credentials: false
|
|
||||||
- name: Download APK artifact from previous job
|
# jobs:
|
||||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
# build-apk:
|
||||||
with:
|
# name: Build APK
|
||||||
name: elementx-apk-maestro
|
# runs-on: ubuntu-latest
|
||||||
- name: Enable KVM group perms
|
# concurrency:
|
||||||
run: |
|
# group: ${{ format('maestro-build-{0}', github.ref) }}
|
||||||
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
# cancel-in-progress: true
|
||||||
sudo udevadm control --reload-rules
|
# steps:
|
||||||
sudo udevadm trigger --name-match=kvm
|
# - name: Free Disk Space (Ubuntu)
|
||||||
- name: Install maestro
|
# uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
|
||||||
run: curl -fsSL "https://get.maestro.mobile.dev" | bash
|
# with:
|
||||||
- name: Run Maestro tests in emulator
|
# # This might remove tools that are actually needed, if set to "true" but frees about 6 GB
|
||||||
id: maestro_test
|
# tool-cache: true
|
||||||
uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0
|
# # All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
|
||||||
continue-on-error: true
|
# android: false
|
||||||
env:
|
# dotnet: true
|
||||||
MAESTRO_USERNAME: maestroelement
|
# haskell: true
|
||||||
MAESTRO_PASSWORD: ${{ secrets.MATRIX_MAESTRO_ACCOUNT_PASSWORD }}
|
# # This takes way too long to run (~2 minutes) and it saves only ~5.5GB
|
||||||
MAESTRO_RECOVERY_KEY: ${{ secrets.MATRIX_MAESTRO_ACCOUNT_RECOVERY_KEY }}
|
# large-packages: false
|
||||||
MAESTRO_ROOM_NAME: MyRoom
|
# docker-images: true
|
||||||
MAESTRO_INVITEE1_MXID: "@maestroelement2:matrix.org"
|
# swap-storage: false
|
||||||
MAESTRO_INVITEE2_MXID: "@maestroelement3:matrix.org"
|
#
|
||||||
MAESTRO_APP_ID: io.element.android.x.debug
|
# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
# with:
|
||||||
api-level: ${{ env.API_LEVEL }}
|
# # Ensure we are building the branch and not the branch after being merged on develop
|
||||||
arch: ${{ env.ARCH }}
|
# # https://github.com/actions/checkout/issues/881
|
||||||
profile: ${{ env.DEVICE }}
|
# ref: ${{ github.ref }}
|
||||||
target: ${{ env.TARGET }}
|
# persist-credentials: false
|
||||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
# - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
disable-animations: true
|
# name: Use JDK 21
|
||||||
disk-size: 3G
|
# with:
|
||||||
script: |
|
# distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
.github/workflows/scripts/maestro/maestro-local-with-screen-recording.sh app-gplay-x86_64-debug.apk
|
# java-version: "21"
|
||||||
- name: Upload test results
|
# - name: Configure gradle
|
||||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
# uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
# with:
|
||||||
name: test-results
|
# cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||||
path: |
|
# - name: Assemble debug APK
|
||||||
~/.maestro/tests/**
|
# run: ./gradlew :app:assembleGplayDebug $CI_GRADLE_ARG_PROPERTIES
|
||||||
retention-days: 5
|
# env:
|
||||||
overwrite: true
|
# ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
||||||
if-no-files-found: error
|
# ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
||||||
- name: Update summary (success)
|
# ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
||||||
if: steps.maestro_test.outcome == 'success'
|
# - name: Upload APK as artifact
|
||||||
run: |
|
# uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
||||||
echo "### Maestro tests worked :rocket:!" >> $GITHUB_STEP_SUMMARY
|
# with:
|
||||||
- name: Update summary (failure)
|
# name: elementx-apk-maestro
|
||||||
if: steps.maestro_test.outcome != 'success'
|
# path: |
|
||||||
run: |
|
# app/build/outputs/apk/gplay/debug/app-gplay-x86_64-debug.apk
|
||||||
LOG_FILE=$(find ~/.maestro/tests/ -name maestro.log)
|
# retention-days: 5
|
||||||
echo "Log file: $LOG_FILE"
|
# overwrite: true
|
||||||
LOG_LINES="$(tail -n 30 $LOG_FILE)"
|
# if-no-files-found: error
|
||||||
echo "### :x: Maestro tests failed...
|
|
||||||
|
# maestro-cloud:
|
||||||
\`\`\`
|
# name: Maestro test suite
|
||||||
$LOG_LINES
|
# runs-on: ubuntu-latest
|
||||||
\`\`\`" >> $GITHUB_STEP_SUMMARY
|
# needs: [build-apk]
|
||||||
- name: Fail the workflow in case of error in test
|
# # Allow only one to run at a time, since they use the same environment.
|
||||||
if: steps.maestro_test.outcome != 'success'
|
# # Otherwise, tests running in parallel can break each other.
|
||||||
run: |
|
# concurrency:
|
||||||
echo "Maestro tests failed. Please check the logs."
|
# group: maestro-test
|
||||||
exit 1
|
# steps:
|
||||||
|
# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
|
# if: (github.event_name == 'pull_request' && github.event.pull_request.fork == null) || github.event_name == 'workflow_dispatch'
|
||||||
|
# with:
|
||||||
|
# # Ensure we are building the branch and not the branch after being merged on develop
|
||||||
|
# # https://github.com/actions/checkout/issues/881
|
||||||
|
# ref: ${{ github.ref }}
|
||||||
|
# persist-credentials: false
|
||||||
|
# - name: Download APK artifact from previous job
|
||||||
|
# uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||||
|
# with:
|
||||||
|
# name: elementx-apk-maestro
|
||||||
|
# - name: Enable KVM group perms
|
||||||
|
# run: |
|
||||||
|
# echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
||||||
|
# sudo udevadm control --reload-rules
|
||||||
|
# sudo udevadm trigger --name-match=kvm
|
||||||
|
# - name: Install maestro
|
||||||
|
# run: curl -fsSL "https://get.maestro.mobile.dev" | bash
|
||||||
|
# - name: Run Maestro tests in emulator
|
||||||
|
# id: maestro_test
|
||||||
|
# uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0
|
||||||
|
# continue-on-error: true
|
||||||
|
# env:
|
||||||
|
# MAESTRO_USERNAME: maestroelement
|
||||||
|
# MAESTRO_PASSWORD: ${{ secrets.MATRIX_MAESTRO_ACCOUNT_PASSWORD }}
|
||||||
|
# MAESTRO_RECOVERY_KEY: ${{ secrets.MATRIX_MAESTRO_ACCOUNT_RECOVERY_KEY }}
|
||||||
|
# MAESTRO_ROOM_NAME: MyRoom
|
||||||
|
# MAESTRO_INVITEE1_MXID: "@maestroelement2:matrix.org"
|
||||||
|
# MAESTRO_INVITEE2_MXID: "@maestroelement3:matrix.org"
|
||||||
|
# MAESTRO_APP_ID: io.element.android.x.debug
|
||||||
|
# with:
|
||||||
|
# api-level: ${{ env.API_LEVEL }}
|
||||||
|
# arch: ${{ env.ARCH }}
|
||||||
|
# profile: ${{ env.DEVICE }}
|
||||||
|
# target: ${{ env.TARGET }}
|
||||||
|
# emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
# disable-animations: true
|
||||||
|
# disk-size: 3G
|
||||||
|
# script: |
|
||||||
|
# .github/workflows/scripts/maestro/maestro-local-with-screen-recording.sh app-gplay-x86_64-debug.apk
|
||||||
|
# - name: Upload test results
|
||||||
|
# uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
||||||
|
# with:
|
||||||
|
# name: test-results
|
||||||
|
# path: |
|
||||||
|
# ~/.maestro/tests/**
|
||||||
|
# retention-days: 5
|
||||||
|
# overwrite: true
|
||||||
|
# if-no-files-found: error
|
||||||
|
# - name: Update summary (success)
|
||||||
|
# if: steps.maestro_test.outcome == 'success'
|
||||||
|
# run: |
|
||||||
|
# echo "### Maestro tests worked :rocket:!" >> $GITHUB_STEP_SUMMARY
|
||||||
|
# - name: Update summary (failure)
|
||||||
|
# if: steps.maestro_test.outcome != 'success'
|
||||||
|
# run: |
|
||||||
|
# LOG_FILE=$(find ~/.maestro/tests/ -name maestro.log)
|
||||||
|
# echo "Log file: $LOG_FILE"
|
||||||
|
# LOG_LINES="$(tail -n 30 $LOG_FILE)"
|
||||||
|
# echo "### :x: Maestro tests failed...
|
||||||
|
#
|
||||||
|
# \`\`\`
|
||||||
|
# $LOG_LINES
|
||||||
|
# \`\`\`" >> $GITHUB_STEP_SUMMARY
|
||||||
|
# - name: Fail the workflow in case of error in test
|
||||||
|
# if: steps.maestro_test.outcome != 'success'
|
||||||
|
# run: |
|
||||||
|
# echo "Maestro tests failed. Please check the logs."
|
||||||
|
# exit 1
|
||||||
|
|||||||
114
.github/workflows/pull_request.yml
vendored
@@ -1,7 +1,7 @@
|
|||||||
name: Pull Request
|
name: Pull Request
|
||||||
on:
|
on:
|
||||||
pull_request_target:
|
pull_request_target:
|
||||||
types: [ opened, edited, labeled, unlabeled, synchronize ]
|
types: [opened, edited, labeled, unlabeled, synchronize]
|
||||||
workflow_call: # zizmor: ignore[dangerous-triggers]
|
workflow_call: # zizmor: ignore[dangerous-triggers]
|
||||||
secrets:
|
secrets:
|
||||||
ELEMENT_BOT_TOKEN:
|
ELEMENT_BOT_TOKEN:
|
||||||
@@ -23,60 +23,60 @@ jobs:
|
|||||||
script: |
|
script: |
|
||||||
core.setFailed("PR has been labeled with X-Blocked; it cannot be merged.");
|
core.setFailed("PR has been labeled with X-Blocked; it cannot be merged.");
|
||||||
|
|
||||||
community-prs:
|
# community-prs:
|
||||||
name: Label Community PRs
|
# name: Label Community PRs
|
||||||
runs-on: ubuntu-latest
|
# runs-on: ubuntu-latest
|
||||||
if: github.event.action == 'opened'
|
# if: github.event.action == 'opened'
|
||||||
permissions:
|
# permissions:
|
||||||
pull-requests: write
|
# pull-requests: write
|
||||||
steps:
|
# steps:
|
||||||
- name: Check membership
|
# - name: Check membership
|
||||||
if: github.event.pull_request.user.login != 'renovate[bot]'
|
# if: github.event.pull_request.user.login != 'renovate[bot]'
|
||||||
uses: tspascoal/get-user-teams-membership@57e9f42acd78f4d0f496b3be4368fc5f62696662 # v3
|
# uses: tspascoal/get-user-teams-membership@57e9f42acd78f4d0f496b3be4368fc5f62696662 # v3
|
||||||
id: teams
|
# id: teams
|
||||||
with:
|
# with:
|
||||||
username: ${{ github.event.pull_request.user.login }}
|
# username: ${{ github.event.pull_request.user.login }}
|
||||||
organization: element-hq
|
# organization: element-hq
|
||||||
team: Vector Core
|
# team: Vector Core
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN_READ_ORG }}
|
# GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN_READ_ORG }}
|
||||||
- name: Add label
|
# - name: Add label
|
||||||
if: steps.teams.outputs.isTeamMember == 'false'
|
# if: steps.teams.outputs.isTeamMember == 'false'
|
||||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
# uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||||
with:
|
# with:
|
||||||
script: |
|
# script: |
|
||||||
github.rest.issues.addLabels({
|
# github.rest.issues.addLabels({
|
||||||
issue_number: context.issue.number,
|
# issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
# owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
# repo: context.repo.repo,
|
||||||
labels: ['Z-Community-PR']
|
# labels: ['Z-Community-PR']
|
||||||
});
|
# });
|
||||||
|
|
||||||
close-if-fork-develop:
|
# close-if-fork-develop:
|
||||||
name: Forbid develop branch fork contributions
|
# name: Forbid develop branch fork contributions
|
||||||
runs-on: ubuntu-latest
|
# runs-on: ubuntu-latest
|
||||||
permissions:
|
# permissions:
|
||||||
# Require to comment and close the PR.
|
# # Require to comment and close the PR.
|
||||||
pull-requests: write
|
# pull-requests: write
|
||||||
if: >
|
# if: >
|
||||||
github.event.action == 'opened' &&
|
# github.event.action == 'opened' &&
|
||||||
github.event.pull_request.head.ref == 'develop' &&
|
# github.event.pull_request.head.ref == 'develop' &&
|
||||||
github.event.pull_request.head.repo.full_name != github.repository
|
# github.event.pull_request.head.repo.full_name != github.repository
|
||||||
steps:
|
# steps:
|
||||||
- name: Close pull request
|
# - name: Close pull request
|
||||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
# uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||||
with:
|
# with:
|
||||||
script: |
|
# script: |
|
||||||
github.rest.issues.createComment({
|
# github.rest.issues.createComment({
|
||||||
issue_number: context.issue.number,
|
# issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
# owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
# repo: context.repo.repo,
|
||||||
body: "Thanks for opening this pull request, unfortunately we do not accept contributions from the main" +
|
# body: "Thanks for opening this pull request, unfortunately we do not accept contributions from the main" +
|
||||||
" branch of your fork, please re-open once you switch to an alternative branch for everyone's sanity.",
|
# " branch of your fork, please re-open once you switch to an alternative branch for everyone's sanity.",
|
||||||
});
|
# });
|
||||||
|
#
|
||||||
github.rest.pulls.update({
|
# github.rest.pulls.update({
|
||||||
pull_number: context.issue.number,
|
# pull_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
# owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
# repo: context.repo.repo,
|
||||||
state: 'closed'
|
# state: 'closed'
|
||||||
});
|
# });
|
||||||
|
|||||||
46
.github/workflows/quality.yml
vendored
@@ -5,7 +5,7 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
merge_group:
|
merge_group:
|
||||||
push:
|
push:
|
||||||
branches: [ main, develop ]
|
branches: [main, develop]
|
||||||
|
|
||||||
permissions: {}
|
permissions: {}
|
||||||
|
|
||||||
@@ -71,8 +71,8 @@ jobs:
|
|||||||
- name: Use JDK 21
|
- name: Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
java-version: "21"
|
||||||
- name: Configure gradle
|
- name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
with:
|
||||||
@@ -110,8 +110,8 @@ jobs:
|
|||||||
- name: Use JDK 21
|
- name: Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
java-version: "21"
|
||||||
- name: Configure gradle
|
- name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
with:
|
||||||
@@ -151,8 +151,8 @@ jobs:
|
|||||||
- name: Use JDK 21
|
- name: Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
java-version: "21"
|
||||||
- name: Configure gradle
|
- name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
with:
|
||||||
@@ -185,8 +185,8 @@ jobs:
|
|||||||
- name: Use JDK 21
|
- name: Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
java-version: "21"
|
||||||
- name: Configure gradle
|
- name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
with:
|
||||||
@@ -230,8 +230,8 @@ jobs:
|
|||||||
- name: Use JDK 21
|
- name: Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
java-version: "21"
|
||||||
- name: Configure gradle
|
- name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
with:
|
||||||
@@ -271,8 +271,8 @@ jobs:
|
|||||||
- name: Use JDK 21
|
- name: Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
java-version: "21"
|
||||||
- name: Configure gradle
|
- name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
with:
|
||||||
@@ -327,16 +327,16 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
severity: warning
|
severity: warning
|
||||||
|
|
||||||
zizmor:
|
# zizmor:
|
||||||
name: Run zizmor
|
# name: Run zizmor
|
||||||
runs-on: ubuntu-latest
|
# runs-on: ubuntu-latest
|
||||||
permissions:
|
# permissions:
|
||||||
security-events: write # Required for upload-sarif (used by zizmor-action) to upload SARIF files.
|
# security-events: write # Required for upload-sarif (used by zizmor-action) to upload SARIF files.
|
||||||
steps:
|
# steps:
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
# with:
|
||||||
persist-credentials: false
|
# persist-credentials: false
|
||||||
- uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2
|
# - uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2
|
||||||
|
|
||||||
upload_reports:
|
upload_reports:
|
||||||
name: Project Check Suite
|
name: Project Check Suite
|
||||||
|
|||||||
92
.github/workflows/sonar.yml
vendored
@@ -5,7 +5,7 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
merge_group:
|
merge_group:
|
||||||
push:
|
push:
|
||||||
branches: [ main, develop ]
|
branches: [main, develop]
|
||||||
|
|
||||||
permissions: {}
|
permissions: {}
|
||||||
|
|
||||||
@@ -16,48 +16,48 @@ env:
|
|||||||
GROUP: ${{ format('sonar-{0}', github.ref) }}
|
GROUP: ${{ format('sonar-{0}', github.ref) }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
sonar:
|
# sonar:
|
||||||
name: Sonar Quality Checks
|
# name: Sonar Quality Checks
|
||||||
runs-on: ubuntu-latest
|
# runs-on: ubuntu-latest
|
||||||
# Allow all jobs on main and develop. Just one per PR.
|
# # Allow all jobs on main and develop. Just one per PR.
|
||||||
concurrency:
|
# concurrency:
|
||||||
group: ${{ format('sonar-{0}', github.ref) }}
|
# group: ${{ format('sonar-{0}', github.ref) }}
|
||||||
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }}
|
# cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }}
|
||||||
steps:
|
# steps:
|
||||||
- name: Free Disk Space (Ubuntu)
|
# - name: Free Disk Space (Ubuntu)
|
||||||
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
|
# uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
|
||||||
with:
|
# with:
|
||||||
# This might remove tools that are actually needed, if set to "true" but frees about 6 GB
|
# # This might remove tools that are actually needed, if set to "true" but frees about 6 GB
|
||||||
tool-cache: true
|
# tool-cache: true
|
||||||
# All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
|
# # All of these default to true, but we should only need the 'android' one (and maybe swap-storage?)
|
||||||
android: false
|
# android: false
|
||||||
dotnet: true
|
# dotnet: true
|
||||||
haskell: true
|
# haskell: true
|
||||||
# This takes way too long to run (~2 minutes) and it saves only ~5.5GB
|
# # This takes way too long to run (~2 minutes) and it saves only ~5.5GB
|
||||||
large-packages: false
|
# large-packages: false
|
||||||
docker-images: true
|
# docker-images: true
|
||||||
swap-storage: false
|
# swap-storage: false
|
||||||
|
#
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
with:
|
# with:
|
||||||
# Ensure we are building the branch and not the branch after being merged on develop
|
# # Ensure we are building the branch and not the branch after being merged on develop
|
||||||
# https://github.com/actions/checkout/issues/881
|
# # https://github.com/actions/checkout/issues/881
|
||||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }}
|
# ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }}
|
||||||
persist-credentials: false
|
# persist-credentials: false
|
||||||
- name: Use JDK 21
|
# - name: Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
# uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
# with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
# distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
# java-version: "21"
|
||||||
- name: Configure gradle
|
# - name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
# uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
# with:
|
||||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
# cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||||
- name: Build debug code and test fixtures
|
# - name: Build debug code and test fixtures
|
||||||
run: ./gradlew assembleGplayDebug createFullJarDebugTestFixtures :app:createFullJarGplayDebugTestFixtures $CI_GRADLE_ARG_PROPERTIES
|
# run: ./gradlew assembleGplayDebug createFullJarDebugTestFixtures :app:createFullJarGplayDebugTestFixtures $CI_GRADLE_ARG_PROPERTIES
|
||||||
- name: 🔊 Publish results to Sonar
|
# - name: 🔊 Publish results to Sonar
|
||||||
env:
|
# env:
|
||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||||
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
# ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||||
if: ${{ always() && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
|
# if: ${{ always() && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
|
||||||
run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES
|
# run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
|||||||
22
.github/workflows/tests.yml
vendored
@@ -5,7 +5,7 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
merge_group:
|
merge_group:
|
||||||
push:
|
push:
|
||||||
branches: [ main, develop ]
|
branches: [main, develop]
|
||||||
|
|
||||||
permissions: {}
|
permissions: {}
|
||||||
|
|
||||||
@@ -65,8 +65,8 @@ jobs:
|
|||||||
- name: ☕️ Use JDK 21
|
- name: ☕️ Use JDK 21
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
|
||||||
with:
|
with:
|
||||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
distribution: "temurin" # See 'Supported distributions' for available options
|
||||||
java-version: '21'
|
java-version: "21"
|
||||||
- name: Configure gradle
|
- name: Configure gradle
|
||||||
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
|
||||||
with:
|
with:
|
||||||
@@ -101,16 +101,16 @@ jobs:
|
|||||||
if: failure()
|
if: failure()
|
||||||
run: |
|
run: |
|
||||||
echo """## Tests failed!
|
echo """## Tests failed!
|
||||||
|
|
||||||
""" >> $GITHUB_STEP_SUMMARY
|
""" >> $GITHUB_STEP_SUMMARY
|
||||||
python3 .github/workflows/scripts/parse_test_failures.py . >> $GITHUB_STEP_SUMMARY
|
python3 .github/workflows/scripts/parse_test_failures.py . >> $GITHUB_STEP_SUMMARY
|
||||||
echo "---" >> $GITHUB_STEP_SUMMARY
|
echo "---" >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
# https://github.com/codecov/codecov-action
|
# https://github.com/codecov/codecov-action
|
||||||
- name: ☂️ Upload coverage reports to codecov
|
# - name: ☂️ Upload coverage reports to codecov
|
||||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
# uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||||
with:
|
# with:
|
||||||
fail_ci_if_error: true
|
# fail_ci_if_error: true
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
# token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
files: build/reports/kover/reportMerged.xml
|
# files: build/reports/kover/reportMerged.xml
|
||||||
verbose: true
|
# verbose: true
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 710 B |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 708 B |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 916 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 574 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 502 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 764 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 896 B |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 874 B |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 404 KiB After Width: | Height: | Size: 440 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 60 KiB |