π Valhalla Documentation
Streamline your software releases with automated, error-free deployments
Welcome to Valhalla
π Valhalla is a powerful toolkit designed to automate and streamline the release process for software projects. Say goodbye to manual, error-prone releases and embrace automated workflows that save time, reduce mistakes, and ensure compliance with your release standards.
β¨ Key Features
- π Automated Releases - Create GitLab releases automatically from branch names or environment variables
- π Git Integration - Automated commits, pushes, and merge request creation
- π Configurable Workflows - Flexible YAML configuration for any release process
- π§ Pre/Post Release Scripts - Execute custom commands before and after releases
- π¦ Asset Management - Automatically attach release assets and documentation links
- ποΈ CI/CD Ready - Seamless integration with GitLab CI/CD pipelines
- π Configuration Inheritance - Share configurations across multiple repositories
- π Variable System - Powerful templating with predefined and custom variables
π― Why Choose Valhalla?
Problem | Valhalla Solution |
---|---|
Manual release complexity | Automated multi-step release workflows |
Human errors & inconsistency | Standardized, repeatable processes |
Time-consuming manual steps | One-click releases triggered by branch creation |
Compliance & audit trails | Consistent release documentation and history |
Multi-repository management | Configuration inheritance and templates |
π Documentation
π Getting Started
New to Valhalla? Start here for installation, basic setup, and your first release.
- Installation options (Docker & source)
- Initial configuration
- GitLab CI/CD integration
- Your first automated release
- Prerequisites and setup
π Usage Guide
Ready for more? Explore advanced usage patterns, configuration inheritance, and common workflows.
- Branch-based vs environment variable releases
- Configuration inheritance patterns
- Variable system and templating
- Multiple release types (standard, hotfix, preview)
- Integration examples (Slack, Jira, Docker)
- Best practices and troubleshooting
β FAQ
Got questions? Find answers to common questions and troubleshooting tips.
- Platform compatibility and limitations
- Token permissions and security
- Testing and dry-run approaches
- Error resolution and debugging
- Advanced use cases and workarounds
π Configuration Reference
Need details? Complete reference for all configuration options and parameters.
- Full YAML schema documentation
- All configuration options explained
- Predefined variables reference
- Environment integration details
- Complete configuration examples
π Quick Start
Ready to get started? Here's the fastest way to begin:
1. Install Valhalla
docker pull logchange/valhalla:1.3.0
2. Create Configuration
# valhalla.yml
git_host: gitlab
commit_before_release:
enabled: true
username: "Release Bot"
email: "releases@company.com"
msg: "Prepare release {VERSION}"
before:
- echo "Building version {VERSION}"
release:
description:
from_command: "echo 'Release {VERSION}'"
merge_request:
enabled: true
title: "Release {VERSION}"
3. Set GitLab Token
# In GitLab CI/CD Variables
VALHALLA_TOKEN=your_gitlab_token
4. Trigger Release
git checkout -b release-1.0.0
git push origin release-1.0.0
π That's it! Valhalla will handle the rest automatically.
β‘οΈ Continue with detailed setup β
ποΈ Architecture Overview
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Git Branch βββββΆβ Valhalla βββββΆβ GitLab Release β
β release-1.2.3 β β β β + Assets β
βββββββββββββββββββ β βββββββββββββββ β βββββββββββββββββββ
β β Config β β β
βββββββββββββββββββ β β valhalla.ymlβ β βββββββββββββββββββ
β Environment βββββΆβ βββββββββββββββ βββββΆβ Merge Request β
β VALHALLA_* β β β β (optional) β
βββββββββββββββββββ β βββββββββββββββ β βββββββββββββββββββ
β βPre/Post β β β
βββββββββββββββββββ β βScripts β β βββββββββββββββββββ
β GitLab CI/CD βββββΆβ βββββββββββββββ βββββΆβ Git Commits β
β Variables β ββββββββββββββββββββ β + Push β
βββββββββββββββββββ βββββββββββββββββββ
π Common Use Cases
π Continuous Deployment
Automatically create releases when code is merged to release branches.
π¨ Hotfix Releases
Fast-track critical fixes with simplified release processes using valhalla-hotfix.yml
.
π¦ Multi-Component Releases
Coordinate releases across microservices and monorepo components.
π’ Enterprise Workflows
Standardize release processes across teams with configuration inheritance.
π³ Container Deployments
Build and publish Docker images as part of the release process.
π οΈ Platform Support
Platform | Status | Notes |
---|---|---|
GitLab | β Full Support | Self-hosted and GitLab.com |
GitHub | β³ Planned | Coming in future release |
Bitbucket | β³ Planned | Coming in future release |
Azure DevOps | β³ Planned | Coming in future release |
π Release Types
Valhalla supports multiple release configurations for different scenarios:
π― Standard Releases (valhalla.yml
)
- Full feature releases
- Complete testing and validation
- Documentation updates
- Post-release preparation
π₯ Hotfix Releases (valhalla-hotfix.yml
)
- Critical bug fixes
- Minimal validation
- Fast-track deployment
- Emergency response
π Preview Releases (valhalla-preview.yml
)
- Development previews
- Staging deployments
- Feature demonstrations
- Integration testing
ποΈ Custom Release Types (valhalla-{type}.yml
)
- Project-specific workflows
- Environment-specific releases
- Team-customized processes
π§ Integration Ecosystem
Valhalla integrates seamlessly with your existing tools:
- π¦ GitLab CI/CD - Native pipeline integration
- π³ Docker - Container building and publishing
- π¦ Package Managers - npm, Maven, NuGet, pip
- π’ Notifications - Slack, Teams, Discord
- π Project Management - Jira, Linear, GitHub Issues
- π Monitoring - Custom webhooks and metrics
- π Security - Token management and secret handling
π€ Community & Support
π Get Help
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π Documentation: You're reading it!
- β Show Support: Star us on GitHub
π Contributing
Valhalla is open-source and welcomes contributions: - π§ Code Contributions: Pull Requests - π Documentation: Help improve our guides - π§ͺ Testing: Share your use cases and configurations - π Community: Help other users in discussions
π What's Next?
π― Choose Your Path
I want to... | Go to... |
---|---|
Get started quickly | Getting Started Guide |
See advanced examples | Usage Guide |
Solve a specific problem | FAQ |
Look up configuration options | Configuration Reference |
Understand the full feature set | Continue reading below |
π Success Stories
"Valhalla reduced our release time from 2 hours to 5 minutes and eliminated all manual errors."
β DevOps Team Lead"Configuration inheritance lets us manage 20+ repositories with a single shared template."
β Platform Engineer"The variable system makes our release notes and notifications perfectly consistent."
β Release Manager
Ready to transform your release process? π
Start with Getting Started β