Automated Workflows
Release Workflow
The Release workflow automatically triggers when you push to your main branch (typicallymain or master).
What it does:
- Generates a unique image tag based on branch name, date, and build counter
- Builds your Docker image
- Pushes the image to your configured container registry
- Optionally deploys to your development environment automatically
Monorepo Support
For monorepos containing multiple services, the Release workflow:- Detects which services changed in the commit
- Builds only the affected services in parallel
- Uses a shared image tag across all services for consistency
- Can deploy all changed services to development automatically
Manual Deployments
Skyhook provides flexible deployment options through manual workflows that are primarily triggered from the Skyhook UI, though they can also be run directly from GitHub Actions if needed.Deploying from the Skyhook UI
The easiest way to deploy your service is through the Skyhook web application:- Navigate to Services → [Your Service] → Deploy
- Choose your deployment mode:
- Deploy Existing Image - Deploy an already-built image
- Build Image - Build a new image and deploy it

-
Configure your deployment:
- Image Tag (Deploy Existing) or Git Code Reference (Build Image) - Select what to deploy or build
- Kubernetes Resources (Config Reference) - Select Git reference for Kubernetes manifests
- CI Workflows (Git CI Reference) - Select Git reference for workflow files
- Environment - Choose target environment (dev, staging, production)
- Select Git references using the branch/tag/commit picker:

- Search and select from Branches, Tags, or Commits
- See commit timestamps and SHAs
- Easily switch between different reference types
- Review your deployment before confirming:

- What branch/tag you’re deploying from
- Current version vs new version
- Target environment
- Link to see the full diff on GitHub
- Click Deploy to trigger the workflow
- Pre-filled defaults for your service configuration
- Visual interface for selecting environments and options
- Browse branches, tags, and commits without leaving the UI
- See deployment summary and diff before confirming
- Real-time feedback and deployment status
- No need to remember workflow input formats
- Automatically routes to the correct GitHub Actions workflow
Deploying from GitHub Actions
You can also trigger deployments directly from GitHub:- Go to your repository on GitHub
- Navigate to Actions tab
- Select the workflow you want to run
- Click Run workflow
- Fill in the required inputs
- Automation scripts or external CI/CD integrations
- Custom deployment pipelines
- Advanced users who prefer the GitHub interface
Available Workflows
Build and Deploy
Builds a new Docker image and deploys it in one operation. When to use:- Deploying to staging or production from a specific branch
- Testing a feature branch before merging
- Creating a release from a specific commit or tag
- Select Build Image tab in the deploy dialog
- Choose Git Code Reference (branch, tag, or commit to build from)
- Set Config Reference for Kubernetes manifests (defaults to main)
- Select target Environment
- Review and confirm deployment
- Deploy
feature/new-apibranch todevenvironment for testing - Deploy
v1.2.3tag toproductionwith stable configuration - Build from
mainbranch and deploy tostaging
Deploy Existing Image
Deploys an already-built Docker image without rebuilding. When to use:- Promoting an existing image from staging to production
- Rolling back to a previous version
- Deploying the same tested image to multiple clusters or environments
- Select Deploy Existing Image tab in the deploy dialog
- Choose Image Tag from the list of available images
- Set Config Reference for Kubernetes manifests
- Select target Environment
- Review and confirm deployment
- Promote
main-2024-01-15-42image from staging to production - Rollback production to previous stable image
v1.2.2 - Deploy the same image across multiple regions
Build Image Only
Builds and pushes a Docker image without deploying it. When to use:- Pre-building images for later deployment
- Testing Docker builds without affecting running services
- Creating release candidates for approval before deployment
- Trigger the Build Image workflow from GitHub Actions
- Specify the Git reference to build from
- Optionally provide a custom image tag
- The image will be built and pushed to your container registry
- Build release candidate images for testing:
rc-v1.3.0 - Pre-build images during off-peak hours
- Create images for manual QA validation before deployment
Understanding Git References
When deploying, you can specify different Git references for your code and configuration:Git Code Reference
- Where to build the Docker image from
- Can be a branch name (
main,feature/new-api), tag (v1.2.3), or commit SHA - Determines what code gets built into your container
Git Config Reference (Kubernetes Resources)
- Where to get Kubernetes manifests and configuration from
- Typically uses
mainbranch for stable configuration - Can override to use feature branches or specific tags for testing
- Controls how your service is deployed (replicas, resources, environment variables, etc.)
Git CI Reference (CI Workflows)
- Where to get the GitHub Actions workflow files from
- Usually points to
mainfor stable CI/CD definitions - Can be overridden when testing workflow changes
Why Separate References?
This separation allows you to:- Test new code with stable configuration - Deploy a feature branch with production-like config
- Test configuration changes with stable code - Update Kubernetes settings without code changes
- Deploy hotfixes cleanly - Fix code without modifying deployment configuration
- Experiment safely - Try different combinations without affecting your repository
feature/new-payment-api code with main branch configuration to test the new API with production-like settings before merging.
Viewing Deployments
In the Skyhook web app, navigate to Services → [Your Service] → CI/CD to:- View recent deployments and their status
- See which version is deployed to each environment
- Access direct links to GitHub Actions runs
- Monitor deployment progress in real-time
- Review deployment history and rollbacks
Common Deployment Scenarios
Deploying a Feature to Dev
- Push your feature branch to GitHub
- Open Skyhook UI → Services → Your Service → Deploy
- Select Build Image tab
- Choose your feature branch as Git Code Reference
- Select
devenvironment - Click Deploy
Promoting Staging to Production
- Note the image tag currently deployed in staging (e.g.,
main-2024-01-15-42) - Open Skyhook UI → Services → Your Service → Deploy
- Select Deploy Existing Image tab
- Enter the staging image tag
- Select
productionenvironment - Review the diff and click Deploy
Rolling Back Production
- Find the previous working image tag from deployment history
- Open Skyhook UI → Services → Your Service → Deploy
- Select Deploy Existing Image tab
- Enter the previous image tag
- Select
productionenvironment - Click Deploy
Testing Configuration Changes
- Create a branch with your configuration changes
- Open Skyhook UI → Services → Your Service → Deploy
- Select Deploy Existing Image tab
- Choose the current stable image tag
- Set Config Reference to your configuration branch
- Select
devenvironment - Click Deploy
Next Steps
- Configuration & Setup - Configure authentication and advanced features
- Troubleshooting - Resolve common deployment issues
- GitOps with ArgoCD - Set up declarative deployments
