From 56b1e3612bcd4da0899e8832d49c73c2cdb65a9c Mon Sep 17 00:00:00 2001 From: Martin Riedl Date: Fri, 28 Feb 2025 16:13:23 +0100 Subject: [PATCH] ci: new build workflow --- .forgejo/workflows/build.yml | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 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..57ead14 --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,81 @@ +name: Build + +on: + push: + branches: + - main + - beta + - develop + pull_request: + +jobs: + checks: + name: Checks + runs-on: docker + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.23.x' + check-latest: true + - name: Run go fmt and go vet + run: | + go fmt $(go list ./...) + go vet $(go list ./...) + + code-coverage: + name: Code Coverage + runs-on: docker + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.23.x' + check-latest: true + - 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: https://code.forgejo.org/forgejo/upload-artifact@v4 + with: + name: coverage-reports + path: | + coverage.cov + coverage.html + + build: + name: Build + runs-on: docker + 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: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.23.x' + check-latest: true + - name: Set environment variables + run: | + echo "GOOS=${{ matrix.go.GOOS }}" >> $GITHUB_ENV + echo "GOARCH=${{ matrix.go.GOARCH }}" >> $GITHUB_ENV + - name: Build + run: go build .