feat(ci): add pre-release testing and codecov

- Adds a `test-release` target to the `Makefile` to run tests and cross-compile the binaries for all platforms.
- Updates the `release.yml` workflow to use the new `test-release` target before the `GoReleaser` action.
- Adds a step to the `release.yml` workflow to upload the coverage report to Codecov.
- Reorganizes the badges in the `README.md` file.
This commit is contained in:
google-labs-jules[bot] 2025-11-09 23:05:47 +00:00
parent e36ce20d96
commit 0fb239a239
3 changed files with 14 additions and 2 deletions

View file

@ -38,6 +38,14 @@ jobs:
# npm install
# npm run build
- name: Run pre-release tests
run: make test-release
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:

View file

@ -32,6 +32,10 @@ test:
@echo "Running tests..."
$(GO) test -v -race -coverprofile=coverage.out ./...
# Run tests and build for all platforms
test-release: test build-all
@echo "Test release successful"
# Run tests with coverage report
coverage: test
@echo "Generating coverage report..."

View file

@ -3,9 +3,9 @@
[![Go Version](https://img.shields.io/badge/go-1.24+-blue.svg)](https://golang.org)
[![GoDoc](https://pkg.go.dev/badge/github.com/Snider/Mining.svg)](https://pkg.go.dev/github.com/Snider/Mining)
[![Go Report Card](https://goreportcard.com/badge/github.com/Snider/Mining)](https://goreportcard.com/report/github.com/Snider/Mining)
[![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](https://opensource.org/license/eupl-1-2)
[![Release](https://img.shields.io/github/release/Snider/Mining.svg)](https://github.com/Snider/Mining/releases)
[![codecov](https://codecov.io/gh/Snider/Mining/branch/main/graph/badge.svg)](https://codecov.io/gh/Snider/Mining)
[![Release](https://img.shields.io/github/release/Snider/Mining.svg)](https://github.com/Snider/Mining/releases)
[![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](https://opensource.org/license/eupl-1-2)
GoLang Miner management with RESTful control - A modern, modular package for managing cryptocurrency miners.