diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 0000000..d0f5e48 --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,90 @@ +name: PR Checks + +on: + pull_request: + +permissions: + contents: read + pull-requests: write + +jobs: + Format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: '1.25.4' + check-latest: true + + - name: Format + run: | + # List files that would be reformatted + unformatted=$(go fmt ./...) + if [ -n "$unformatted" ]; then + echo "The following files are not properly formatted:" + echo "$unformatted" + exit 1 + fi + + Vet: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: '1.25.4' + check-latest: true + + - name: Vet + run: | + result=$(go vet ./...) + if [ -n "$result" ]; then + echo "The following errors were reported by 'vet':" + echo "$result" + exit 1 + fi + + Build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: '1.25.4' + check-latest: true + + - name: Build + run: | + result=$(go build ./...) + if [ -n "$result" ]; then + echo "The following errors were reported by 'build':" + echo "$result" + exit 1 + fi + + # Test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v5 + + # - name: Set up Go + # uses: actions/setup-go@v6 + # with: + # go-version: '1.25.4' + # check-latest: true + + # - name: Test + # run: | + # go test -coverprofile=cover.out ./tests/... -coverpkg=./pkg/...,.,./internal/... + + # - name: Coverage Report + # uses: Jannik-Hm/go-test-coverage-report@v1.1 + # with: + # coverprofile: cover.out \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..49e071c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,30 @@ +name: Release + +on: + push: + branches: + - main + +jobs: + Release: + runs-on: ubuntu-latest + + permissions: + contents: write + + steps: + - name: Checkout Code + uses: actions/checkout@v5 + + - name: Bump version and push tag + id: tag_version + uses: mathieudutour/github-tag-action@v6.2 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Publish Release + uses: ncipollo/release-action@v1 + with: + generateReleaseNotes: true + tag: ${{ steps.tag_version.outputs.new_tag }} + prerelease: false \ No newline at end of file