docs/build-pieces/misc/pieces-ci-cd.mdx
You can use the CLI to sync custom pieces. There is no need to rebuild the Docker image as they are loaded directly from npm.
Use the CLI to sync items from packages/pieces/custom/ to instances. In production, Activepieces acts as an npm registry, storing all piece versions.
The CLI scans the directory for package.json files, checking the name and version of each piece. If a piece isn't uploaded, it packages and uploads it via the API.
To use the CLI, follow these steps:
API_KEY with your generated API Key and INSTANCE_URL with your instance URL:AP_API_KEY=your_api_key_here bun run sync-pieces -- --apiUrl https://INSTANCE_URL/api
package.json. For more information, refer to the piece versioning documentation.name: Sync Custom Pieces
on:
push:
branches:
- main
workflow_dispatch:
jobs:
sync-pieces:
runs-on: ubuntu-latest
steps:
# Step 1: Check out the repository code with full history
- name: Check out repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
# Step 2: Set up Bun
- name: Set up Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
# Step 3: Cache Bun dependencies
- name: Cache Bun dependencies
uses: actions/cache@v3
with:
path: ~/.bun/install/cache
key: bun-${{ hashFiles('bun.lockb') }}
restore-keys: |
bun-
# Step 4: Install dependencies using Bun
- name: Install dependencies
run: bun install --no-save
# Step 5: Sync Custom Pieces
- name: Sync Custom Pieces
env:
AP_API_KEY: ${{ secrets.AP_API_KEY }}
run: bun run sync-pieces -- --apiUrl ${{ secrets.INSTANCE_URL }}/api