GitHub Actions Integration
Automate platform workflows using GitHub Actions for CI/CD pipelines.
Overview
Use GitHub Actions to:
-
Refresh test databases on every commit
-
Schedule periodic data masking
-
Automate database subsetting
-
Generate synthetic test data
Basic Workflow
name: Refresh Test Database
on:
push:
branches: [main]
schedule:
- cron: '0 2 * * *' # Daily at 2 AM
jobs:
mask-data:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Masking
uses: docker://synthesizedio/synthesized-tdk-cli:latest
with:
args: >
--config-file workflow.yaml
--inventory-file inventory.yaml
env:
INPUT_DB_URL: ${{ secrets.PROD_DB_URL }}
INPUT_DB_PASSWORD: ${{ secrets.PROD_DB_PASSWORD }}
OUTPUT_DB_URL: ${{ secrets.TEST_DB_URL }}
OUTPUT_DB_PASSWORD: ${{ secrets.TEST_DB_PASSWORD }}
Secrets Configuration
Store credentials in GitHub Secrets:
-
Navigate to repository Settings → Secrets
-
Add secrets:
-
PROD_DB_URL -
PROD_DB_PASSWORD -
TEST_DB_URL -
TEST_DB_PASSWORD
-
Advanced Example
name: Multi-Environment Data Refresh
on:
workflow_dispatch:
inputs:
environment:
description: 'Target environment'
required: true
type: choice
options:
- dev
- staging
jobs:
refresh:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Mask and Subset Data
run: |
docker run \
-v $(pwd):/config \
synthesizedio/synthesized-tdk-cli \
--config-file /config/workflow.yaml \
--inventory-file /config/inventory-${{ inputs.environment }}.yaml
env:
OUTPUT_DB_URL: ${{ secrets[format('{0}_DB_URL', inputs.environment)] }}
OUTPUT_DB_PASSWORD: ${{ secrets[format('{0}_DB_PASSWORD', inputs.environment)] }}