* Update packages. * Add many more global analyses. * Catch trailing spaces and trailing newlines in all text files. Before we were only checking newly added files, but that means we missed some. * Port the trailing spaces logic to work on Windows too. * Correct all the files with trailing spaces and newlines. * Refactor some of the dev/bots logic into a utils.dart library. Notably, the "exit" and "print" shims for testing are now usable from test.dart, analyze.dart, and run_command.dart. * Add an "exitWithError" function that prints the red lines and then exits. This is the preferred way to exit from test.dart, analyze.dart, and run_command.dart. * More consistency in the output of analyze.dart. * Refactor analyze.dart to use the _allFiles file enumerating logic more widely. * Add some double-checking logic to the _allFiles logic to catch cases where changes to that logic end up catching fewer files than expected (helps prevent future false positives). * Add a check to prevent new binary files from being added to the repository. Grandfather in the binaries that we've already added. * Update all the dependencies (needed because we now import crypto in dev/bots/analyze.dart).
This directory includes scripts and tools for setting up Flutter's continuous integration environments.
Cirrus Linux
Flutter's Linux tasks run on a custom Docker image. The Dockerfile for this
image can be found at /dev/ci/docker_linux/Dockerfile.
On each new change to this Dockerfile, Cirrus will build a new version of
the Docker image as a dependency to any Linux tests. It is no longer necessary
to manually build and push the Docker image locally.
NOTE: there are some factors external to the actual Dockerfile that would
necessitate rebuilding the Docker image, such as upstream code changes, (Linux
distribution) repository updates, or a file that gets COPYied into the image
changing. In this case, a trivial Dockerfile change (such as a comment)
would invalidate the cache and trigger a rebuild.