Enable makefile as a multi-purpose tool

pull/44/head
Jean-Marc MEESSEN 4 years ago committed by GitHub
parent b9d7f5a013
commit 74eb19720c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -24,8 +24,10 @@ jobs:
- name: Lint Go Code - name: Lint Go Code
run: | run: |
go get -u golang.org/x/lint/golint make lint
golint -set_exit_status ./... - name: Vet Go Code
run: |
make vet
test: test:
name: Test name: Test
@ -41,8 +43,7 @@ jobs:
- name: Run Unit tests. - name: Run Unit tests.
run: | run: |
go test -short -coverprofile cover.out -covermode=atomic ./... make test-coverage
cat cover.out >> coverage.txt
- name: Upload Coverage report to CodeCov - name: Upload Coverage report to CodeCov
uses: codecov/codecov-action@v1.0.0 uses: codecov/codecov-action@v1.0.0

1
.gitignore vendored

@ -14,6 +14,7 @@ notes/help.txt
# Output of the go coverage tool, specifically when used with LiteIDE # Output of the go coverage tool, specifically when used with LiteIDE
*.out *.out
coverage.txt
# Dependency directories (remove the comment below to include it) # Dependency directories (remove the comment below to include it)
# vendor/ # vendor/

@ -0,0 +1,39 @@
# PROJECT_NAME := "github-actions-demo-go"
# PKG := "github.com/brpaz/$(PROJECT_NAME)"
# PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/)
# GO_FILES := $(shell find . -name '*.go' | grep -v /vendor/ | grep -v _test.go)
## GITHUB_ACTIONS is set when running as a Github Action
.PHONY: all lint vet test test-coverage build clean
all: build
dep: ## Get the dependencies
@go mod download
lint: ## Lint Golang files
@go get -u golang.org/x/lint/golint
@golint -set_exit_status ./...
vet: ## Run go vet
@go vet ./...
test: ## Run unit tests
@go test ./...
test-coverage: ## Run tests with coverage
@go test -short -coverprofile cover.out -covermode=atomic ./...
@cat cover.out >> coverage.txt
build: ## Build the binary file
@goreleaser --snapshot --skip-publish --rm-dist
@cp dist/FLEcli_darwin_amd64/FLEcli .
clean: ## Remove previous build
@rm -f ./FLEcli
@rm -f ./cover.out
@rm -f ./coverage.txt
help: ## Display this help screen
@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

@ -64,8 +64,8 @@ To generate a WWFF-ready ADIF file:
``` ```
./FLEcli adif -i --wwff ON4KJM@ONFF-025920200524.txt ./FLEcli adif -i --wwff ON4KJM@ONFF-025920200524.txt
``` ```
The `--wwff` indicates the adif flavour to produce. The `--wwff` (or `-w` in the short form) indicates the adif flavour to produce.
You can use the `--sota` switch to generate an ADIF file containing SOTA details. You can also use the `--sota` switch to generate an ADIF file containing SOTA details.
The switch can be used together with `--wwff` The switch can be used together with `--wwff`
As we didn't provide an output filename, the default output, `ON4KJM@ONFF-025920200524.adi` will be used. As we didn't provide an output filename, the default output, `ON4KJM@ONFF-025920200524.adi` will be used.

@ -1,11 +0,0 @@
#!/bin/bash
set -e
go test ./...
commitRef=$(git rev-parse HEAD)
tag=$(git describe --tags)
version="${tag}_(PrivateBuild)"
buildDate=$(date -u +"%FT%TZ")
go build -ldflags="-s -w -X=FLEcli/flecmd.version=${version} -X=FLEcli/flecmd.commit=${commitRef} -X=FLEcli/flecmd.date=${buildDate} -X=FLEcli/flecmd.builtBy=${USER}"

@ -1,14 +1,14 @@
# What's new? # What's new?
## V0.1.1 ## v0.1.1
* improved test coverage * Improved test coverage
* improved build automation * Improved build automation
* improved release notes publication * Improved release notes publication
## Previous releases ## Previous releases
### V0.1.0 ### v0.1.0
* First public MVP (Minimal Viable Product relase). Supports only SOTA and WWFF type log files. Some header keywords are missing as well as date increments. * First public MVP (Minimal Viable Product relase). Supports only SOTA and WWFF type log files. Some header keywords are missing as well as date increments.
### V0.0.0 ### v0.0.0
* Initial release * Initial release

@ -2,4 +2,9 @@
* `goreleaser --snapshot --skip-publish --rm-dist` * `goreleaser --snapshot --skip-publish --rm-dist`
* `dist/FLEcli_darwin_amd64/FLEcli` * `dist/FLEcli_darwin_amd64/FLEcli`
* `docker build -f docker/Dockerfile -t test/test dist/FLEcli_linux_arm64` * `docker build -f docker/Dockerfile -t test/test dist/FLEcli_linux_arm64`
## to push a release
* on the master branch `git tag v0.1.1`
* `git push --tag`

@ -1,36 +0,0 @@
# TODO
## Input protocol
* [ ] document the FLE input format
## Test & Build framework
* [ ] Perform the test of the complete app
* [-] Implement MacOS codesigning (issue #9)
* [x] Add quality badges to main page
* [x] Make a more reasonable/richer version display (issue #10)
* [x] Create standalone documentation, separate from README (issue #13)
* [x] Re-visit the release notes (far too verbose)
* [x] Implement and track code coverage
## Input processing
* [ ] New MYGRID keyword
* [ ] Support different date delimiter
* [ ] Support extrapolated date
* [ ] Support date not prefixed by "date" (non header mode) DATE keyword is now optional
* [ ] Support date increment ("date +" and "date ++")
* [ ] Support WWFF keyword
* [x] Validate that we have the necessary data for the output
* [ ] Support the contest related fields
## Output processing
* [ ] Implement CABRILLO output
## Later
* [ ] Process contest reports
* [ ] Infer digital mode report
* [ ] add unit test for the DefaultReport validate function
* [-] look how to make it work as a CGI
Loading…
Cancel
Save