@postxl/sync
v2.6.5
Published
PostXL Sync is a utility script that helps you sync changes you make inside a project to the PostXL template in this monorepository. It manages a tracking branch in this monorepo for each active PostXL project and syncs changes to the tracked files from a
Downloads
12
Readme
PostXL Sync
PostXL Sync is a utility script that helps you sync changes you make inside a project to the PostXL template in this monorepository. It manages a tracking branch in this monorepo for each active PostXL project and syncs changes to the tracked files from a particular project with the tracking branch.
NOTE: It syncs changes with the tracking branch. The merging of the tracking branch with the main branch of the template is left to the manager of PXLTemplate tool.
NOTE: Because the tool syncs with the tracking branch, we don't have to handle the actual versioning of the template. Tools don't update projects automatically. The person responsible for the project triggers the update and checks its validity when PXLTemplate gets update. Other tools in our stack can help verify that everything works correctly. There is no concept of versioning of the template.
The Flow
Sync takes care of two things:
- managing the tracking branch and the PR associated with that tracking branch in the main repo,
- syncing the changes in a project with the monorepo
It does both of these things whenever it runs, usually on every commit to the main branch of a project.
Usage
You should use this package inside a GitHub Action that runs on every commit to the main branch of your project.
Example
name: Sync changes to PostXL template
on:
push:
branches:
- main
jobs:
sync:
- name: Checkout Main
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node Environment
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
- name: Sync
run: pnpx @postxl/sync
env:
# NOTE: This token needs to have permission to access `postxl` repository!
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
COMMIT_SHA: ${{ github.sha }}