heroku / heroku-buildpack-php

Heroku's buildpack for PHP applications.
https://devcenter.heroku.com/categories/php
MIT License
808 stars 1.59k forks source link

Nicer platform sync workflow: parallel and with Dev Center markdown generation #672

Closed dzuelke closed 11 months ago

dzuelke commented 11 months ago

Full result example here: https://github.com/heroku/heroku-buildpack-php/actions/runs/7134065350

Parallel syncing of stacks

Syncing platform package repo updates from the development to the stable "bucket" is currently done using a GHA workflow that needs to be kicked off separately for each stack:

platform-sync-master

Instead, we're now running it in parallel for all stacks. That's faster, less manual work (for dispatching), and allows easy addition of further jobs after all stacks have synced:

platform-sync-nicer

GUS-W-14627856

Generating "PHP Support" contents

The "PHP Support" article on Dev Center has tables for runtimes, built-in extensions, third-party extensions, Composer, and web servers. These tables are generated by tooling that is fed the repository URLs for all stacks as input. The output is the markdown for the tables linked above.

Since we're now syncing all stacks in parallel, we can do that at the end of the sync workflow!

In fact, we can even use the public Dev Center API to fetch the raw article markdown, patch the generated sections with the help of their start/end markers, and output the whole document for copy/pasting:

platform-sync-dc-md

With a diff, too:

platform-sync-dc-diff

And based on the improvements added in #671, it will even warn if the repository contains unexpected versions, or print notices if allowed versions are not there:

platform-sync-warning

GUS-W-14616720 GUS-W-14627917