{"id":14985978,"url":"https://github.com/deliverybot/helm","last_synced_at":"2025-04-05T10:10:30.348Z","repository":{"id":35601533,"uuid":"204021298","full_name":"deliverybot/helm","owner":"deliverybot","description":"GitHub action for deploying Helm charts.","archived":false,"fork":false,"pushed_at":"2023-07-12T02:46:43.000Z","size":533,"stargazers_count":131,"open_issues_count":31,"forks_count":221,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-29T09:12:22.720Z","etag":null,"topics":["action","deployment","deployment-automation","helm","kubernetes"],"latest_commit_sha":null,"homepage":"https://deliverybot.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deliverybot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-23T15:07:20.000Z","updated_at":"2025-01-02T22:07:24.000Z","dependencies_parsed_at":"2024-06-18T15:24:34.899Z","dependency_job_id":"23f8a758-ad76-436a-8c91-aa0773914399","html_url":"https://github.com/deliverybot/helm","commit_stats":{"total_commits":102,"total_committers":10,"mean_commits":10.2,"dds":"0.12745098039215685","last_synced_commit":"1c1b8b6230001a6a3bdb3eee1e8e3f96cd14fca5"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deliverybot%2Fhelm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deliverybot%2Fhelm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deliverybot%2Fhelm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deliverybot%2Fhelm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deliverybot","download_url":"https://codeload.github.com/deliverybot/helm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318745,"owners_count":20919484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action","deployment","deployment-automation","helm","kubernetes"],"created_at":"2024-09-24T14:12:04.878Z","updated_at":"2025-04-05T10:10:30.329Z","avatar_url":"https://github.com/deliverybot.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Helm Action\n\nDeploys a helm chart using GitHub actions. Supports canary deployments and\nprovides a built in helm chart for apps that listen over http to get your ramped\nup quickly.\n\nView an example repository using this action at\n[github.com/deliverybot/example-helm](https://github.com/deliverybot/example-helm).\n\n## Parameters\n\n### Inputs\n\nInputs below are additionally loaded from the payload of the deployment event\npayload if the action was triggered by a deployment.\n\n- `release`: Helm release name. Will be combined with track if set. (required)\n- `namespace`: Kubernetes namespace name. (required)\n- `chart`: Helm chart path. If set to \"app\" this will use the built in helm\n  chart found in this repository. (required)\n- `chart_version`: The version of the helm chart you want to deploy (distinct from app version)\n- `values`: Helm chart values, expected to be a YAML or JSON string.\n- `track`: Track for the deployment. If the track is not \"stable\" it activates\n  the canary workflow described below.\n- `task`: Task name. If the task is \"remove\" it will remove the configured helm\n  release.\n- `dry-run`: Helm dry-run option.\n- `token`: Github repository token. If included and the event is a deployment\n  then the deployment_status event will be fired.\n- `value-files`: Additional value files to apply to the helm chart. Expects a\n  JSON encoded array or a string.\n- `secrets`: Secret variables to include in value file interpolation. Expects a\n  JSON encoded map.\n- `helm`: Helm binary to execute, one of: [`helm`, `helm3`].\n- `version`: Version of the app, usually commit sha works here.\n- `timeout`: specify a timeout for helm deployment\n- `repository`: specify the URL for a helm repo to come from\n- `atomic`: If true, upgrade process rolls back changes made in case of failed upgrade. Defaults to true.\n\nAdditional parameters: If the action is being triggered by a deployment event\nand the `task` parameter in the deployment event is set to `\"remove\"` then this\naction will execute a `helm delete $service`\n\n#### Versions\n\n- `helm`: v2.16.1\n- `helm3`: v3.0.0\n\n### Environment\n\n- `KUBECONFIG_FILE`: Kubeconfig file for Kubernetes cluster access.\n\n### Value file interpolation\n\nThe following syntax allows variables to be used in value files:\n\n- `${{ secrets.KEY }}`: References secret variables passed in the secrets input.\n- `${{ deployment }}`: References the deployment event that triggered this\n  action.\n\n## Example\n\n```yaml\n# .github/workflows/deploy.yml\nname: Deploy\non: ['deployment']\n\njobs:\n  deployment:\n    runs-on: 'ubuntu-latest'\n    steps:\n    - uses: actions/checkout@v1\n\n    - name: 'Deploy'\n      uses: 'deliverybot/helm@v1'\n      with:\n        release: 'nginx'\n        namespace: 'default'\n        chart: 'app'\n        token: '${{ github.token }}'\n        values: |\n          name: foobar\n        value-files: \u003e-\n        [\n          \"values.yaml\", \n          \"values.production.yaml\"\n        ]\n      env:\n        KUBECONFIG_FILE: '${{ secrets.KUBECONFIG }}'\n```\n\n## Example canary\n\nIf a track is chosen that is equal to canary, this updates the helm chart\nin a few ways:\n\n1. Release name is changed to `{release}-{track}` (eg. myapp-canary).\n2. The service is disabled on the helm chart `service.enabled=false`\n3. The ingress is disabled on the helm chart `ingress.enabled=false`\n\nNot enabling the service or ingress allows the stable ingress and service\nresources to pick up the canary pods and route traffic to them.\n\n```yaml\n# .github/workflows/deploy.yml\nname: Deploy\non: ['deployment']\n\njobs:\n  deployment:\n    runs-on: 'ubuntu-latest'\n    steps:\n    - uses: actions/checkout@v1\n\n    - name: 'Deploy'\n      uses: 'deliverybot/helm@v1'\n      with:\n        release: 'nginx'\n        track: canary\n        namespace: 'default'\n        chart: 'app'\n        token: '${{ github.token }}'\n        values: |\n          name: foobar\n      env:\n        KUBECONFIG_FILE: '${{ secrets.KUBECONFIG }}'\n```\n\n## Example pr cleanup\n\nIf you are creating an environment per pull request with Helm you may have the\nissue where pull request environments like `pr123` sit around in your cluster.\nBy using GitHub actions we can clean those up by listening for pull request\nclose events.\n\n```yaml\n# .github/workflows/pr-cleanup.yml\nname: PRCleanup\non:\n  pull_request:\n    types: [closed]\n\njobs:\n  deployment:\n    runs-on: 'ubuntu-latest'\n    steps:\n    - name: 'Deploy'\n      uses: 'deliverybot/helm@v1'\n      with:\n        # Task remove means to remove the helm release.\n        task: 'remove'\n        release: 'review-myapp-${{ github.event.pull_request.number }}'\n        version: '${{ github.sha }}'\n        track: 'stable'\n        chart: 'app'\n        namespace: 'example-helm'\n        token: '${{ github.token }}'\n      env:\n        KUBECONFIG_FILE: '${{ secrets.KUBECONFIG }}'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeliverybot%2Fhelm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeliverybot%2Fhelm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeliverybot%2Fhelm/lists"}