Commit graph

63 commits

Author SHA1 Message Date
Ekaterina Pavlova
379ca4b4e6 linter: use org-wide version of linter
Close #3591,
Close #3417.

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-09-25 21:47:45 +03:00
Roman Khimov
f21edef43b *: bump min Go to 1.21, use 1.23 by default
Fixes #3089.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-08-23 19:11:06 +03:00
Slava0135
d0c45477f5 neotest: implement coverage collection
Test coverage is automatically enabled when go test is running with coverage
enabled. It can be disabled for any Executor by using relevant methods.
Coverage is gathered by capturing VM OPs during test contract execution and
mapping them to the contract source code using the DebugInfo information.

Signed-off-by: Slava0135 <super.novalskiy_0135@inbox.ru>
2024-08-19 14:39:18 +03:00
Anna Shaleva
cbc2f73a0c *: migrate to Docker Compose V2
Docker Compose V1 is deprecated since June 2023, ref.
https://docs.docker.com/compose/migrate/ and
https://github.com/nspcc-dev/neo-bench/issues/166.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-08-06 15:51:17 +03:00
Anna Shaleva
13ff95a3d3 go.mod: upgrade minimum required Go version to 1.20
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-03-05 13:54:10 +03:00
Anna Shaleva
3aa858a69f *: drop go 1.18 support in doc and build targets
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-10-12 17:59:42 +03:00
Anna Shaleva
59741bbffc .github: update deprecated workflows 2022-11-15 16:16:01 +03:00
Roman Khimov
b27e6918bd Makefile: complicate version detection script
We've declared that we are using semantic versioning. We also want to use `git
describe` to make version strings for us because it's very convenient for
development builds (tagged versions are way simpler). The problem is that the
default `git describe` behavior is not semver compliant. If the most recent
tag is v0.99.2 then it'll generate something like '0.99.2-131-g8dc5b385',
which according to semver is a development version _before_ 0.99.2. While it's
obviously a version _after_ 0.99.2.

That's the one and only reason we have vX.Y.Z-pre tags in our repo. We set
them right after the release according to the release process and that gives
us some '0.99.3-pre-131-g8dc5b385' versions we're all used to. But these tags
are ugly as hell and they clutter up our repo over time.

So there is this idea that we can do patch version increment dynamically.
Making '0.99.2-131-g8dc5b385' be '0.99.3-pre-131-g8dc5b385' without any *-pre
tags. This patch implements this. It's ugly as hell as well, but at least
that's an ugliness somewhere inside our Makefile and not directly visible in
our tags. If we're to do this we can then greatly simplify our release process
(and even allow for CHANGELOG patches to be merged normally).

I know this can be done with awk in somewhat easier way, but no, I'm not into
awk, sorry.
2022-09-09 17:06:55 +03:00
Roman Khimov
29d8d204ef Makefile: always use 8 chars for git revision in version
That's what we usually have today already, but it's dynamic by default.
2022-09-08 21:17:08 +03:00
7340a0609c Use only v-prefixed tags for version calculation
This allows us to use any custom tags along with tags that denote releases.

Signed-off-by: anikeev-yadro <a.anikeev@yadro.com>
2022-08-18 11:55:03 +03:00
Roman Khimov
e11503ff5b Makefile: correct Docker image repository name
Fix 403 Forbidden errors on push.
2022-07-21 17:35:48 +03:00
Roman Khimov
b8b85ce911 workflows/Makefile: build Docker image for MacOS
We build multiarch linux/amd64 and linux/arm64, because MacOS runner can't
build docker images and even if it could that'd be linux/amd64 while we want
linux/arm64 for Apple CPUs.

Unfortunately, given the way GitHub workflows work we can't avoid using a
Makefile helper, there is no easy way to set variables conditionally and/or
use some logic to affect their contents.

We reintroduce build_image_wsc as well here because Windows images can't be
built with buildx using GitHub runners.
2022-07-20 17:38:41 +03:00
Roman Khimov
4822728f5d Makefile: drop obsolete targets
They're not used at least since 2019.
2022-07-20 17:32:54 +03:00
Anna Shaleva
80a2eb6774 Makefile: add docker/neo-go make target 2022-06-07 15:52:49 +03:00
Anna Shaleva
62e7d964da Makefile: alias build target
Follow the
https://github.com/nspcc-dev/neo-go/pull/2537#issuecomment-1147468063.
2022-06-07 15:32:25 +03:00
Anna Shaleva
e8d71ebe81 Makefile: alias build target as bin 2022-06-06 11:58:11 +03:00
Anna Shaleva
613f6e4350 Makefile: allow to build privnet image for WSC
1. Build privnet image for WSC.
2. Automatically define OS to build image and privnet image.
3. Unify image building code for Ubuntu and WSC.
2022-03-28 15:15:08 +03:00
Roman Khimov
8a94cf7acb Revert "Makefile: add unsupported to docker windows image tag and bin version"
This reverts commit 6d28e7534c. It's no longer
relevant after #2353 and #2365.
2022-03-09 17:13:09 +03:00
Evgeniy Stratonikov
945b56e350 cli/smartcontract: set correct version for pkg/interop
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-20 13:52:58 +03:00
Anna Shaleva
6d28e7534c Makefile: add unsupported to docker windows image tag and bin version 2021-12-01 14:12:34 +03:00
AnnaShaleva
5ef9f4498e .github: add job to publish image for WSC
Also, remove Go setup from publishing jobs because we don't need Go on runner.
2021-11-29 11:13:54 +03:00
AnnaShaleva
e64a617844 .github: add action to build WSC image 2021-11-29 11:11:09 +03:00
AnnaShaleva
41f3b64c14 Makefile: use GOEXE to build on windows
Turns out that there's already special goenv variable to build with proper extension.
2021-11-17 18:42:03 +03:00
AnnaShaleva
29552489f1 Makefile: build to './bin/neo-go.exe' on windows
'.exe' extension is needed to automatically run the binary on win.
2021-11-03 16:36:03 +03:00
Roman Khimov
db4bd28160 Makefile: drop vendoring
It's not really needed.
2021-05-13 17:22:10 +03:00
Roman Khimov
c76f8b8fbe Makefile: use golangci-lint instead of golint
It includes golint and also has a lot of other useful linters.
2021-05-12 23:38:35 +03:00
Roman Khimov
53ab72cec0 Makefile: drop unused run target 2021-03-19 16:18:45 +03:00
Anna Shaleva
950041c7a5 Makefile: remove push-to-registry target
It is unused and outdated.
2021-02-25 18:41:01 +03:00
Anna Shaleva
dc610cdb7c github: tag as 'latest' only released images 2021-02-25 18:38:59 +03:00
Roman Khimov
6e5920cc09 use -trimpath build flag for more reproducible builds
Fix #349.
2020-08-06 16:32:36 +03:00
Evgenii Stratonikov
ad9d927ae4 .circleci: count coverage only for cli/ and pkg/
examples/ contain only smart-contract examples and
is here for illustrative purposes.
2020-04-14 16:10:24 +03:00
Evgenii Stratonikov
9630f63224 .circleci: enable -coverpkg=all
We want to count test for coverage irregardless
of where it is located. Previously error "no non-test Go files"
was preventing us from doing so. This commit fixes it.
2020-04-14 15:11:36 +03:00
Evgenii Stratonikov
111d7eecdd Makefile: quote config.Version
Accept strings with spaces.
2020-04-01 18:33:34 +03:00
Evgenii Stratonikov
98012fde16 Makefile: set config.Version properly
After refactoring in 5a984fd (#423) Version has moved
to pkg/. Makefile should be changed accordingly.
2020-04-01 18:26:05 +03:00
Evgeniy Kulikov
afbbdc5e02
Update command to build and publish images
- Use nspcc-dev docker hub repository
- Add command to publish neo-go images
2020-01-28 13:03:18 +03:00
Evgenii Stratonikov
70b23076f8 network: allow single-node privnet setup 2020-01-13 18:01:20 +03:00
Roman Khimov
707215af83 Makefile: add env_clean to drop storage volume 2019-11-29 12:48:00 +03:00
Evgenii Stratonikov
5ad665bc37 docker: start all nodes simultaneously 2019-11-26 16:38:41 +03:00
Evgeniy Kulikov
3994d1a943
Makefile: image build doesn't work without deps 2019-11-18 17:17:22 +03:00
Evgeniy Kulikov
f640dbb331
DockerCompose: update environment
- rewrite Dockerfile
- four nodes, custom network, volume
- p2p, rpc and metrics port forwarded
- make: env_vendor, env_image, env_up, env_down and env_restart
- cleanup Makefile commands
- remove old docker-compose file

fix #497
2019-11-18 17:17:21 +03:00
anastasia prasolova
2afb1851d6 service file templating 2019-11-13 15:05:13 +03:00
anastasia prasolova
a00275bebd fixes after review 2019-11-07 14:57:02 +03:00
anastasia prasolova
95345b673a added systemd unit file and target for make 2019-11-06 16:09:07 +03:00
Roman Khimov
90469399d7 Makefile: declare our targets as PHONY
As they are.
2019-09-09 12:02:24 +03:00
Roman Khimov
8de080f6ec Makefile: add some convenience targets
Tiny wrappers to quickly do things needed. Some of them are not that simple to
type into the CLI manually every time.
2019-09-09 12:02:24 +03:00
Roman Khimov
a168f09ac4 Makefile: drop deps from image dependencies
Docker builds shouldn't run go here to avoid CircleCI failures like this:

make: go: Command not found
make: *** [Makefile:32: deps] Error 127
Exited with code 2
2019-08-29 16:07:33 +03:00
Roman Khimov
6647317680 config: drop BuildTime support, make builds reproducible
Nobody cares, really. But we care about build being reproducible, one source
tree corresponds to one binary with one checksum.
2019-08-28 22:09:36 +03:00
Roman Khimov
3dfb1189f2 Makefile: fix binary name to be consistent
And return back to using `neo-go` as the binary name because it's not just a
node implementation, neo-go is capable of much more functionality.
2019-08-28 22:05:55 +03:00
Evgeniy Kulikov
9a79c00417
Fix build node and docker-image
- Make Dockerfile useful and minimal
- Update Makefile commands build / image
- Docker should not ignore vendor (go build -mod=vendor)
2019-08-26 19:32:09 +03:00
Evgeniy Kulikov
902125cbeb
Change the way to receive version
- Used git to receive version from tags (see #304)
- Version now displayed when start node (fix #102)

Example:

→ ./bin/node --version
neo-go version 0.44.10-245-g67d5e9f

→ ./bin/node -v
neo-go version 0.44.10-245-g67d5e9f
2019-08-26 19:32:09 +03:00