{"id":21539325,"url":"https://github.com/nextdoor/helm-set-image-tag-action","last_synced_at":"2025-04-10T03:25:53.506Z","repository":{"id":39585823,"uuid":"381414237","full_name":"Nextdoor/helm-set-image-tag-action","owner":"Nextdoor","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-02T16:33:16.000Z","size":19,"stargazers_count":8,"open_issues_count":4,"forks_count":10,"subscribers_count":68,"default_branch":"main","last_synced_at":"2024-04-14T09:58:15.192Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nextdoor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-06-29T15:32:17.000Z","updated_at":"2024-08-11T08:36:15.267Z","dependencies_parsed_at":"2024-02-24T17:23:54.425Z","dependency_job_id":"cfac414a-3391-4e71-8ae8-9555c7d8d87e","html_url":"https://github.com/Nextdoor/helm-set-image-tag-action","commit_stats":{"total_commits":5,"total_committers":4,"mean_commits":1.25,"dds":0.6,"last_synced_commit":"9e8c2f9a8c45d958fbc950e5c1f2177bdb0615ef"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nextdoor%2Fhelm-set-image-tag-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nextdoor%2Fhelm-set-image-tag-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nextdoor%2Fhelm-set-image-tag-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nextdoor%2Fhelm-set-image-tag-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nextdoor","download_url":"https://codeload.github.com/Nextdoor/helm-set-image-tag-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248149953,"owners_count":21055838,"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":[],"created_at":"2024-11-24T04:14:46.152Z","updated_at":"2025-04-10T03:25:53.478Z","avatar_url":"https://github.com/Nextdoor.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `helm-set-image-tag-action`\n\nThis action is designed to help you automatically update your Helm charts to\npoint to the most recent releases of your application (ie, a Docker Image Tag)\nand rev your Helm Chart accordingly. The goal is to create a continuous\ndelivery process that is entirely Git based.\n\n## Basic Flow\n\nThe general idea here is that a human being decides to release a new version of\nan application from their repository - so a developer creates a Github Release\nto rev the version of their application (say from `v1.2.2` to `v1.2.3`) after\nsufficient testing has been done.\n\nOnce that has been done, we want to fully automate the process of updating the\nHelm `values.yaml` file, as well as revving the `Chart.yaml` version key, and\neven updating the Helm Documentation. Here is an example flow.\n\n1. Developer commits code into `HEAD` in their repository.\n2. Testing and iteration occurs on that code...\n3. Developer tags new release `v1.2.3` pointing to SHA `abcdefg1`.\n3. CI system builds Docker artifact `myapp:v1.2.3`\n   (hint: [Nextdoor/docker-image-retag-action][docker-image-retag-action])\n4. This action is triggered and runs through a few steps:\n   1. Updates the `values.yaml` file and sets `image.tag: v1.2.3`\n   2. Updates the `Chart.yaml` and automatically revs the version from `0.1.42` to `0.1.43`\n   3. Re-generates the Helm Documentation to match\n   4. Commits all of the above changes back to a target branch (if `commit_branch` is set)\n   5. Creates a release tag that points to the newly created commit (if `commit_tag` is set)\n\n### Understanding `commit_branch`\n\nWhen you set `commit_branch`, the action starts by checking out the branch you've supplied. This is done so that the newly created commit \n\n### Understanding `commit_tag`\n\n## Usage\n\n```yaml\n# .github/workflows/release.yml\nname: Release\non:\n  push:\n    branches:\n      # Generally you probably do not want to run this on branches because\n      # you'll get a new Helm Chart version commit for every single commit into\n      # your branch. It would be very noisy.\n      - '!*'\n    tags:\n      # Trigger this on the tag format that your developers are using for the\n      # core application/docker-image tag.\n      - v*\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@master\n      with:\n        fetch-depth: '0'  # this is important for the git writeback\n\n    - name: Retag Docker Image for Production\n      uses: Nextdoor/docker-image-retag-action@main\n        ...\n\n    - name: Update Helm Chart Values\n      uses: Nextdoor/helm-set-image-tag-action@main\n      with:\n        # A comma-separated list of Values files to update. We default to\n        # `chart/values.yaml`, but you can patch multiple values files at once if\n        # you need to. There should be only one chart being updated though. To\n        # update multiple charts, run this action multiple times.\n        #\n        values_files: charts/app/values.yaml\n\n        # A comma-separated list of keys to update within the Values file(s).\n        # The keys should be in Dot-notation and always start with a `.`. Only\n        # one \"value\" can be applied to these tags (see `tag_value` below) - so\n        # multiple keys here only makes sense if you use the image tag value in\n        # multiple places inside your chart.\n        #\n        # tag_keys: .image.tag\n\n        # This is the value that will be set in the Values files on the Tag\n        # Keys (see above). If this build is running on git tag `v1.2.3` and your\n        # docker image tag is `release-v1.2.3`, then you would set this to\n        # `release-${{ github.ref }}`\n        #\n        tag_value: ${{ github.ref }}\n\n        # This is the sem-ver level that will be bumped for each release.\n        # `major`, `minor`, `path` or `null` are allowed. If you set `null` then\n        # it will skip bumping the version.\n        #\n        # bump_level: patch\n\n        # `true` or `false` - whether or not to run the helm-docs generator.\n        #\n        # helm_docs: true\n\n        # Generally you want to set this to whatever your primary `HEAD` commit\n        # points to (`main` or `master` typically). Without setting this, a\n        # detached-commit will be created but no pointer will exist for it. You\n        # will need to introduce your own code to create a branch or tag that\n        # points to this commit.\n        #\n        commit_branch: main\n\n        # Instead of (or in addition to) putting the newly created release\n        # commit on the $commit_branch, you can also create a tag that points to\n        # this commit. This allows you to avoid writing back to main if you\n        # prefer to use git tags to maintain your releases. \n        #\n        # In this example, we take the \"tag name\" that we were triggered on and\n        # create a new tag appending \"-chart\" to it.\n        #\n        commit_tag: ${{ github.ref }}-chart\n\n        # Whether to commit and push to the remote repository, default to true.\n        # You can modify multiple keys and values in the values file by calling\n        # this action multiple times but only setting commit_and_push to true in\n        # the last call.\n        #\n        # commit_and_push: true\n\n        # Override the message used in the git commit.\n        #\n        # commit_message: Automated commit on behalf-of ${{ github.actor }}\n\n        # Optional commit arguments\n        #\n        # commit_options: ''\n\n        # Set the action to run in `set -x` mode for very verbose logging. Set\n        # to `true` or `false`.\n        #\n        # verbose: false\n\n        # Optionally run the action in 'dry' mode - where all of the normal\n        # actions happen, but no `git commit` happens. Useful for initial testing\n        # of the configuration. Set to `true` or `false`.\n        #\n        # dry: false\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextdoor%2Fhelm-set-image-tag-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnextdoor%2Fhelm-set-image-tag-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextdoor%2Fhelm-set-image-tag-action/lists"}