Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
fd7d4ea
test: fix PermissionError in re-add account test on Windows
anon-pradip Nov 26, 2025
6618780
test: remove skip and issue tag (#732)
anon-pradip Nov 28, 2025
eea2cfe
test: use another folder name (#731)
anon-pradip Nov 28, 2025
186ac8c
wait for file to exist before checking size
individual-it Jul 14, 2025
e68811f
enable vfs in client config
individual-it Jul 14, 2025
ac11deb
enable some VFS tests
individual-it Jul 16, 2025
d55f6e4
only enable vfs on windows
individual-it Jul 16, 2025
3895f6f
test: selective sync for root level file
anon-pradip Sep 8, 2025
5626686
test(refactor): skip selective sync tests because of VFS
anon-pradip Dec 10, 2025
36b1666
ci: re-arrange woodpecker configurations (#769)
saw-jan Jan 1, 2026
3201c35
test(gui): listen for sync events before the file actions (#772)
saw-jan Jan 7, 2026
b2dfcd8
test: wait longer for error messages (#773)
saw-jan Jan 8, 2026
8d11db9
test(gui): use current time if timestamp not found (#779)
saw-jan Jan 16, 2026
41b9d10
test(gui): fix gui tests execution time (#808)
saw-jan Feb 16, 2026
e72b23c
ci: separate cache locations
saw-jan Feb 19, 2026
caa4438
ci: purge cache after executing test workflow
saw-jan Feb 19, 2026
181cc6b
ci: rename client build cache dir
saw-jan Feb 20, 2026
a472f8f
chore: bump opencloud commit hash
saw-jan Feb 23, 2026
c54d34e
ci: use latest rolling opencloud server version (#820)
saw-jan Feb 23, 2026
5e0ad2d
test: fix VFS test scenarios (#813)
saw-jan Feb 24, 2026
a3ffae8
ci: run gui tests only when related files are changed (#826)
saw-jan Mar 3, 2026
1373ee0
test(gui): add vfs tests (#815)
saw-jan Mar 11, 2026
c90f1c0
[POC] test(gui): gui test automation with appium (#857)
saw-jan Apr 13, 2026
8264bae
test: tag smoke test scenarios (#867)
saw-jan Apr 15, 2026
adf553d
test(gui): fix and enable multi-account test scenario (#869)
saw-jan Apr 16, 2026
2beb4b8
test(gui): port tst_deleteFilesFolders suite (#872)
anon-pradip Apr 21, 2026
3fe0b2f
port tst_activity to appium (#868)
prashant-gurung899 Apr 22, 2026
2f5a8ba
test(gui): fix and enable add-account scenarios (#876)
saw-jan Apr 23, 2026
14bf6b7
test(gui): move non-smoke test suites
saw-jan Apr 23, 2026
df42cf3
test(gui): move remaining step files
saw-jan Apr 23, 2026
87a3e31
test(gui): move files-for-upload
saw-jan Apr 23, 2026
5223832
test(gui): fix and enable manual sync scenario (#881)
saw-jan Apr 23, 2026
63a9385
test(gui): port remove account connection scenario to appium (#878)
prashant-gurung899 Apr 24, 2026
ab95b08
port moveFilesFolders test suite to appium (#884)
prashant-gurung899 Apr 27, 2026
4a5c1a2
port syncing test suite to appium (#885)
prashant-gurung899 Apr 27, 2026
6c04daa
test(gui): fix and enable spaces scenarios (#883)
saw-jan Apr 27, 2026
0e4bc3f
test: port tst_edit_files (#875)
anon-pradip Apr 28, 2026
d70efc9
test(gui): enable more syncing tests in appium (#887)
prashant-gurung899 Apr 28, 2026
ad4e2af
test: port tst_loginLogout (#877)
anon-pradip Apr 28, 2026
2cd3e84
test(gui): enable syncing tests (#889)
prashant-gurung899 May 6, 2026
9adebf5
ci: run appium gui tests (#891)
saw-jan May 7, 2026
c24adc3
test: remove obsolete test files (#894)
saw-jan May 7, 2026
37104d3
test(gui): add GUI test reports (#895)
saw-jan May 11, 2026
aaa903f
ci: run GUI test suites parallelly using a matrix (#896)
saw-jan May 11, 2026
2fd4b4a
test: implement screenshot reports (#897)
prashant-gurung899 May 12, 2026
70463d6
refactor(gui-test): bind pyautogui methods to appium element (#901)
saw-jan May 13, 2026
86923d2
ci: build client with vfs (#902)
saw-jan May 13, 2026
2af6d94
ci: fix woodpecker warnings
saw-jan May 13, 2026
3eaf684
test: capture screenshot in CI only
saw-jan May 13, 2026
9d1a48c
test: capture and store video for failed scenarios (#906)
prashant-gurung899 May 18, 2026
d221e3d
test: wait for files sync
saw-jan May 13, 2026
1f0c7ee
test: retry folder expansion
saw-jan May 13, 2026
6f40016
test: check if account is active
saw-jan May 13, 2026
8f13263
test: check sync pattern with force sync for root folder
saw-jan May 13, 2026
3fc54d9
test: check sync using file path
saw-jan May 13, 2026
421faef
test: clear sync messages after each scenario
saw-jan May 14, 2026
3ed7c1c
test: raise exception if multiple elements are found
saw-jan May 14, 2026
37e8769
test: fix multiple elements
saw-jan May 15, 2026
4089b44
test: fix sync activity checks
saw-jan May 15, 2026
8fb0395
test: fix multiple elements
saw-jan May 15, 2026
50e999a
test: wait for toolbar to be enabled
saw-jan May 15, 2026
dcfad71
test: add sync pattern for resource deletion
saw-jan May 18, 2026
154efe0
test: fix element coordinates
saw-jan May 18, 2026
578354e
test(gui): fix and enable activity filter scenario (#910)
saw-jan May 20, 2026
213b9b1
test(gui): fix and enable settings test scenarios (#911)
saw-jan May 20, 2026
7bbdd0e
test(gui): select folders based on the parent position (#912)
saw-jan May 20, 2026
e8e77d7
test(ci): add @skip tag to exclude scenario from CI execution (#926)
Asmitapaudel Jun 2, 2026
5c15c57
test: port account test to appium (#921)
Asmitapaudel Jun 3, 2026
22d9a32
test(gui): enable move files and folders test (#931)
Asmitapaudel Jun 4, 2026
71d0291
test(activity): filter not synced activities (Linux only)
Asmitapaudel May 28, 2026
38c8434
test(activity): Add should_exist handling in _check_activities for sy…
Asmitapaudel Jun 3, 2026
33117a0
test(delete): Delete multiple files
Asmitapaudel Jun 2, 2026
e2dfd98
test: move wait_for into utils helper
saw-jan Jun 10, 2026
d53b070
test: rename different timeouts
saw-jan Jun 10, 2026
6a30d12
enable edit and remove acc connection tests
prashant-gurung899 Jun 3, 2026
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
3 changes: 0 additions & 3 deletions .woodpecker.env

This file was deleted.

69 changes: 45 additions & 24 deletions .woodpecker/build.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variables:
- &squish_image 'opencloudeu/squish@sha256:6eaecc218044020f49f24fd29b6bdc052e8170699a762687b10398b353e5fcda'
- &alpine_image 'alpine:3.22.4'
- &build_image 'opencloudeu/desktop-client-build:ubuntu-24.04-qt6.10'
- &minio_image 'minio/mc:RELEASE.2021-10-07T04-19-58Z'
- &minio_environment
AWS_ACCESS_KEY_ID:
Expand All @@ -9,28 +9,21 @@ variables:
from_secret: cache_s3_secret_key
CACHE_BUCKET:
from_secret: cache_s3_bucket
MC_HOST: "https://s3.ci.opencloud.eu"

steps:
- name: fix-permissions
image: owncloud/ubuntu:20.04
commands:
- chmod o+w /woodpecker/desktop/ -R
- name: build-client-for-ui-tests
image: *squish_image
commands:
- mkdir -p /woodpecker/desktop/build
- cd /woodpecker/desktop/build
- cmake %s -S .. -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
- ninja
- name: upload-desktop-client-cache
commands:
- mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
- mc cp -a -r /woodpecker/desktop/build/bin s3/$CACHE_BUCKET/desktop-build/${CI_COMMIT_SHA}/
- mc ls --recursive s3/$CACHE_BUCKET/desktop-build
environment:
<<: *minio_environment
image: *minio_image
MC_HOST: 'https://s3.ci.opencloud.eu'
- &trigger_path
include:
- test/gui/**
- src/**
- cmake/**
- THEME.cmake
- VERSION.cmake
- CMakeLists.txt
- OPENCLOUD.cmake
- .woodpecker/**
exclude:
- .woodpecker/ready-release-go.yaml
- .woodpecker/translation.yaml
- test/gui/manual-test-plan

when:
- branch:
Expand All @@ -39,12 +32,40 @@ when:
event:
- push
- manual
path:
<<: *trigger_path
- event: pull_request
path:
<<: *trigger_path
evaluate: |
!(CI_COMMIT_SOURCE_BRANCH matches "next-release/(main|stable-*)" && CI_COMMIT_AUTHOR == "openclouders")
- event: tag
- event: cron
cron: nightly*

workspace:
base: /woodpecker/
path: desktop

steps:
- name: fix-permissions
image: *alpine_image
commands:
- chmod o+w $CI_WORKSPACE/ -R

- name: build-client-for-ui-tests
image: *build_image
commands:
- mkdir -p build
- cd build
- cmake -GNinja -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Debug -S ..
- ninja

- name: upload-desktop-client-cache
image: *minio_image
environment:
<<: *minio_environment
commands:
- mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
- mc cp -a -r $CI_WORKSPACE/build/bin s3/$CACHE_BUCKET/desktop/client-build/${CI_COMMIT_SHA}/
- mc ls --recursive s3/$CACHE_BUCKET/desktop/client-build
70 changes: 0 additions & 70 deletions .woodpecker/cache-opencloud.yaml

This file was deleted.

68 changes: 0 additions & 68 deletions .woodpecker/cache-pnpm.yaml

This file was deleted.

112 changes: 78 additions & 34 deletions .woodpecker/cache-python.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
variables:
- &squish_image 'opencloudeu/squish@sha256:6eaecc218044020f49f24fd29b6bdc052e8170699a762687b10398b353e5fcda'
- &build_image 'opencloudeu/desktop-client-build:ubuntu-24.04-qt6.10'
- &minio_image 'minio/mc:RELEASE.2021-10-07T04-19-58Z'
- &minio_environment
AWS_ACCESS_KEY_ID:
Expand All @@ -9,38 +8,21 @@ variables:
from_secret: cache_s3_secret_key
CACHE_BUCKET:
from_secret: cache_s3_bucket
MC_HOST: "https://s3.ci.opencloud.eu"

steps:
- name: check-python-cache
commands:
- mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
- mc ls s3/$CACHE_BUCKET/desktop-build
- bash test/gui/woodpecker/script.sh check_python_cache
environment:
<<: *minio_environment
image: *minio_image
- name: install-python-modules
commands:
- . ./.woodpecker.env
- if $PYTHON_CACHE_FOUND; then exit 0; fi
- make -C test/gui/ pip-install
- python3.10 -m pip list -v
- requirements_sha=$(sha1sum test/gui/requirements.txt | cut -d" " -f1)
- tar -czvf /woodpecker/desktop/python-cache-$requirements_sha.tar.gz lib/python3.10/site-packages
image: *squish_image
environment:
PYTHONUSERBASE: /woodpecker/desktop
- name: upload-python-cache
commands:
- . ./.woodpecker.env
- if $PYTHON_CACHE_FOUND; then exit 0; fi
- mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
- mc cp -r -a /woodpecker/desktop/python-cache*.tar.gz s3/$CACHE_BUCKET/desktop-build/
- mc ls s3/$CACHE_BUCKET/desktop-build
environment:
<<: *minio_environment
image: *minio_image
MC_HOST: 'https://s3.ci.opencloud.eu'
- &trigger_path
include:
- test/gui/**
- src/**
- cmake/**
- THEME.cmake
- VERSION.cmake
- CMakeLists.txt
- OPENCLOUD.cmake
- .woodpecker/**
exclude:
- .woodpecker/ready-release-go.yaml
- .woodpecker/translation.yaml
- test/gui/manual-test-plan

when:
- branch:
Expand All @@ -49,12 +31,74 @@ when:
event:
- push
- manual
path:
<<: *trigger_path
- event: tag
- event: pull_request
path:
<<: *trigger_path
evaluate: |
!(CI_COMMIT_SOURCE_BRANCH matches "next-release/(main|stable-*)" && CI_COMMIT_AUTHOR == "openclouders")
- event: cron
cron: nightly*

workspace:
base: /woodpecker/
path: desktop

steps:
- name: check-caches
image: *minio_image
environment:
<<: *minio_environment
commands:
- mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
- bash test/gui/woodpecker/script.sh check_python_cache
- bash test/gui/woodpecker/script.sh check_browsers_cache

- name: install-python-modules
image: *build_image
commands:
- . ./.woodpecker.env
- if $PYTHON_CACHE_FOUND; then exit 0; fi
- cd test/gui/
- python3 -m venv .venv --system-site-packages
- . .venv/bin/activate
- make pip-install
- tar -czf python-cache.tar.gz .venv

- name: install-browsers
image: *build_image
environment:
PLAYWRIGHT_BROWSERS_PATH: /woodpecker/desktop/test/gui/.playwright
commands:
- . ./.woodpecker.env
- if $BROWSER_CACHE_FOUND; then exit 0; fi
- cd test/gui/
- python3 -m venv .venv --system-site-packages
- . .venv/bin/activate
- grep "^playwright" requirements.txt | pip install -r /dev/stdin
- make install-chromium
- tar -czf playwright-browsers.tar.gz .playwright

- name: upload-browsers-cache
image: *minio_image
environment:
<<: *minio_environment
commands:
- . ./.woodpecker.env
- if $BROWSER_CACHE_FOUND; then exit 0; fi
- playwright_version=$(bash test/gui/woodpecker/script.sh get_playwright_version)
- mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
- mc cp -r -a $CI_WORKSPACE/test/gui/playwright-browsers.tar.gz s3/$CACHE_BUCKET/desktop/browsers-cache/$playwright_version/

- name: upload-python-cache
image: *minio_image
environment:
<<: *minio_environment
commands:
- . ./.woodpecker.env
- if $PYTHON_CACHE_FOUND; then exit 0; fi
- requirements_sha=$(bash test/gui/woodpecker/script.sh get_requirementstxt_hash)
- mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
- mc cp -r -a $CI_WORKSPACE/test/gui/python-cache*.tar.gz s3/$CACHE_BUCKET/desktop/python-cache/$requirements_sha/
Loading
Loading