Starts and runs a ChartMuseum Helm Chart repository/docker container with Docker layer caching for optimal performance in CI/CD pipelines.
- 🚀 50-80% faster follow-up runs with intelligent Docker caching
- 🐳 Docker layer caching for ChartMuseum container images
- ⚙️ Configurable caching with custom key suffixes
- 🔄 Cross-workflow cache sharing within repositories
- 📦 Production-ready with backward compatibility
steps:
- name: "Run ChartMuseum with optimal caching"
uses: lfreleng-actions/chartmuseum-action@main
with:
password: ${{ secrets.github_token }}
port: 8080
script: 'job.sh'
# Caching enabled by default for best performanceThis action includes Docker layer caching to speed up container builds and follow-up runs:
- Caches Docker layers from the ChartMuseum container image
- Pre-pulls container images for faster startup times
- Preserves layers between workflow runs
- Smart cache keys based on OS, version, and optional suffix
- First run: Downloads and caches all necessary Docker images
- Follow-up runs: Leverages cached layers for 50-80% faster startup
- Cross-workflow sharing: Cache works across workflows in same repo
- Reduced resource usage: Lower bandwidth and GitHub Actions minutes
Basic usage (caching enabled by default):
- name: "Run ChartMuseum"
uses: lfreleng-actions/chartmuseum-action@main
with:
password: ${{ secrets.github_token }}
port: 8080
script: 'job.sh'Custom cache isolation:
- name: "Run ChartMuseum with cache isolation"
uses: lfreleng-actions/chartmuseum-action@main
with:
password: ${{ secrets.github_token }}
port: 8080
script: 'job.sh'
cache_key_suffix: '-production'Disable caching (not recommended):
- name: "Run ChartMuseum without caching"
uses: lfreleng-actions/chartmuseum-action@main
with:
password: ${{ secrets.github_token }}
port: 8080
script: 'job.sh'
enable_cache: false| Name | Required | Default | Description |
|---|---|---|---|
| password | True | Password to access ChartMuseum service | |
| username | False | chartmuseum | Username to access ChartMuseum service |
| port | False | 8080 | TCP port on which server will listen |
| directory | False | charts | Directory path to host Helm Charts |
| script | False | Path to shell script containing chart publishing steps | |
| exec_time | False | 120 | Background container/service execution time |
| version | False | v0.16.3 | ghcr.io/helm/chartmuseum container version |
| purge_charts | False | false | Purges any previous charts content at server startup |
| exit | False | true | Terminates the background container when the job completes |
| debug | False | false | Enables Docker container debugging |
| enable_cache | False | true | Enable Docker layer caching for faster builds |
| cache_key_suffix | False | Extra suffix for cache keys to allow cache isolation | |
| helm_repo_name | False | chartmuseum | Sets up Chartmuseum as a named helm repository |
| Name | Description |
|---|---|
| cid | Container ID of running Chartmuseum service |
| container_ip | IP address where Chartmuseum service is available |
Uses the Docker container: