Skip to content

CSharpier

CSharpier #71

Workflow file for this run

name: CSharpier
on:
workflow_dispatch:
inputs:
owner:
description: "The owner of the repository to run"
required: true
default: "guibranco"
repository:
description: "The repository to run"
required: true
default: "gstraccini-bot"
branch:
description: "The branch to run"
required: true
default: "main"
pull_request:
description: "The pull request number"
required: true
default: "-1"
installationId:
description: "The installation id"
required: true
default: "-1"
env:
GHA_URL: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
jobs:
csharpier:
permissions: write-all
runs-on: ubuntu-latest
steps:
- name: Generate a token
id: generate_token
uses: tibdex/github-app-token@v2.1.0
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
installation_retrieval_mode: id
installation_retrieval_payload: ${{ github.event.inputs.installationId }}
- name: Checkout repo
uses: actions/checkout@v4
with:
repository: "${{ github.event.inputs.owner}}/${{ github.event.inputs.repository }}"
ref: ${{ github.event.inputs.branch }}
token: ${{ steps.generate_token.outputs.token }}
- name: Setup .NET
uses: actions/setup-dotnet@v4
- name: Dotnet restore
run: dotnet tool restore
- name: CSharpier format check
continue-on-error: true
run: |
set -e
echo "$(dotnet csharpier . --check 2>&1 > /dev/null)" >> csharpier.log
- name: Read csharpier.log
uses: guibranco/github-file-reader-action-v2@latest
id: log
with:
path: csharpier.log
- name: Delete csharpier.log
run: rm csharpier.log 2> /dev/null
- name: Update PR with comment
uses: mshick/add-pr-comment@v2
if: ${{ steps.log.outputs.contents != '' }}
with:
repo-token: ${{ steps.generate_token.outputs.token }}
repo-owner: ${{ github.event.inputs.owner }}
repo-name: ${{ github.event.inputs.repository }}
issue: ${{ github.event.inputs.pull_request }}
refresh-message-position: true
allow-repeats: true
message: |
:white_check_mark: [CSharpier](${{ env.GHA_URL }}) result:
```
${{ steps.log.outputs.contents }}
```
- name: Update PR with comment
uses: mshick/add-pr-comment@v2
if: ${{ steps.log.outputs.contents == '' }}
with:
repo-token: ${{ steps.generate_token.outputs.token }}
repo-owner: ${{ github.event.inputs.owner }}
repo-name: ${{ github.event.inputs.repository }}
issue: ${{ github.event.inputs.pull_request }}
refresh-message-position: true
allow-repeats: true
message: |
:warning: [CSharpier](${{ env.GHA_URL }}) executed! No changes are needed.
- name: CSharpier format
run: dotnet csharpier .
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v17
id: verify-changed-files
- name: Config git
if: steps.verify-changed-files.outputs.files_changed == 'true'
run: |
git config --local user.email "${{ github.event.inputs.installationId }}+gstraccini[bot]@users.noreply.github.com"
git config --local user.name "gstraccini[bot]"
git config --global --add --bool push.autoSetupRemote true
- name: Commit files
if: steps.verify-changed-files.outputs.files_changed == 'true'
run: |
git add .
git commit -m "CSharpier format"
echo "sha1=$(git rev-parse HEAD)" >> $GITHUB_ENV
git push origin ${{ github.event.inputs.branch }}
- name: Update PR with comment
uses: mshick/add-pr-comment@v2
if: failure()
with:
repo-token: ${{ steps.generate_token.outputs.token }}
repo-owner: ${{ github.event.inputs.owner }}
repo-name: ${{ github.event.inputs.repository }}
issue: ${{ github.event.inputs.pull_request }}
refresh-message-position: true
allow-repeats: true
message: |
:x: [CSharpier](${{ env.GHA_URL }}) failed!