diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1ca02d5..35959c2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,6 +5,11 @@ on: jobs: ci: runs-on: ubuntu-latest + permissions: + # Give the default GITHUB_TOKEN write permission to commit and push the + # added or changed files to the repository. + contents: write + steps: # Setup dependencies - uses: actions/checkout@v4 @@ -28,11 +33,36 @@ jobs: # Terraform-docs - uses: terraform-docs/gh-actions@v1.1.0 + id: terraform-docs with: working-dir: . output-file: README.md output-method: inject fail-on-diff: true args: --lockfile=false - git-push: "true" # automatically push the changes to the branch + git-push: 'false' + + # Push Terraform-docs changes + - uses: planetscale/ghcommit-action@v0.1.35 + # Run this step even if previous steps fails (there are changes to commit) + # but skip when on forks + if: ${{ !cancelled() && github.repository_owner == 'runatlantis' }} + with: + commit_message: "terraform-docs: automated action" + repo: ${{ github.repository }} + branch: ${{ github.head_ref || github.ref_name }} + file_pattern: 'README.md' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Print instructions to run terraform-docs locally if changes are needed and workflow is running on fork + - if: ${{ !cancelled() && github.repository_owner != 'runatlantis' && steps.terraform-docs.outputs.num_changed > 0 }} + run: | + echo '### Please run terraform-docs locally and commit the changes:' >> $GITHUB_STEP_SUMMARY + echo '' >> $GITHUB_STEP_SUMMARY + echo '```sh' >> $GITHUB_STEP_SUMMARY + echo 'docker run --rm --volume "$(pwd):/terraform-docs" -u $(id -u) quay.io/terraform-docs/terraform-docs:0.17.0 markdown --output-file README.md --output-mode inject /terraform-docs' >> $GITHUB_STEP_SUMMARY + echo 'git add README.md' >> $GITHUB_STEP_SUMMARY + echo 'git commit --amend --no-edit' >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + echo '' >> $GITHUB_STEP_SUMMARY