dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.24k stars 1.57k forks source link

[Release] Automate updating Dart Docker official images. #56604

Open itsjustkevin opened 2 months ago

itsjustkevin commented 2 months ago

Problem Statement

Currently, the process of running the dart-docker script after a release involves several manual steps, making it cumbersome and prone to human error. These steps include:

  1. Waiting for releases to be available.
  2. Checking out the dart-docker repository.
  3. Authorizing the use of dart-docker through depot_tools.
  4. Running the script.
  5. Manually selecting between two options during script execution.
  6. Allowing the script to continue to completion. This manual process is time-consuming and inefficient. Automating and simplifying these steps would improve the release workflow and reduce the potential for errors.

Proposed Items to Investigate

  1. Removing the Selection Step: Explore options to eliminate the need for manual selection within the script. This might involve determining the appropriate option automatically based on the context or adding a configuration parameter to predefine the choice.
  2. Working Around the depot_tools Authorization Step: Investigate methods to either bypass the depot_tools authorization step or automate it to avoid manual intervention. This could involve caching credentials, pre-authorizing the tools, or exploring alternative authentication mechanisms.
  3. Automated Weekly Job Execution: Consider setting up a scheduled job that runs the dart-docker script every Friday. This job should be able to detect if a release has occurred and, if so, execute the script automatically. This would ensure that releases are processed promptly without requiring manual initiation.
dart-github-bot commented 2 months ago

Summary: The current process for updating Dart Docker official images after a release is manual and prone to errors. This issue proposes automating the process by removing manual steps, automating authorization, and scheduling weekly job execution.