feat: add support for additional release configuration file formats

Presentation

The supported ways to supply configuration are:

  • A .releaserc file, written in YAML or JSON, with optional extensions: .yaml/.yml/.json/.js/.cjs/.mjs
  • A release.config.(js|cjs|.mjs) file that exports an object
  • A release key in the project's package.json file

This MR extends existing support with .releaserc.(cjs|mjs) and release.config.(js|cjs|mjs) as well as fixes an existing error with .releaserc.js.

JavaScript config files are serialized to JSON at detection time using node -pe, so downstream YAML processing works unchanged. .mjs files require Node.js ≥ 22.12.0 (satisfied by the default node:lts-slim image).

Closes #69 (closed)

Checklist

  • General:
  • Publicly usable:
    • [ ] untagged runners
    • [ ] no proxy configuration but support http_proxy/https_proxy/no_proxy
    • [ ] no custom CA certificate(s) but supports $CUSTOM_CA_CERTS or $DEFAULT_CA_CERTS to declare custom CA certificate(s)
    • [ ] internet hostnames/urls only
  • Used Docker images:
    • [ ] public images
    • [ ] official images (when possible)
    • [ ] latest tag (when possible)
  • Documented:
    • README.md documents the new feature
    • [ ] kicker.json describes the new feature
  • Tested & examplified:
    • (url to a project sample successfully using the new feature)
Edited by Mikael Karon

Merge request reports

Loading