ZYVOPDOCS
MULTI-PLATFORM SYNC
Workflows & CI/CD

GitHub Actions Automation

Automatically publish and cross-post Markdown articles on Git push using the official ZyVOP Action.

GitHub Actions CI/CD Integration

ZyVOP provides an official composite GitHub Action (zyvop/zyvop-publish-action@v1) that monitors your repository for new or modified Markdown files and automatically triggers multi-platform cross-posting whenever code is pushed.


Quick Setup

1. Add your ZyVOP Token as a Repository Secret

  1. Open your repository on GitHub.
  2. Navigate to Settings → Secrets and variables → Actions.
  3. Click New repository secret.
  4. Name: ZYVOP_TOKEN.
  5. Value: Your developer token from ZyVOP (zv_ followed by 48 hexadecimal characters).

2. Create the Workflow File

Create .github/workflows/publish.yml in your repository:

.github/workflows/publish.yml
name: Publish to ZyVOP

on:
  push:
    branches:
      - main
    paths:
      - 'posts/**/*.md'
      - 'content/**/*.md'

permissions:
  contents: read

jobs:
  syndicate:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 2 # Required to detect changed files

      - name: Publish changed articles
        uses: zyvop/zyvop-publish-action@v1
        with:
          posts: 'posts/**/*.md'
          changed-only: 'true'
        env:
          ZYVOP_TOKEN: ${{ secrets.ZYVOP_TOKEN }}

Action Inputs & Configuration

InputTypeDefaultDescription
postsstring':(glob)posts/**/*.md'Git pathspec matching your Markdown articles
changed-onlystring'true'When 'true', only publishes files modified in the latest commit
dry-runstring'false'Validates frontmatter and builds payloads without publishing
localstring'false'Uses local runner provider secrets rather than ZyVOP cloud credentials
cli-versionstring'1.1.1'Specific pinned version of the zyvop npm CLI

PR Preview & Dry-Run Workflow

You can also run ZyVOP in pull requests to ensure your team's Markdown frontmatter and asset paths are valid before merging to main:

.github/workflows/pr-validate.yml
name: Validate Markdown Frontmatter

on:
  pull_request:
    paths:
      - 'posts/**/*.md'

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repo
        uses: actions/checkout@v4
        with:
          fetch-depth: 2

      - name: Dry Run Validation
        uses: zyvop/zyvop-publish-action@v1
        with:
          posts: 'posts/**/*.md'
          changed-only: 'true'
          dry-run: 'true'
        env:
          ZYVOP_TOKEN: ${{ secrets.ZYVOP_TOKEN }}

On this page