--- name: "Helm Release Differ" on: # yamllint disable-line rule:truthy pull_request: branches: - main paths: - "cluster/**.yaml" env: # Currently no way to detect automatically DEFAULT_BRANCH: main BOT_USERNAME: "feisar-bot[bot]" jobs: detect-file-changes: name: Detect File Changes runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Filter Helm Releases uses: dorny/paths-filter@v2 id: filter with: list-files: json filters: | yaml: - added|modified: "**/helm-release.yaml" outputs: yaml_files: ${{ steps.filter.outputs.yaml_files }} helm-release-differ: name: Helm Release Differ runs-on: ubuntu-latest needs: detect-file-changes strategy: matrix: file: ${{ fromJSON(needs.detect-file-changes.outputs.yaml_files) }} steps: - name: Checkout uses: actions/checkout@v3 - name: Generate Token uses: tibdex/github-app-token@v1 id: generate-token with: app_id: ${{ secrets.BOT_APP_ID }} private_key: ${{ secrets.BOT_APP_PRIVATE_KEY }} - name: Checkout default branch uses: actions/checkout@v3 with: ref: "${{ env.DEFAULT_BRANCH }}" path: default - name: Install Helm uses: azure/setup-helm@v3 with: version: latest - name: Helm Release Differ id: diff run: | diff=$(.github/scripts/helm-release-differ.sh --source-file "default/${{ matrix.file }}" --target-file "${{ matrix.file }}" --remove-common-labels) echo "${diff}" diff="${diff//'%'/'%25'}" diff="${diff//$'\n'/'%0A'}" diff="${diff//$'\r'/'%0D'}" echo "::set-output name=diff::$(echo ${diff})" - name: Find Comment uses: peter-evans/find-comment@v2 id: find-comment with: issue-number: "${{ github.event.pull_request.number }}" comment-author: "${{ env.BOT_USERNAME }}" body-includes: "${{ matrix.file }}" - name: Create or update comment uses: peter-evans/create-or-update-comment@v2 with: token: "${{ steps.generate-token.outputs.token }}" comment-id: "${{ steps.find-comment.outputs.comment-id }}" issue-number: "${{ github.event.pull_request.number }}" body: "${{ steps.diff.outputs.diff }}" edit-mode: replace