Update index.yaml (#81) #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release Charts | |
on: | |
push: | |
branches: ["main"] | |
jobs: | |
release: | |
# depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions | |
# see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Configure Git | |
run: | | |
git config user.name "$GITHUB_ACTOR" | |
git config user.email "[email protected]" | |
- name: Install Helm | |
uses: azure/[email protected] | |
with: | |
version: v3.8.1 | |
- name: Add repositories | |
run: | | |
helm dependency list charts/druid #shows the output of dependencies | |
helm dependency list charts/druid 2> /dev/null | tail +2 | head -n -1 | awk '{ print "helm repo add " $1 " " $3 }' | while read cmd; do $cmd; done | |
- name: Prepare GPG key # Prepares GPG fields to sign chart | |
run: | | |
gpg_dir=.cr-gpg | |
mkdir "$gpg_dir" | |
keyring="$gpg_dir/secring.gpg" #referring keyring to private key of gpg | |
base64 -d <<< "$GPG_KEYRING_BASE64" > "$keyring" #storing base64 GPG key into keyring | |
passphrase_file="$gpg_dir/passphrase" | |
echo "$GPG_PASSPHRASE" > "$passphrase_file" #storing passphrase data into a file | |
echo "CR_PASSPHRASE_FILE=$passphrase_file" >> "$GITHUB_ENV" #saving passphrase into github-environment | |
echo "CR_KEYRING=$keyring" >> "$GITHUB_ENV" #saving private key into github-environment | |
env: | |
GPG_KEYRING_BASE64: "${{ secrets.GPG_KEYRING_BASE64 }}" | |
GPG_PASSPHRASE: "${{ secrets.GPG_PASSPHRASE }}" | |
- name: Run chart-releaser # Generates new version of helm chart along with some file with extension .prov | |
uses: helm/[email protected] | |
with: | |
# To add in after chart-releaser-action allows this: | |
# skip_upload: true # Skips the index step. | |
skip_existing: true # If left false, having a .tgz file in main repository will throw error. | |
packages_with_index: true | |
charts_dir: charts | |
pages_branch: main | |
env: | |
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
CR_KEY: "${{ secrets.CR_KEY }}" # Key name used while creating key | |
CR_SIGN: true # Set to true to sign images | |
- name: Clean-up and shift files to releases directory | |
run: | | |
mkdir -p releases/ | |
shopt -s nullglob | |
files=(.cr-release-packages/druid-*) | |
# Move files to releases directory | |
if [ ${#files[@]} -gt 0 ]; then | |
git stash | |
git pull -X ours origin main # To remove after chart-releaser-action allows skip_upload | |
git stash pop | |
mv .cr-release-packages/druid-* releases/ | |
git add releases/druid-* | |
else | |
echo "No files starting with 'druid-' found in .cr-release-packages/" | |
fi | |
# Remove old druid-*.tgz files from the root directory if they exist | |
tgz_files=(druid-*.tgz) | |
if [ ${#tgz_files[@]} -gt 0 ]; then | |
git rm -f ./druid-*.tgz | |
else | |
echo "No .tgz file to remove" | |
fi | |
# Commit and push changes if any files were staged | |
if git diff --cached --quiet; then | |
echo "No changes to commit." | |
else | |
helm repo index . | |
git add index.yaml | |
git commit -m "Update releases directory" | |
git push origin main | |
fi | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
linter-artifacthub: | |
runs-on: ubuntu-latest | |
container: | |
image: artifacthub/ah | |
options: --user 1001 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@master | |
- name: Run ah lint | |
working-directory: . | |
run: ah lint |