|
1 | | -# Update Testing |
| 1 | +# Android Update Testing |
2 | 2 |
|
3 | | -This project verifies that upgrading from an older version of the app to a newer one does not cause crashes or break functionality. |
| 3 | +<!-- OSPO-managed README | Generated: 2026-04-16 | v2 --> |
4 | 4 |
|
5 | | -The tests in this repository are designed to run within a CI workflow that builds both the older and newer versions for every pull request. |
| 5 | +[](LICENSE) [](https://kiteworks.com/opensource) |
6 | 6 |
|
7 | | -## Setup |
| 7 | +[](https://github.com/owncloud/android-update-testing/actions/workflows/update.yml) |
8 | 8 |
|
9 | | -In the `local.properties` file |
| 9 | +This repository provides automated tests that verify the ownCloud Android app upgrade path does not cause crashes or break functionality. The test suite installs the curren stable version of the app, performs setup operations (login, file listing, passcode setup), then installs a the current `master` version over the top and verifies that data and settings are preserved. It is designed to run within CI workflows that build both versions nightly. |
10 | 10 |
|
11 | | -- Name of the file containing older and newer version. By default: `owncloudSigned1.apk` and `owncloudSigned2.apk`. |
12 | | -- Passcode to set in the app (4 digits) |
13 | | -- Package name |
14 | | -- Appium URL |
| 11 | +## Part of Mobile (Android) |
15 | 12 |
|
16 | | -## Execution |
| 13 | +This repository is part of the QA infrastructure for the [ownCloud Android app](https://github.com/owncloud/android). It ensures that app updates do not introduce crashes, regressions in user data or settings unconsistencies. |
17 | 14 |
|
18 | | -The gradlew process launchs the tests with the following parameters: |
| 15 | +## Getting Started |
| 16 | + |
| 17 | +1. Configure `local.properties` with APK filenames, passcode, package name, and Appium URL |
| 18 | +2. Run the tests with Gradle: |
| 19 | + |
| 20 | +```bash |
| 21 | +./gradlew clean test -Dserver="https://myserver:9200" -Dusername=john -Dpassword=mypass -Dcommit=87a6f33 |
| 22 | +``` |
19 | 23 |
|
20 | 24 | - Server URL: ownCloud server to test. Basic auth as 1st auth method. |
21 | 25 | - Username: available in the server. |
22 | 26 | - Password: for the username to access. |
23 | 27 | - Commit: hash to compare against `latest` tag in CI. |
24 | 28 |
|
25 | | -Command: |
| 29 | +### Test Process |
26 | 30 |
|
27 | | -``` |
28 | | -./gradlew clean test -Dserver="https://myserver:9200" -Dusername=john -Dpassword=mypass -Dcommit=87a6f33 |
29 | | -``` |
| 31 | +1. Adds example files to the given account |
| 32 | +2. Installs the stable version (`owncloudSignedLatest.apk`) |
| 33 | +3. Logs in with the given credentials |
| 34 | +4. Checks list of files and adds a passcode |
| 35 | +5. Installs the app's current `master` version (`owncloudSignedMaster.apk`) over the stable one (without reinstalling) |
| 36 | +6. Verifies the passcode, file list, and commit hash in settings |
| 37 | + |
| 38 | +## Documentation |
| 39 | + |
| 40 | +- See this README for usage instructions |
| 41 | +- [ownCloud Android app](https://github.com/owncloud/android) |
| 42 | + |
| 43 | +## Community & Support |
| 44 | + |
| 45 | +**[Star](https://github.com/owncloud/android-update-testing)** this repo and **Watch** for release notifications! |
| 46 | + |
| 47 | +- [ownCloud Website](https://owncloud.com) |
| 48 | +- [Community Discussions](https://github.com/orgs/owncloud/discussions) |
| 49 | +- [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org) |
| 50 | +- [Documentation](https://doc.owncloud.com) |
| 51 | +- [Enterprise Support](https://owncloud.com/contact-us/) |
| 52 | +- [OSPO Home](https://kiteworks.com/opensource) |
| 53 | + |
| 54 | +## Contributing |
| 55 | + |
| 56 | +We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md) |
| 57 | +and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started. |
| 58 | + |
| 59 | +### Workflow |
| 60 | + |
| 61 | +- **Rebase Early, Rebase Often!** We use a rebase workflow. Always rebase on the target branch before submitting a PR. |
| 62 | +- **Dependabot**: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly. |
| 63 | +- **Signed Commits**: All commits **must** be PGP/GPG signed. See [GitHub's signing guide](https://docs.github.com/en/authentication/managing-commit-signature-verification). |
| 64 | +- **DCO Sign-off**: Every commit must carry a `Signed-off-by` line: |
| 65 | + ``` |
| 66 | + git commit -s -S -m "your commit message" |
| 67 | + ``` |
| 68 | +- **GitHub Actions Policy**: Workflows may only use actions that are (a) owned by `owncloud`, (b) created by GitHub (`actions/*`), or (c) verified in the GitHub Marketplace. |
| 69 | + |
| 70 | +## Security |
| 71 | + |
| 72 | +**Do not open a public GitHub issue for security vulnerabilities.** |
| 73 | + |
| 74 | +Report vulnerabilities at **<https://security.owncloud.com>** -- see [SECURITY.md](SECURITY.md). |
| 75 | + |
| 76 | +Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program) |
| 77 | + |
| 78 | +## License |
| 79 | + |
| 80 | +This project is licensed under the [GPL-3.0](LICENSE). |
| 81 | + |
| 82 | +## About the ownCloud OSPO |
| 83 | + |
| 84 | +The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under |
| 85 | +the [ownCloud](https://owncloud.com) brand, launched on May 5, 2026, to steward the open source |
| 86 | +ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance, |
| 87 | +community health, and sustainable collaboration between the open source community and |
| 88 | +[Kiteworks](https://www.kiteworks.com), which acquired ownCloud in 2023. |
| 89 | + |
| 90 | +- **OSPO Home**: <https://kiteworks.com/opensource> |
| 91 | +- **GitHub**: <https://github.com/owncloud> |
| 92 | +- **ownCloud**: <https://owncloud.com> |
| 93 | + |
| 94 | +For questions about the OSPO or licensing, contact ospo@kiteworks.com. |
| 95 | + |
| 96 | +### License Migration to Apache 2.0 |
| 97 | + |
| 98 | +The OSPO is driving a strategic relicensing of ownCloud repositories toward the |
| 99 | +[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), following |
| 100 | +the [Apache Software Foundation's third-party license policy](https://www.apache.org/legal/resolved.html). |
30 | 101 |
|
31 | | -## Process |
| 102 | +Individual repositories will migrate as their audit is completed. The LICENSE file |
| 103 | +in each repo reflects its **current** license status (not the target). |
32 | 104 |
|
33 | | -1. Add some example files to the given account |
34 | | -2. Install the older version `owncloudSigned1.apk` |
35 | | -3. Log in by using the given credentials |
36 | | -4. Check list of files |
37 | | -5. Add a passcode to the app |
38 | | -6. Install the newest version over the older (without reinstalling) |
39 | | -7. Verifies the passcode, the list of files, and the commit hash |
| 105 | +**Current license: GPL-3.0** (Category X per Apache policy -- cannot be included in Apache-2.0 works). |
40 | 106 |
|
41 | | -(open to add more checks) |
| 107 | +Migration prerequisites for this repository: |
42 | 108 |
|
| 109 | +- **CLA/DCO coverage**: All past contributors must have signed agreements permitting relicensing |
| 110 | +- **Copyleft dependency audit**: All GPL dependencies must be replaced or isolated |
| 111 | +- **Complete relicensing**: GPL-3.0 is a strong copyleft license; migration requires full relicensing of all files |
0 commit comments