From 519cfcf7b706bdc33b8345e54e08a8db02cea317 Mon Sep 17 00:00:00 2001 From: Martin Riedl Date: Sun, 23 Feb 2025 16:58:20 +0100 Subject: [PATCH] ci: new workflow for forgejo --- .forgejo/workflows/build.yml | 71 ++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .forgejo/workflows/build.yml diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 0000000..45ed024 --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,71 @@ +name: Build + +on: + push: + branches: + - main + - develop + pull_request: + +jobs: + checks: + name: Checks + runs-on: docker + container: + image: golang:1.23 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Run go fmt and go vet + run: | + go fmt $(go list ./...) + go vet $(go list ./...) + + code-coverage: + name: Code Coverage + runs-on: docker + container: + image: golang:1.23 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Run tests and generate coverage report + run: | + go test -covermode=count -coverprofile coverage.cov $(go list ./...) + go tool cover -func=coverage.cov + go tool cover -html=coverage.cov -o coverage.html + - name: Upload coverage artifacts + uses: actions/upload-artifact@v4 + with: + name: coverage-reports + path: | + coverage.cov + coverage.html + + build: + name: Build + runs-on: docker + container: + image: golang:1.23 + strategy: + matrix: + go: + - GOOS: darwin + GOARCH: amd64 + - GOOS: darwin + GOARCH: arm64 + - GOOS: linux + GOARCH: amd64 + - GOOS: linux + GOARCH: arm64 + - GOOS: windows + GOARCH: amd64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Set environment variables + run: | + echo "GOOS=${{ matrix.go.GOOS }}" >> $GITHUB_ENV + echo "GOARCH=${{ matrix.go.GOARCH }}" >> $GITHUB_ENV + - name: Build + run: go build .