name: "Charts: Update README" on: workflow_dispatch: inputs: modifiedCharts: required: true type: string isRenovatePR: required: true type: string outputs: commitHash: description: "The most recent commit hash at the end of this workflow" value: ${{ jobs.generate-changelog.outputs.commitHash }} jobs: validate-changelog: name: Validate changelog runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3 with: fetch-depth: 0 - name: Check changelog annotations if: inputs.isRenovatePR != 'true' run: | CHARTS=(${{ inputs.modifiedCharts }}) for i in "${CHARTS[@]}" do IFS='/' read -r -a chart_parts <<< "$i" ./.github/scripts/check-releasenotes.sh "charts/${chart_parts[0]}/${chart_parts[1]}" echo "" done generate-changelog: name: Generate changelog annotations runs-on: ubuntu-latest needs: - validate-changelog outputs: commitHash: ${{ steps.save-commit-hash.outputs.commit_hash }} steps: - name: Checkout uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3 with: fetch-depth: 0 - name: Install Kubernetes tools if: inputs.isRenovatePR == 'true' uses: yokawasa/action-setup-kube-tools@b91bb02bc122bd84ac7bbea5f25ed6b0f2ec6275 # tag=v0.9.2 with: setup-tools: | yq yq: "4.20.1" - name: Annotate Charts.yaml for Renovate PR's if: inputs.isRenovatePR == 'true' env: DEFAULT_BRANCH: "${{ github.event.repository.default_branch }}" run: | CHARTS=(${{ inputs.modifiedCharts }}) for i in "${CHARTS[@]}" do IFS='/' read -r -a chart_parts <<< "$i" ./.github/scripts/renovate-releasenotes.sh "charts/${chart_parts[0]}/${chart_parts[1]}" echo "" done - name: Create commit id: create-commit if: inputs.isRenovatePR == 'true' uses: stefanzweifel/git-auto-commit-action@3ea6ae190baf489ba007f7c92608f33ce20ef04a # v4 with: file_pattern: charts/**/ commit_message: "chore: Auto-update chart metadata [skip ci]" commit_user_name: ${{ github.actor }} commit_user_email: ${{ github.actor }}@users.noreply.github.com - name: Save commit hash id: save-commit-hash run: | if [ "${{ steps.create-commit.outputs.changes_detected || 'unknown' }}" == "true" ]; then echo '::set-output name=commit_hash::${{ steps.create-commit.outputs.commit_hash }}' else echo "::set-output name=commit_hash::${GITHUB_SHA}" fi