@@ -1,29 +1,33 @@
|
|||||||
# Chart releaser action
|
# Chart releaser action
|
||||||
|
|
||||||
A GitHub action to turn a GitHub repo into a self-hosted Helm chart repo, using [helm/chart-releaser](https://github.com/helm/chart-releaser) CLI tool.
|
A GitHub action to turn a GitHub project into a self-hosted Helm chart repo, using [helm/chart-releaser](https://github.com/helm/chart-releaser) CLI tool.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Pre-requisites
|
### Pre-requisites
|
||||||
|
|
||||||
1. A GitHub repo containing a directory with your Helm charts (eg: `/charts`)
|
1. A GitHub repo containing a directory with your Helm charts (eg: `/charts`)
|
||||||
1. A GitHub token
|
1. A GitHub project [Secret](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets#creating-encrypted-secrets) named `CR_TOKEN` with the value of a GitHub [personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line#creating-a-token)
|
||||||
1. Create a workflow `.yml` file in your `.github/workflows` directory. An [example workflow](#example-workflow) is available below. For more information, reference the GitHub Help Documentation for [Creating a workflow file](https://help.github.com/en/articles/configuring-a-workflow#creating-a-workflow-file).
|
* The token must have `repo` scope
|
||||||
|
* The token's user must have write access to the project
|
||||||
|
* To mitigate risk you may wish to limit the token to a single project by creating a [machine user](https://developer.github.com/v3/guides/managing-deploy-keys/#machine-users)
|
||||||
|
* Please note the personal access token is required because of an [Actions bug](https://github.com/JamesIves/github-pages-deploy-action/issues/5), and will hopefully be unnecessary in the future
|
||||||
|
1. Create a workflow `.yml` file in your `.github/workflows` directory. An [example workflow](#example-workflow) is available below. For more information, reference the GitHub Help Documentation for [Creating a workflow file](https://help.github.com/en/articles/configuring-a-workflow#creating-a-workflow-file)
|
||||||
|
|
||||||
### Inputs
|
### Inputs
|
||||||
|
|
||||||
For more information on these inputs, see the [API Documentation](https://developer.github.com/v3/repos/releases/#input)
|
For more information on inputs, see the [API Documentation](https://developer.github.com/v3/repos/releases/#input)
|
||||||
|
|
||||||
- `charts-dir`: The charts directory
|
- `charts-dir`: The charts directory
|
||||||
- `charts-repo-url`: The GitHub Pages URL to the charts repo (default: `https://<owner>.github.io/<repo>`)
|
- `charts-repo-url`: The GitHub Pages URL to the charts repo (default: `https://<owner>.github.io/<project>`)
|
||||||
- `token`: The GitHub token
|
- `token`: The GitHub token
|
||||||
|
|
||||||
### Example workflow
|
### Example workflow
|
||||||
|
|
||||||
Create a workflow (eg: .github/workflows/chart-testing.yml see Creating a Workflow file):
|
Create a workflow (eg: `.github/workflows/release.yml`. replace `<owner>` and `<project>` with your GitHub project's owner and project name):
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: chart actions
|
name: Release Charts
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -31,18 +35,27 @@ on:
|
|||||||
- master
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Configure Git
|
||||||
|
run: |
|
||||||
|
git config user.name "GitHub Actions"
|
||||||
|
git config user.email noreply@github.com
|
||||||
|
|
||||||
- name: Run chart-releaser
|
- name: Run chart-releaser
|
||||||
uses: helm/chart-releaser-action@v1
|
uses: helm/chart-releaser-action@master
|
||||||
|
env:
|
||||||
|
CR_TOKEN: "${{ secrets.CR_TOKEN }}"
|
||||||
with:
|
with:
|
||||||
token: "${{ secrets.GITHUB_TOKEN }}"
|
owner: <owner>
|
||||||
|
repo: <project>
|
||||||
```
|
```
|
||||||
|
|
||||||
This uses [`@helm/chart-releaser-action`](https://www.github.com/helm/chart-releaser-action) to turn a GitHub repo into a self-hosted Helm chart repo. It does this – during every push to `master` – by checking each chart in your GitHub repo, and whenever there's a new chart version, creates a corresponding [GitHub release](https://help.github.com/en/github/administering-a-repository/about-releases) named for the chart version, adds Helm chart artifacts to the release, and creates or updates an `index.yaml` file with metadata about those releases which is then hosted on GitHub Pages.
|
This uses [@helm/chart-releaser-action](https://www.github.com/helm/chart-releaser-action) to turn your GitHub project into a self-hosted Helm chart repo. It does this – during every push to `master` – by checking each chart in your project, and whenever there's a new chart version, creates a corresponding [GitHub release](https://help.github.com/en/github/administering-a-repository/about-releases) named for the chart version, adds Helm chart artifacts to the release, and creates or updates an `index.yaml` file with metadata about those releases, which is then hosted on GitHub Pages
|
||||||
|
|
||||||
## Code of conduct
|
## Code of conduct
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user