Convert to composite action and use cache dir (#55)
Switch to composite action so we can get rid of Javascript and install cr to the cache location. Signed-off-by: Reinhard Nägele <unguiculus@gmail.com>
This commit is contained in:
@@ -15,7 +15,7 @@ A GitHub action to turn a GitHub project into a self-hosted Helm chart repo, usi
|
||||
|
||||
For more information on inputs, see the [API Documentation](https://developer.github.com/v3/repos/releases/#input)
|
||||
|
||||
- `version`: The chart-releaser version to use (default: v1.0.0)
|
||||
- `version`: The chart-releaser version to use (default: v1.1.1)
|
||||
- `config`: Optional config file for chart-releaser
|
||||
- `charts_dir`: The charts directory
|
||||
- `charts_repo_url`: The GitHub Pages URL to the charts repo (default: `https://<owner>.github.io/<project>`)
|
||||
@@ -46,8 +46,13 @@ jobs:
|
||||
git config user.name "$GITHUB_ACTOR"
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
with:
|
||||
version: v3.4.0
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.0.0
|
||||
uses: helm/chart-releaser-action@v1.1.1
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
```
|
||||
|
||||
+24
-4
@@ -6,7 +6,7 @@ branding:
|
||||
icon: anchor
|
||||
inputs:
|
||||
version:
|
||||
description: "The chart-releaser version to use (default: v1.0.0)"
|
||||
description: "The chart-releaser version to use (default: v1.1.1)"
|
||||
config:
|
||||
description: "The relative path to the chart-releaser config file"
|
||||
charts_dir:
|
||||
@@ -14,7 +14,27 @@ inputs:
|
||||
default: charts
|
||||
charts_repo_url:
|
||||
description: "The GitHub Pages URL to the charts repo (default: https://<owner>.github.io/<repo>)"
|
||||
required: true
|
||||
runs:
|
||||
using: "node12"
|
||||
main: "main.js"
|
||||
using: composite
|
||||
steps:
|
||||
- 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 [[ -n "${{ inputs.charts_repo_url }}" ]]; then
|
||||
args+=(--charts-repo-url "${{ inputs.charts_repo_url }}")
|
||||
fi
|
||||
|
||||
"$GITHUB_ACTION_PATH/cr.sh" "${args[@]}"
|
||||
shell: bash
|
||||
|
||||
@@ -18,7 +18,7 @@ set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
DEFAULT_CHART_RELEASER_VERSION=v1.1.0
|
||||
DEFAULT_CHART_RELEASER_VERSION=v1.1.1
|
||||
|
||||
show_help() {
|
||||
cat << EOF
|
||||
@@ -177,11 +177,26 @@ parse_command_line() {
|
||||
}
|
||||
|
||||
install_chart_releaser() {
|
||||
echo "Installing chart-releaser..."
|
||||
if [[ ! -d "$RUNNER_TOOL_CACHE" ]]; then
|
||||
echo "Cache directory '$RUNNER_TOOL_CACHE' does not exist" >&2
|
||||
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"
|
||||
|
||||
echo "Installing chart-releaser..."
|
||||
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
|
||||
sudo mv cr /usr/local/bin/cr
|
||||
tar -xzf cr.tar.gz -C "$cache_dir"
|
||||
rm -f cr.tar.gz
|
||||
|
||||
echo 'Adding cr directory to PATH...'
|
||||
export PATH="$cache_dir:$PATH"
|
||||
fi
|
||||
}
|
||||
|
||||
lookup_latest_tag() {
|
||||
@@ -219,7 +234,7 @@ lookup_changed_charts() {
|
||||
package_chart() {
|
||||
local chart="$1"
|
||||
|
||||
local args=(--package-path .cr-release-packages)
|
||||
local args=("$chart" --package-path .cr-release-packages)
|
||||
if [[ -n "$config" ]]; then
|
||||
args+=(--config "$config")
|
||||
fi
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
// Copyright The Helm Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// # You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// # See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
const spawnSync = require('child_process').spawnSync;
|
||||
const path = require("path");
|
||||
|
||||
const proc = spawnSync('bash', [path.join(__dirname, 'main.sh')], {stdio: 'inherit'});
|
||||
process.exit(proc.status)
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright The Helm Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
SCRIPT_DIR=$(dirname -- "$(readlink -f "${BASH_SOURCE[0]}" || realpath "${BASH_SOURCE[0]}")")
|
||||
|
||||
main() {
|
||||
owner=$(cut -d '/' -f 1 <<< "$GITHUB_REPOSITORY")
|
||||
repo=$(cut -d '/' -f 2 <<< "$GITHUB_REPOSITORY")
|
||||
|
||||
args=(--owner "$owner" --repo "$repo")
|
||||
args+=(--charts-dir "${INPUT_CHARTS_DIR?Input 'charts_dir' is required}")
|
||||
|
||||
if [[ -n "${INPUT_VERSION:-}" ]]; then
|
||||
args+=(--version "${INPUT_VERSION}")
|
||||
fi
|
||||
|
||||
if [[ -n "${INPUT_CONFIG:-}" ]]; then
|
||||
args+=(--config "${INPUT_CONFIG}")
|
||||
fi
|
||||
|
||||
if [[ -n "${INPUT_CHARTS_REPO_URL:-}" ]]; then
|
||||
args+=(--charts-repo-url "${INPUT_CHARTS_REPO_URL}")
|
||||
fi
|
||||
|
||||
"$SCRIPT_DIR/cr.sh" "${args[@]}"
|
||||
}
|
||||
|
||||
main
|
||||
Reference in New Issue
Block a user