diff --git a/.github/workflows/go.yml b/.github/workflows/test.yml similarity index 71% rename from .github/workflows/go.yml rename to .github/workflows/test.yml index 0b627c3..a29a2a3 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/test.yml @@ -16,10 +16,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v4 with: - go-version: '1.22' - - - name: Build - run: go build -v ./... + go-version: '1.23' - name: Test - run: go test -v ./... + run: go test -v ./... -race diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c691c24 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +#!/bin/bash +APP_NAME := dr + +VERSION :=$(shell git describe --match 'v[0-9]*' --dirty='.m' --always) +REVISION :=$(shell git rev-parse HEAD)$(shell if git diff --no-ext-diff --quiet --exit-code; then echo .m; fi) + +OS ?=$(shell uname -s | tr '[:upper:]' '[:lower:]') +ARCH ?=$(shell go env GOARCH | tr '[:upper:]' '[:lower:]') + +build: + @if [ -z "$(ARCH)" ]; then echo "mandatory ARCH field is empty"; exit 1; fi + @if [ -z "$(OS)" ]; then echo "mandatory OS field is empty"; exit 1; fi + @echo "Building for OS=$(OS), ARCH=$(ARCH), VERSION=$(VERSION), REVISION=$(REVISION)" + @GOOS=$(OS) GOARCH=$(ARCH) go build \ + -ldflags "-X main.Version=$(VERSION) -X main.Revision=$(REVISION) -s -w" \ + -trimpath -a -o $(APP_NAME) + +test: + go test ./... -v + diff --git a/pkg/download/dl_manager_test.go b/pkg/download/dl_manager_test.go index 921ba5e..af492fb 100644 --- a/pkg/download/dl_manager_test.go +++ b/pkg/download/dl_manager_test.go @@ -22,7 +22,7 @@ func TestNewDownloadManager(t *testing.T) { downloader, err := NewDownloader("/tmp/xxy/", "https://httpbin.org/range/512", WithLogger(log)) if assert.NoError(t, err) { defer t.Cleanup(func() { - // os.RemoveAll("/tmp/xx/") + _ = os.RemoveAll("/tmp/xxy/") }) dlManager := NewDownloadManager(downloader, DefaultRetryPolicy()) @@ -43,7 +43,7 @@ func TestNewDownloadManager(t *testing.T) { downloader, err := NewDownloader("/tmp/xx/", server.URL) if assert.NoError(t, err) { defer t.Cleanup(func() { - os.RemoveAll("/tmp/xx/") + _ = os.RemoveAll("/tmp/xx/") }) dlManager := NewDownloadManager(downloader, DefaultRetryPolicy()) diff --git a/pkg/download/download_test.go b/pkg/download/download_test.go index d99f661..19df8a7 100644 --- a/pkg/download/download_test.go +++ b/pkg/download/download_test.go @@ -131,7 +131,7 @@ func TestNewDownloader(t *testing.T) { filesize: 12, gotTotalSegments: 2, gotSegmentSize: 2, - wantErr: &InvalidParamError{param: "TotalSegments, SegmentSize", message: "these two properties are mutually exclusive"}, + wantErr: &InvalidParamError{param: "TotalSegments, SegmentSize", message: "these two properties are mutually exclusive, set only one of them"}, }, }