Skip to content
Merged
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
20 changes: 16 additions & 4 deletions .github/workflows/garm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ concurrency:

jobs:
test:
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
services:
server:
image: ${{ matrix.server == 'stable22' && 'ghcr.io/nextcloud/continuous-integration-shallow-server-php8.0:1' || 'ghcr.io/nextcloud/continuous-integration-shallow-server-php8.3:latest' }}
Expand All @@ -32,6 +32,12 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Free disk space
run: |
df -h /
sudo rm -rf /usr/share/dotnet /usr/share/swift /usr/local/.ghcup /opt/ghc /usr/local/share/boost /usr/local/share/powershell /usr/local/share/chromium /usr/local/julia* /opt/az /opt/microsoft /opt/google
df -h /

- name: configure server
run: |
sudo apt-get update && sudo apt-get install unzip cpu-checker qemu-system-x86 --yes
Expand All @@ -43,19 +49,25 @@ jobs:
docker exec server chmod +x /tmp/configNC.sh
docker exec --user www-data server /tmp/configNC.sh ${{ matrix.server }}
docker exec server /usr/local/bin/run.sh
sudo apt-get clean

- name: set up JDK 21
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: "temurin"
java-version: 21

- name: Setup Gradle
uses: gradle/actions/setup-gradle@8da46b539cd8fe6ab27ca75128919a18d757604c # v6.4.1

- name: Configure gradle daemon
run: |
mkdir -p $HOME/.gradle
echo "org.gradle.jvmargs=-Xmx6g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g" >> $HOME/.gradle/gradle.properties
echo "org.gradle.caching=true" >> $HOME/.gradle/gradle.properties
echo "org.gradle.parallel=true" >> $HOME/.gradle/gradle.properties
echo "org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=768m -XX:+UseSerialGC -Dfile.encoding=UTF-8 --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/java.nio.channels=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED" >> $HOME/.gradle/gradle.properties
echo "kotlin.compiler.execution.strategy=in-process" >> $HOME/.gradle/gradle.properties
echo "org.gradle.workers.max=4" >> $HOME/.gradle/gradle.properties
echo "org.gradle.caching=false" >> $HOME/.gradle/gradle.properties
echo "org.gradle.parallel=false" >> $HOME/.gradle/gradle.properties
echo "org.gradle.configureondemand=true" >> $HOME/.gradle/gradle.properties

- name: Config gplay
Expand Down
7 changes: 5 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
val shotTest = System.getenv("SHOT_TEST") == "true"
val ciBuild = System.getenv("CI") == "true"
val perfAnalysis = project.hasProperty("perfAnalysis")
val instrumentedTestBuild = project.hasProperty("coverage") || shotTest ||
gradle.startParameter.taskNames.any { it.contains("AndroidTest", ignoreCase = true) }
val enableR8 = !instrumentedTestBuild

val allAbis = listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
val localDebugAbis = when (System.getProperty("os.arch")) {
Expand Down Expand Up @@ -138,7 +141,7 @@ android {
enableAndroidTestCoverage = project.hasProperty("coverage")
resConfigs("xxxhdpi")
optimization {
enable = true
enable = enableR8
}
ndk {
abiFilters += if (ciBuild) allAbis else localDebugAbis
Expand Down Expand Up @@ -169,7 +172,7 @@ android {
versionCode = 20220322
versionName = "20220322"
optimization {
enable = true
enable = enableR8
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import com.owncloud.android.utils.MimeType
import org.apache.commons.httpclient.HttpStatus
import org.apache.commons.httpclient.methods.GetMethod
import org.junit.After
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.BeforeClass
Expand Down Expand Up @@ -92,6 +93,8 @@ abstract class AbstractOnServerIT : AbstractIT() {
private const val SERVER_READY_RETRIES = 3
private const val SERVER_READY_RETRY_DELAY_MILLIS = 60_000L

private var isServerUnreachable = false

private val FOLDER_MIME_TYPES = setOf(MimeType.DIRECTORY, MimeType.WEBDAV_FOLDER)
private val LOCAL_COPY_BEHAVIOURS = setOf(
FileUploadWorker.LOCAL_BEHAVIOUR_COPY,
Expand Down Expand Up @@ -179,6 +182,7 @@ abstract class AbstractOnServerIT : AbstractIT() {
}

private fun waitForServer(client: OwnCloudClient, baseUrl: Uri) {
assertFalse("Server not ready! Already unreachable for a previous test class", isServerUnreachable)
val statusRequest = GetMethod("$baseUrl/status.php")

repeat(SERVER_READY_RETRIES) {
Expand All @@ -187,7 +191,8 @@ abstract class AbstractOnServerIT : AbstractIT() {
sleepIgnoringInterrupt(SERVER_READY_RETRY_DELAY_MILLIS)
}

assertTrue("Server not ready!", isServerReady(client, statusRequest))
isServerUnreachable = !isServerReady(client, statusRequest)
assertFalse("Server not ready!", isServerUnreachable)
}

private fun isServerReady(client: OwnCloudClient, statusRequest: GetMethod): Boolean = try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ class FileUploaderIT : AbstractOnServerIT() {
uploadOriginalFile(originalFile)

val replacement = getDummyFile(EMPTY_FILE)
assertTrue(uploadOperation(replacement, NameCollisionPolicy.OVERWRITE).execute(client).isSuccess)
val result = uploadOperation(replacement, NameCollisionPolicy.OVERWRITE).execute(client)
assertTrue(result.toString(), result.isSuccess)

assertRemoteFileLength(REMOTE_PATH, EMPTY_LENGTH)
}
Expand Down

This file was deleted.

Loading
Loading