ci: migrate from Drone to GitHub Actions (self-hosted runners) - #772
Open
marcbachmann wants to merge 1 commit into
Open
ci: migrate from Drone to GitHub Actions (self-hosted runners)#772marcbachmann wants to merge 1 commit into
marcbachmann wants to merge 1 commit into
Conversation
Ports the .drone.yml pipeline: eslint, build and karma tests in the cypress/browsers image (Chrome comes from the image), semantic-release on master, and the tag-triggered gh-pages publish of examples/. The release job uses a GitHub App token for the tag push, because tags pushed with the built-in GITHUB_TOKEN do not trigger workflows and the docs publish is tag-triggered. Releases are serialized repo-wide since npm rejects concurrent publishes of one package. Adds CODEOWNERS requiring review for changes under .github/. .drone.yml is left in place so both pipelines run side by side.
marcbachmann
force-pushed
the
ci/github-actions-migration
branch
from
August 6, 2026 16:19
66f7c7c to
3d8a967
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the Drone pipeline with GitHub Actions.
.drone.ymlis untouched, so both CIs run on the same commits until we cut over.Runners:
ubuntu-latest, deliberately. This repo is public, and GitHub-hosted minutes are free for public repos. Public repositories are also exactly where self-hosted runners should never be used — a pull request from a fork would execute untrusted code on our own machines.What the workflow does
eslintnpm run lintin thetestjobinstall+build+test(cypress/browsers)testjob in the same image family, pinned to a current tag (node 22 / Chrome 141)release(semantic-release, push only)releasejob, master + push only,needs: testpublish-gh-pages(tag only)publish-docsjob, tag only,needs: testKarma needs no host setup:
ChromeHeadlessNoSandboxcomes from the container image.Notes for review
persist-credentials: falseso that token is the one used for the tag push. Without this the tag-triggered docs publish would never run, since tags pushed with the built-inGITHUB_TOKENdo not trigger workflows.concurrency: group: releaseserializes releases across the repo, since npm rejects concurrent publishes of the same package.CODEOWNERSrequires review for changes under.github/, because workflow files decide what runs in CI and with which credentials.Before merging
testjob passes here before relying on it.drone.yml