Repository containing GitHub Actions workflows to build & deploy products.groupdocs.com.
This repository uses a unified workflow architecture with a reusable workflow pattern:
deploy_product.yml- Reusable workflow containing all common deployment logicdeploy_{product}.yml- Thin wrapper workflows for each product family that call the reusable workflow
All product workflows follow the same pattern and use the deploy_product.yml reusable workflow:
| Workflow | Product Family | Special Features |
|---|---|---|
deploy_annotation.yml |
annotation | - |
deploy_assembly.yml |
assembly | - |
deploy_classification.yml |
classification | - |
deploy_comparison.yml |
comparison | Uploads images folder |
deploy_conversion.yml |
conversion | - |
deploy_editor.yml |
editor | - |
deploy_markdown.yml |
markdown | - |
deploy_merger.yml |
merger | - |
deploy_metadata.yml |
metadata | - |
deploy_parser.yml |
parser | - |
deploy_redaction.yml |
redaction | - |
deploy_search.yml |
search | - |
deploy_signature.yml |
signature | - |
deploy_total.yml |
total | - |
deploy_viewer.yml |
viewer | - |
deploy_watermark.yml |
watermark | - |
Deploys the home page and handles general content changes.
Custom deployment workflow for specific branches (currently configured for license-popup branch). Used for special deployment scenarios.
Utility workflow to scan content folders and analyze locale information. Can be run manually via workflow_dispatch.
All product workflows support the following locales:
en(English - default)de(German)es(Spanish)fa(Farsi)fr(French)id(Indonesian)it(Italian)ja(Japanese)ko(Korean)pt(Portuguese)ru(Russian)th(Thai)uk(Ukrainian)vi(Vietnamese)zh(Chinese)
- Base URL:
https://products-qa.groupdocs.com/ - S3 Bucket:
products-qa.groupdocs.com - Config:
config-qa.toml - Triggered by: Push to
mainbranch,staging-completedispatch
- Base URL:
https://products.groupdocs.com/ - S3 Bucket:
products.groupdocs.com - Config:
config-prod.toml - Triggered by: Push to
productionbranch,production-completedispatch
To add a new product workflow:
- Create
deploy_{product_name}.ymlin.github/workflows/ - Copy the structure from an existing workflow (e.g.,
deploy_assembly.yml) - Update:
- Workflow name
- Path trigger (
content/{product_name}/**) product_familyparameter- Set
upload_images: trueif the product has an images folder to upload
Example:
name: Deploy NewProduct
on:
push:
branches: [ main, production ]
paths:
- 'content/newproduct/**'
# ... other triggers
jobs:
deploy:
uses: ./.github/workflows/deploy_product.yml
with:
product_family: "newproduct"
default_deploy_scope: "index_pages_only"
upload_images: false
environment: ${{ inputs.environment }}
deploy_scope: ${{ inputs.deploy_scope }}
secrets: inherit- Updating deployment logic: Edit
deploy_product.yml- changes apply to all products - Updating a specific product: Edit the corresponding
deploy_{product}.ymlwrapper - Adding new locales: Update
supported_localesindeploy_product.yml
Common keys
REPO_TOKEN- Token to access products.groupdocs.com repository
S3/CF Keys
ACCESS_KEY- AWS access key ID (for S3 deployments)SECRET_ACCESS- AWS secret access key (for S3 deployments)CACHE_INVALIDATION_API_ENDPOINT- Cache invalidation API endpoint
Ceph Keys
CEPH_ACCESS_KEY_ID- Ceph access key ID (for Ceph deployments)CEPH_SECRET_ACCESS_KEY- Ceph secret access key (for Ceph deployments)CEPH_QA_ENDPOINT- Ceph endpoint URL for QA/staging environmentCEPH_PROD_ENDPOINT- Ceph endpoint URL for production environmentBUNNYNET_ACCESS_KEY- BunnyNet API access key for cache invalidationBUNNYNET_PURGE_URL- BunnyNet cache purge API endpoint