ChromeDevTools / devtools-protocol

Chrome DevTools Protocol
https://chromedevtools.github.io/devtools-protocol/
BSD 3-Clause "New" or "Revised" License
1.15k stars 226 forks source link

Automate updates with GitHub Actions #266

Closed mathiasbynens closed 2 years ago

mathiasbynens commented 2 years ago

Currently the repository is updated by a script that runs locally on @paulirish’s machine. We’d like to move this to a GitHub Actions cronjob workflow. This involves…

mathiasbynens commented 2 years ago

The automated Action now seems to run smoothly at least in the no-update case: https://github.com/ChromeDevTools/devtools-protocol/runs/7211791580?check_suite_focus=true We’ll need to check this once there’s an actual CDP change upstream.

For publishing to npm, we’re still blocked on the Wombat npm user accepting our invite. @bcoe is on it!

mathiasbynens commented 2 years ago

For publishing to npm, we’re still blocked on the Wombat npm user accepting our invite.

This has been resolved:

$ npm owner ls devtools-protocol | grep google-wombot
google-wombot <node-team-npm+wombot@google.com>

The workflow now successfully runs (up until the expected failure point of trying to publish an already-published version): https://github.com/ChromeDevTools/devtools-protocol/runs/7217345834?check_suite_focus=true#step:3:34 So now we just wait for an upstream CDP change.

mathiasbynens commented 2 years ago

An upstream CDP change just landed: https://chromium-review.googlesource.com/c/chromium/src/+/3749625 This allowed us to test the actual processing logic through the GitHub Actions workflow for the first time. After a few more tweaks (6d6d51eb93edc54a0d015e59f220a2e9ad9f333, 99db35730cedf76819489b2635a6efa9b08becf8, 6870df846388eeb05bf9c85bc9650f9c56501dfc, and 5cde7486078960bfd85083075c305040985dbef9) we just had our first successful, actually-updating-something run! https://github.com/ChromeDevTools/devtools-protocol/runs/7277823196?check_suite_focus=true#step:3:5 It correctly created the Git tag which correctly triggered the npm publish-on-tag workflow: https://github.com/ChromeDevTools/devtools-protocol/actions/runs/2647956072 and published to npm:

$ npm info devtools-protocol@0.0.1022601

devtools-protocol@0.0.1022601 | BSD-3-Clause | deps: none | versions: 925
The Chrome DevTools Protocol JSON
https://github.com/ChromeDevTools/devtools-protocol#readme

dist
.tarball: https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1022601.tgz
.shasum: 33748f267c2c1c72f010c9f3ba7d6ef981951205
.integrity: sha512-yA+q2/ZAsLjBEIgAUxKlAvbNxvpIcL/H18/7tAJj1cnifevVcAr/gQAL4NaNkwrdfPMsWd8/2tUXv+1zWv95KQ==
.unpackedSize: 2.4 MB

maintainers:
- paulirish <npm@paul.irish>
- mathias <mathias@qiwi.be>
- google-wombot <node-team-npm+wombot@google.com>

dist-tags:
latest: 0.0.1022601

published 2 minutes ago by google-wombot <node-team-npm+wombot@google.com>
mathiasbynens commented 2 years ago

One open issue remains: the changelog. Despite working locally, the script doesn’t output anything on GitHub Actions, and ends up writing an empty file. @paulirish said he’d be fine with just removing the changelog + script altogether, but before we do that, I’ll try to fix things. We’ll find out on the next automated run if this addresses the GitHub Action-specific issues.

mathiasbynens commented 2 years ago

There was another automated run just a few hours ago: 3f041368deac26f02968d6cec643a64e228bf459 Unfortunately the changelog still gets emptied. I’ll do what Paul suggested earlier and remove the changelog + related scripts entirely — it’s probably not worth the time investment to investigate and fix this.

mathiasbynens commented 2 years ago

There was another automated run just a few hours ago: 3f04136 Unfortunately the changelog still gets emptied. I’ll do what Paul suggested earlier and remove the changelog + related scripts entirely — it’s probably not worth the time investment to investigate and fix this.

Done in #274.

I think this completes this effort. I’ll leave this issue open until the next automated run just to double-check everything works.

pbi-qfs commented 2 years ago

It's really a pity that the changelog is lost. We used to use this file for a daily review if anything relevant to our usage of CDP changed (i.e. we have a changlog.md parser running as cron, which transfers the changes as table entries to our confluence, so the developers get a mail with the latest changes and can easily review, evaluate and remark the changes without having to read over the json-diffs).

I was hoping that the new automation would improve the changelog.md quality (e.g. being in sync with the json changes), but now it seems that this great source of information is totally lost...

mathiasbynens commented 2 years ago

@pbi-qfs I’d happily review a PR that restores the changelog script in a way that works via GitHub Actions.

mathiasbynens commented 2 years ago

Despite #272, the latest update 28ec0d820866bec92700525bf48c9de6a237ab79 still emptied the changelog. :(

mathiasbynens commented 2 years ago

After some intense GitHub Actions debugging by creating a temporary workflow and repeatedly force-pushing to master like some amateur, I found the root cause. You’re not gonna believe how simple the fix is: a7636c94522c07cf4626dcd64b8993618d0f7192

mathiasbynens commented 2 years ago

…and 7263e1101217b36cbc3c5b45f6e7314400885751 is an example automated run that seems to have worked flawlessly.

With that, I’m marking this issue as fixed.