Skip to content

Commit

Permalink
update chart release action to use CR release v1.4.0 (#106)
Browse files Browse the repository at this point in the history
* update chart release action to use CR release v1.4.0

Signed-off-by: cpanato <ctadeu@gmail.com>

* update based on review

Signed-off-by: cpanato <ctadeu@gmail.com>
  • Loading branch information
cpanato committed Mar 30, 2022
1 parent 6208805 commit a3454e4
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 20 deletions.
37 changes: 33 additions & 4 deletions .github/workflows/test-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: test-chart-releaser
on: [pull_request]

jobs:
test_chart_releaser_action:
test_chart_releaser_install_action:
runs-on: ubuntu-latest
permissions:
actions: none
Expand All @@ -21,13 +21,42 @@ jobs:
- uses: actions/checkout@v2
- name: Install chart-releaser
uses: ./
with:
install_only: true
env:
CR_TOKEN: "FAKE_SECRETS"
- name: Check install!
run: cr version
- name: Check root directory
run: |
if [[ $(git diff --stat) != '' ]]; then
if ! git diff --stat --exit-code; then
echo 'should be clean'
exit 1
fi
test_chart_releaser_action:
runs-on: ubuntu-latest
permissions:
actions: none
checks: none
contents: none
deployments: none
issues: none
packages: none
pull-requests: none
repository-projects: none
security-events: none
statuses: none
name: Install chart-releaser and run it
steps:
- uses: actions/checkout@v2
- name: Install chart-releaser
uses: ./
env:
CR_TOKEN: "FAKE_SECRETS"
- name: Check root directory
run: |
if ! git diff --stat --exit-code; then
echo 'should be clean'
exit 1
else
exit 0
fi
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ A GitHub action to turn a GitHub project into a self-hosted Helm chart repo, usi

### 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).
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`.
Expand All @@ -15,7 +15,7 @@ maintain your charts in a different directory, you must include a `charts_dir` i

### Inputs

- `version`: The chart-releaser version to use (default: v1.3.0)
- `version`: The chart-releaser version to use (default: v1.4.0)
- `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_repo_url`: The GitHub Pages URL to the charts repo (default: `https://<owner>.github.io/<project>`)
Expand Down Expand Up @@ -55,10 +55,10 @@ jobs:
- name: Install Helm
uses: azure/setup-helm@v1
with:
version: v3.7.1
version: v3.8.1

- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.3.0
uses: helm/chart-releaser-action@v1.4.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
```
Expand All @@ -71,7 +71,7 @@ It does this – during every push to `main` – by checking each chart in your
`workflow.yml`:
```yaml
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.2.0
uses: helm/chart-releaser-action@v1.4.0
with:
charts_dir: charts
config: cr.yaml
Expand All @@ -81,6 +81,7 @@ It does this – during every push to `main` – by checking each chart in your
```

`cr.yaml`:

```yaml
owner: myaccount
git-base-url: https://api.github.com/
Expand Down
27 changes: 26 additions & 1 deletion action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,26 @@ branding:
icon: anchor
inputs:
version:
description: "The chart-releaser version to use (default: v1.3.0)"
description: "The chart-releaser version to use (default: v1.4.0)"
required: false
default: v1.4.0
config:
description: "The relative path to the chart-releaser config file"
required: false
charts_dir:
description: The charts directory
required: false
default: charts
charts_repo_url:
description: "The GitHub Pages URL to the charts repo (default: https://<owner>.github.io/<repo>)"
required: false
install_dir:
description: 'Where to install the cr tool'
required: false
install_only:
description: 'Just install cr tool'
required: false

runs:
using: composite
steps:
Expand All @@ -36,5 +48,18 @@ runs:
args+=(--charts-repo-url "${{ inputs.charts_repo_url }}")
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
"$GITHUB_ACTION_PATH/cr.sh" "${args[@]}"
shell: bash
44 changes: 34 additions & 10 deletions cr.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ set -o errexit
set -o nounset
set -o pipefail

DEFAULT_CHART_RELEASER_VERSION=v1.3.0
DEFAULT_CHART_RELEASER_VERSION=v1.4.0

show_help() {
cat << EOF
Expand All @@ -31,6 +31,8 @@ Usage: $(basename "$0") <options>
-u, --charts-repo-url The GitHub Pages URL to the charts repo (default: https://<owner>.github.io/<repo>)
-o, --owner The repo owner
-r, --repo The repo name
-n, --install-dir The Path to install the cr tool
-i, --install-only Just install the cr tool
EOF
}

Expand All @@ -41,6 +43,8 @@ main() {
local owner=
local repo=
local charts_repo_url=
local install_dir=
local install_only=

parse_command_line "$@"

Expand Down Expand Up @@ -151,6 +155,18 @@ parse_command_line() {
exit 1
fi
;;
-n|--install-dir)
if [[ -n "${2:-}" ]]; then
install_dir="$2"
shift
fi
;;
-i|--install-only)
if [[ -n "${2:-}" ]]; then
install_only="$2"
shift
fi
;;
*)
break
;;
Expand All @@ -174,6 +190,18 @@ parse_command_line() {
if [[ -z "$charts_repo_url" ]]; then
charts_repo_url="https://$owner.github.io/$repo"
fi

if [[ -z "$install_dir" ]]; then
local arch
arch=$(uname -m)
install_dir="$RUNNER_TOOL_CACHE/cr/$version/$arch"
fi

if [[ -n "$install_only" ]]; then
echo "Will install cr tool and not run it..."
install_chart_releaser
exit 0
fi
}

install_chart_releaser() {
Expand All @@ -182,21 +210,17 @@ install_chart_releaser() {
exit 1
fi

local arch
arch=$(uname -m)

local cache_dir="$RUNNER_TOOL_CACHE/ct/$version/$arch"
if [[ ! -d "$cache_dir" ]]; then
mkdir -p "$cache_dir"
if [[ ! -d "$install_dir" ]]; then
mkdir -p "$install_dir"

echo "Installing chart-releaser..."
echo "Installing chart-releaser on $install_dir..."
curl -sSLo cr.tar.gz "https://github.com/helm/chart-releaser/releases/download/$version/chart-releaser_${version#v}_linux_amd64.tar.gz"
tar -xzf cr.tar.gz -C "$cache_dir"
tar -xzf cr.tar.gz -C "$install_dir"
rm -f cr.tar.gz
fi

echo 'Adding cr directory to PATH...'
export PATH="$cache_dir:$PATH"
export PATH="$install_dir:$PATH"
}

lookup_latest_tag() {
Expand Down

0 comments on commit a3454e4

Please sign in to comment.