Wires the worker against the matching utopia-php/migration branch so
end-to-end testing of the Sentry-routing fix can run against both
sides of the change set.
Run `composer update utopia-php/migration --with-all-dependencies`
after pulling to refresh composer.lock. Revert before merging.
With Migration\Exception::jsonSerialize() no longer including the stack
trace, sanitizeErrors no longer needs to decode/strip/re-encode each
entry. Reduce it to a single json_encode pass.
The outer catch in the migrations worker now only calls logError when the
caught Throwable is not a MigrationException. User-facing setup errors
(invalid source type, missing project, etc.) are thrown as MigrationException
with appropriate codes and stay in the migration report only.
Removed the foreach loop that re-published collected errors to Sentry; with
the library-side fix in utopia-php/migration, items in $source->getErrors() /
$destination->getErrors() are by construction user errors that don't need
Sentry routing.
Hoisted setAttribute('errors', sanitizeErrors(...)) into finally so the
migration document always reflects the consolidated error list, including
on bug paths.
Every CI run pushes ghcr.io/<repo>/appwrite-dev:<sha> and nothing
removes it. On an active repo with many PRs the GHCR storage grows
without bound. Add a cleanup job that runs after all consumer jobs
complete (always, even if some fail) and deletes the SHA-tagged
package version via the Packages API.
Addresses Greptile feedback on appwrite/appwrite#12176.
The build job uploads the appwrite-dev image as an actions artifact
(~hundreds of MB), and 30+ E2E test jobs all pull it concurrently with
actions/download-artifact. GitHub Actions' artifact storage struggles
with that many parallel downloads and intermittently fails with
BlobNotFound or 'Artifact download failed after 5 retries'.
Push the built image to ghcr.io/<repo>/appwrite-dev:<sha> in the build
job and pull from GHCR in each test job. GHCR handles parallel image
fetches without throttling.
Mirrors appwrite-labs/cloud#3906.