Repository
Notes for contributors and maintainers. To use the plugin, start with getting started.
Layout
plugin/: thepayload-crowdin-syncpackage published to npm.dev/: Payload install used for integration tests.docs-site/: this documentation site, built with Docusaurus and published to GitHub Pages.
The repository is an Nx monorepo. See Nx for general Nx commands.
Scripts
npm install
npm run test # unit and integration tests
npm run test:coverage # the same, with coverage reports in coverage/<project>
npm run generate:importmaps # regenerate the Payload import map in dev/
npm run docs:serve # run this site locally
See development for how the tests are organised, and why import maps matter.
Continuous integration
On every pull request and push to main, CI:
- checks that the Payload import map is committed and up to date
- runs all tests with coverage
- uploads coverage to Codecov and keeps the reports as a build artifact for 14 days
See PR labels for how pull requests are labelled.
Release
Releases are managed by release-please. When a release PR is merged to main, the release-please workflow builds and publishes payload-crowdin-sync to npm via trusted publishing (OIDC).
One-time npm setup (package maintainer): on npmjs.com, go to Settings > Trusted publishing and add a GitHub Actions publisher for repository thompsonsj/payload-crowdin-sync and workflow filename release-please.yml. After verifying automated publishes work, revoke the NPM_TOKEN repository secret.
Manual publish remains available as a fallback:
npm run release