name: "Charts: Release" concurrency: helm-release on: workflow_dispatch: push: branches: - master paths: - 'charts/**' jobs: generate-readme: name: Auto-generate chart README runs-on: ubuntu-20.04 steps: - name: Get k8s-at-home token id: get-app-token uses: getsentry/action-github-app-token@v1 with: app_id: ${{ secrets.K8S_AT_HOME_APP_ID }} private_key: ${{ secrets.K8S_AT_HOME_APP_PRIVATE_KEY }} - name: Checkout uses: actions/checkout@v2 with: token: ${{ steps.get-app-token.outputs.token }} ref: master - uses: dorny/paths-filter@v2 id: filter with: base: ${{ github.ref }} list-files: shell filters: | addedOrModified: - added|modified: 'charts/**' - name: Install Helm if: steps.filter.outputs.addedOrModified == 'true' uses: azure/setup-helm@v1 with: version: v3.5.3 - uses: actions/setup-python@v2 if: steps.filter.outputs.addedOrModified == 'true' with: python-version: 3.7 - name: Install helm-docs if: steps.filter.outputs.addedOrModified == 'true' run: | wget -O /tmp/helm-docs.deb https://github.com/norwoodj/helm-docs/releases/download/v1.5.0/helm-docs_1.5.0_linux_amd64.deb sudo dpkg -i /tmp/helm-docs.deb - name: Run against changed charts if: steps.filter.outputs.addedOrModified == 'true' run: | CHARTS=() PATHS=(${{ steps.filter.outputs.addedOrModified_files }}) # Get only the chart paths for i in "${PATHS[@]}" do IFS='/' read -r -a path_parts <<< "$i" CHARTS+=("${path_parts[1]}/${path_parts[2]}") done # Remove duplicates CHARTS=( `for i in ${CHARTS[@]}; do echo $i; done | sort -u` ) for i in "${CHARTS[@]}" do echo "Rendering README for chart ${i}" IFS='/' read -r -a chart_parts <<< "$i" if [ -f "charts/${chart_parts[0]}"/"${chart_parts[1]}/Chart.yaml" ]; then ./hack/gen-helm-docs.sh "${chart_parts[0]}" "${chart_parts[1]}" fi echo "" done - name: Create commit if: steps.filter.outputs.addedOrModified == 'true' uses: stefanzweifel/git-auto-commit-action@v4 with: push_options: --force commit_message: Auto-generate chart README [no ci] commit_user_name: k8s-at-home[bot] commit_user_email: k8s-at-home[bot]@users.noreply.github.com commit_author: k8s-at-home[bot] file_pattern: charts/**/ release: runs-on: ubuntu-20.04 needs: - generate-readme steps: - name: Get k8s-at-home token id: get-app-token uses: getsentry/action-github-app-token@v1 with: app_id: ${{ secrets.K8S_AT_HOME_APP_ID }} private_key: ${{ secrets.K8S_AT_HOME_APP_PRIVATE_KEY }} - name: Checkout uses: actions/checkout@v2 with: token: ${{ steps.get-app-token.outputs.token }} ref: master fetch-depth: 0 - name: Configure Git run: | git config user.name "k8s-at-home[bot]" git config user.email "k8s-at-home[bot]@users.noreply.github.com" - name: Install Helm uses: azure/setup-helm@v1 with: version: v3.5.4 - name: Run chart-releaser uses: helm/chart-releaser-action@v1.2.1 with: charts_dir: charts/* charts_repo_url: https://k8s-at-home.com/charts/ env: CR_TOKEN: "${{ steps.get-app-token.outputs.token }}" CR_SKIP_EXISTING: "true" generate-summary: name: Auto-generate charts summary runs-on: ubuntu-20.04 steps: - name: Get k8s-at-home token id: get-app-token uses: getsentry/action-github-app-token@v1 with: app_id: ${{ secrets.K8S_AT_HOME_APP_ID }} private_key: ${{ secrets.K8S_AT_HOME_APP_PRIVATE_KEY }} - name: Checkout uses: actions/checkout@v2 with: token: ${{ steps.get-app-token.outputs.token }} ref: ${{ github.ref }} - name: Install yq uses: chrisdickinson/setup-yq@latest with: yq-version: v4.9.3 - name: Run script run: | ./hack/gen-chart-summary.sh - name: Create Commit uses: stefanzweifel/git-auto-commit-action@v4 with: push_options: --force commit_message: Auto-generate chart summary [no ci] commit_user_name: k8s-at-home[bot] commit_user_email: k8s-at-home[bot]@users.noreply.github.com commit_author: k8s-at-home[bot] file_pattern: charts/README.md