-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Argument list is too long #107
Comments
Running into the same issue. |
We're hitting this as well. |
I use this very nice action to write a terraform plan to a PR comment. But very often the plan is too long and I see this same error. Is there an easy way to trim the length to the maximum allowed by GH? |
I have found a solution @JorritSalverda - name: Terraform - Show Plan in PR
uses: actions/github-script@v7.0.1
continue-on-error: true
if: github.event_name == 'pull_request'
with:
script: |
// Get the existing comments.
const {data: comments} = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.number,
})
// Find any comment already made by the bot that contains 'Plan for ${{ inputs.environment-name }}'
const botComment = comments.find(comment => comment.user.login === 'github-actions[bot]' && comment.body.includes(`### Plan for ${{ inputs.environment-name }}`))
// Terraform plan output
const run_url = process.env.GITHUB_SERVER_URL + '/' + process.env.GITHUB_REPOSITORY + '/actions/runs/' + process.env.GITHUB_RUN_ID
const run_link = '<a href="' + run_url + '">Actions</a>.'
const fs = require('fs')
const plan_file = fs.readFileSync('plan.txt', 'utf8')
const plan = plan_file.length > 65000 ? plan_file.toString().substring(0, 65000) + " ..." : plan_file
const truncated_message = plan_file.length > 65000 ? "Output is too long and was truncated. You can read full Plan in " + run_link + "<br /><br />" : ""
const output = `### Plan for ${{ inputs.environment-name }} 😏😏
#### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\`
#### Terraform Plan 📖\`${{ steps.plan_step.outcome }}\`
<details><summary>Show Plan</summary>
\`\`\`diff
${plan}
\`\`\`
</details>
${truncated_message}
*Pusher: @${{ github.actor }}, Action: \`${{ github.event_name }}\`, Working Directory: \`${{ github.workspace }}\`, Workflow: \`${{ github.workflow }}\`*`;
if (botComment) {
console.log('Found existing comment... updating');
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: output
})
} else {
console.log('Creating new comment...');
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: output
})
} This is an example when the output is greater than the limit: |
Thanks @dtcMLOps, That actually set me on the path of doing this in the following way while still using this - name: Create Terraform plan
id: plan
run: |
terraform plan -out=tfplan
terraform show tfplan -no-color > tfplan.txt
- name: Truncate Terraform plan
uses: mathiasvr/command-output@v2.0.0
id: truncate
with:
run: |
maxsize=65000
actualsize=$(wc -c < tfplan.txt)
if [ $actualsize -gt $maxsize ]; then
truncate --size=$maxsize tfplan.txt
echo -n $'\n\n-- truncated due to max PR comment length, check logs from step: Create Terraform plan --' >> tfplan.txt
fi
cat tfplan.txt
- name: Add PR comment
uses: mshick/add-pr-comment@v2
if: ${{ always() }}
with:
message: |
`terraform fmt`: ${{ steps.fmt.outcome }}
`terraform init`: ${{ steps.init.outcome }}
`terraform validate`: ${{ steps.validate.outcome }}
<details open>
<summary>
#### Output from `terraform validate`
</summary>
```hcl
${{ steps.validate.outputs.stdout }}
```
</details>
`terraform plan`: ${{ steps.plan.outcome }}
<details open>
<summary>
#### Output from `terraform plan`
</summary>
```hcl
${{ steps.truncate.outputs.stdout }}
```
</details> It also nicely color codes the plan, although not exactly the same as in the output from |
We are not able to Commnet the PR for more than 262,144 characteristics. We are getting a Argument list is too long error. Requesting you to please let us know if we can increase the limit of the PR characteristics
The text was updated successfully, but these errors were encountered: