Skip to content

Commit

Permalink
Merge pull request #343 from i5okie/feature/chart-releaser-workflow
Browse files Browse the repository at this point in the history
Separate Chart Releaser into bespoke workflow, use fixed action
  • Loading branch information
esune authored Sep 20, 2023
2 parents c8b92d6 + 201983b commit 1e3ec92
Show file tree
Hide file tree
Showing 5 changed files with 488 additions and 24 deletions.
96 changes: 96 additions & 0 deletions .github/actions/chart_releaser/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: "Helm Chart Releaser"
description: "Host a Helm charts repo on GitHub Pages"
author: "The Helm authors"
branding:
color: blue
icon: anchor
inputs:
version:
description: "The chart-releaser version to use (default: v1.6.0)"
required: false
default: v1.6.0
config:
description: "The relative path to the chart-releaser config file"
required: false
charts_dir:
description: The charts directory
required: false
default: charts
install_dir:
description: "Where to install the cr tool"
required: false
install_only:
description: "Just install cr tool"
required: false
skip_packaging:
description: "Skip the packaging option (do your custom packaging before running this action)"
required: false
skip_existing:
description: "Skip package upload if release exists"
required: false
mark_as_latest:
description: Mark the created GitHub release as 'latest'
required: false
default: true
outputs:
changed_charts:
description: "A comma-separated list of charts that were released on this run. Will be an empty string if no updates were detected, will be unset if `--skip_packaging` is used: in the latter case your custom packaging step is responsible for setting its own outputs if you need them."
value: ${{ steps.release.outputs.changed_charts }}
chart_version:
description: "The version of the most recently generated charts; will be set even if no charts have been updated since the last run."
value: ${{ steps.release.outputs.chart_version }}

runs:
using: composite
steps:
- id: release
run: |
owner=$(cut -d '/' -f 1 <<< "$GITHUB_REPOSITORY")
repo=$(cut -d '/' -f 2 <<< "$GITHUB_REPOSITORY")
args=(--owner "$owner" --repo "$repo")
args+=(--charts-dir "${{ inputs.charts_dir }}")
if [[ -n "${{ inputs.version }}" ]]; then
args+=(--version "${{ inputs.version }}")
fi
if [[ -n "${{ inputs.config }}" ]]; then
args+=(--config "${{ inputs.config }}")
fi
if [[ -z "${{ inputs.install_dir }}" ]]; then
install="$RUNNER_TOOL_CACHE/cr/${{ inputs.version }}/$(uname -m)"
echo "$install" >> "$GITHUB_PATH"
args+=(--install-dir "$install")
else
echo ${{ inputs.install_dir }} >> "$GITHUB_PATH"
args+=(--install-dir "${{ inputs.install_dir }}")
fi
if [[ -n "${{ inputs.install_only }}" ]]; then
args+=(--install-only "${{ inputs.install_only }}")
fi
if [[ -n "${{ inputs.skip_packaging }}" ]]; then
args+=(--skip-packaging "${{ inputs.skip_packaging }}")
fi
if [[ -n "${{ inputs.skip_existing }}" ]]; then
args+=(--skip-existing "${{ inputs.skip_existing }}")
fi
if [[ -n "${{ inputs.mark_as_latest }}" ]]; then
args+=(--mark-as-latest "${{ inputs.mark_as_latest }}")
fi
"$GITHUB_ACTION_PATH/cr.sh" "${args[@]}"
if [[ -f changed_charts.txt ]]; then
cat changed_charts.txt >> "$GITHUB_OUTPUT"
fi
if [[ -f chart_version.txt ]]; then
cat chart_version.txt >> "$GITHUB_OUTPUT"
fi
rm -f changed_charts.txt chart_version.txt
shell: bash
Loading

0 comments on commit 1e3ec92

Please sign in to comment.