diff --git a/.github/workflows/test-fmt.yaml b/.github/workflows/test-fmt.yaml new file mode 100644 index 0000000..1d2b1aa --- /dev/null +++ b/.github/workflows/test-fmt.yaml @@ -0,0 +1,55 @@ +name: Go Package CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: '1.22' + + - name: Install dependencies + run: make deps + + - name: Run all checks and tests + run: | + make test-all + make check-examples + + format: + needs: test + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: '1.22' + + - name: Format code + run: make fmt + + - name: Check for changes + id: git-check + run: | + git diff --exit-code || echo "changes=true" >> $GITHUB_OUTPUT + + - name: Create Pull Request + if: steps.git-check.outputs.changes == 'true' + uses: peter-evans/create-pull-request@v5 + with: + commit-message: Apply formatting changes + title: 'Auto-format Go code' + body: 'This PR applies automatic formatting to Go code.' + branch: auto-format-${{ github.head_ref }} \ No newline at end of file