CSharpier #58
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |