add skip-packaging option (#109)

Signed-off-by: Gary Morse <gmorse81@gmail.com>

Signed-off-by: Gary Morse <gmorse81@gmail.com>
This commit is contained in:
Gary Morse
2022-11-23 13:15:26 +01:00
committed by GitHub
parent 98bccfd32b
commit 38cfeacdbb
3 changed files with 52 additions and 27 deletions
+4 -2
View File
@@ -1,4 +1,4 @@
# *chart-releaser* Action # _chart-releaser_ Action
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. 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.
@@ -7,7 +7,7 @@ A GitHub action to turn a GitHub project into a self-hosted Helm chart repo, usi
### Pre-requisites ### Pre-requisites
1. A GitHub repo containing a directory with your Helm charts (default is a folder named `/charts`, if you want to 1. A GitHub repo containing a directory with your Helm charts (default is a folder named `/charts`, if you want to
maintain your charts in a different directory, you must include a `charts_dir` input in the workflow). maintain your charts in a different directory, you must include a `charts_dir` input in the workflow).
1. A GitHub branch called `gh-pages` to store the published charts. See `charts_repo_url` for alternatives. 1. A GitHub branch called `gh-pages` to store the published charts. See `charts_repo_url` for alternatives.
1. In your repo, go to Settings/Pages. Change the `Source` `Branch` to `gh-pages`. 1. In your repo, go to Settings/Pages. Change the `Source` `Branch` to `gh-pages`.
1. Create a workflow `.yml` file in your `.github/workflows` directory. An [example workflow](#example-workflow) is available below. 1. Create a workflow `.yml` file in your `.github/workflows` directory. An [example workflow](#example-workflow) is available below.
@@ -19,6 +19,7 @@ maintain your charts in a different directory, you must include a `charts_dir` i
- `config`: Optional config file for chart-releaser. For more information on the config file, see the [documentation](https://github.com/helm/chart-releaser#config-file) - `config`: Optional config file for chart-releaser. For more information on the config file, see the [documentation](https://github.com/helm/chart-releaser#config-file)
- `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/<project>`) - `charts_repo_url`: The GitHub Pages URL to the charts repo (default: `https://<owner>.github.io/<project>`)
- `skip_packaging`: This option, when populated, will skip the packaging step. This allows you to do more advanced packaging of your charts (for example, with the `helm package` command) before this action runs. This action will only handle the indexing and publishing steps.
### Environment variables ### Environment variables
@@ -73,6 +74,7 @@ It does this during every push to `main` by checking each chart in your
#### Example using custom config #### Example using custom config
`workflow.yml`: `workflow.yml`:
```yaml ```yaml
- name: Run chart-releaser - name: Run chart-releaser
uses: helm/chart-releaser-action@v1.4.1 uses: helm/chart-releaser-action@v1.4.1
+9 -2
View File
@@ -20,10 +20,13 @@ inputs:
description: "The GitHub Pages URL to the charts repo (default: https://<owner>.github.io/<repo>)" description: "The GitHub Pages URL to the charts repo (default: https://<owner>.github.io/<repo>)"
required: false required: false
install_dir: install_dir:
description: 'Where to install the cr tool' description: "Where to install the cr tool"
required: false required: false
install_only: install_only:
description: 'Just install cr tool' description: "Just install cr tool"
required: false
skip_packaging:
description: "skip the packaging option (do your custom packaging before running this action"
required: false required: false
runs: runs:
@@ -61,5 +64,9 @@ runs:
args+=(--install-only "${{ inputs.install_only }}") args+=(--install-only "${{ inputs.install_only }}")
fi fi
if [[ -n "${{ inputs.skip_packaging }}" ]]; then
args+=(--skip-packaging "${{ inputs.skip_packaging }}")
fi
"$GITHUB_ACTION_PATH/cr.sh" "${args[@]}" "$GITHUB_ACTION_PATH/cr.sh" "${args[@]}"
shell: bash shell: bash
+16
View File
@@ -33,6 +33,7 @@ Usage: $(basename "$0") <options>
-r, --repo The repo name -r, --repo The repo name
-n, --install-dir The Path to install the cr tool -n, --install-dir The Path to install the cr tool
-i, --install-only Just install the cr tool -i, --install-only Just install the cr tool
-s, --skip-packaging Skip the packaging step (run your own packaging before using the releaser)
EOF EOF
} }
@@ -45,6 +46,7 @@ main() {
local charts_repo_url= local charts_repo_url=
local install_dir= local install_dir=
local install_only= local install_only=
local skip_packaging=
parse_command_line "$@" parse_command_line "$@"
@@ -54,6 +56,7 @@ main() {
repo_root=$(git rev-parse --show-toplevel) repo_root=$(git rev-parse --show-toplevel)
pushd "$repo_root" > /dev/null pushd "$repo_root" > /dev/null
if ! [[ -n "$skip_packaging" ]]; then
echo 'Looking up latest tag...' echo 'Looking up latest tag...'
local latest_tag local latest_tag
latest_tag=$(lookup_latest_tag) latest_tag=$(lookup_latest_tag)
@@ -84,6 +87,13 @@ main() {
else else
echo "Nothing to do. No chart changes detected." echo "Nothing to do. No chart changes detected."
fi fi
else
install_chart_releaser
rm -rf .cr-index
mkdir -p .cr-index
release_charts
update_index
fi
popd > /dev/null popd > /dev/null
} }
@@ -167,6 +177,12 @@ parse_command_line() {
shift shift
fi fi
;; ;;
-s|--skip-packaging)
if [[ -n "${2:-}" ]]; then
skip_packaging="$2"
shift
fi
;;
*) *)
break break
;; ;;