Commit graph

47 commits

Author SHA1 Message Date
Roman Khimov
cbf6a2940f workflows: update setup-go to v3
Use built-in cache, simplify steps.
2022-07-20 19:19:51 +03:00
Roman Khimov
7dd21bc7e4 tests: merge CodeQL workflow into Tests, run tests on push
1. CodeQL is just one of the tests, it doesn't need a separate workflow.
2. It doesn't make a lot of sense running it daily, every push to the master
   branch deserves a scan.
3. And every push deserves a test run as well.
2022-07-20 17:39:31 +03:00
Roman Khimov
7b6f23ee7e workflows: move docker push logic to the Build workflow
publish_to_dockerhub.yml duplicated build.yml and run_tests.yml in many
ways. We always want to build docker images, it's just that we don't push them
on every occasion and there is some additional logic around the latest
tag. We also want to publish multiarch images now, so all of this logic better
be consolidated in one workflow. It doesn't depend on tests, since we only
publish on release or on manual run, so it's known to be good.
2022-07-20 17:39:31 +03:00
Roman Khimov
bc6787f17c workflows: don't build privnet image
It only differs from non-privnet by tag, it doesn't make sense rebuilding the
same things over and over again.
2022-07-20 17:39:31 +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
16083459b8 workflows: add MacOS CLI build and test configurations
Unfortunately, the default MacOS runner produces amd64 binaries, therefore we
need to set GOARCH appropriately. At the same time, docker image will be
linux/arm64, so we can build it as well.
2022-07-20 17:32:54 +03:00
Roman Khimov
740cf500fd workflows: simplify build configuration, use OS matrix 2022-07-18 11:31:32 +03:00
Roman Khimov
e8a876a73b .github: update codeql version, fix #2522 2022-05-28 22:54:50 +03:00
Anna Shaleva
b01892613e github: add job to check WSC privnet image build 2022-03-28 15:15:14 +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
Anna Shaleva
be14d8325b github: add job to check Ubuntu privnet image build
Related to
https://github.com/nspcc-dev/neo-go/pull/2408#pullrequestreview-921289314.
2022-03-25 16:09:25 +03:00
Roman Khimov
13999252c6
Merge pull request #2403 from nspcc-dev/extend-publish
github: add ability to manually trigger publishing workflow with `latest` tag
2022-03-21 18:41:43 +03:00
AnnaShaleva
f2b160444e github: add ability to manually trigger publishing workflow with latest tag
In case if something goes wrong during release version publishing.
2022-03-21 18:31:38 +03:00
AnnaShaleva
d416ae336f github: adjust Docker image publishing workflows 2022-03-21 16:39:27 +03:00
Anna Shaleva
e8d15b1b7e workflows: upgrade supported go version 2022-03-18 11:09:30 +03:00
Evgeniy Stratonikov
6787db8a62 .github: extend interop deps check
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-03-15 17:15:40 +03:00
Anna Shaleva
0760e5486b dockerfile: reduce build time for WSC-based image
Turns out that caching the golang:windowsservercore-ltsc2022 image between
GithubAction workflow runs is a bad idea because `docker load` command still takes
too long to load image from cached archive (~9-10min on standard windows runner).
And after that runner still needs to build the neo-go image itself.

However, standard GA windows runner is supplied with prefetched latest
mcr.microsoft.com/windows/servercore:ltsc2022 image, so using it costs almost
nothing. Thus, the other approach is implemented: we use standard
mcr.microsoft.com/windows/servercore:ltsc2022 image as both build-base and
final-base. Then we install all required tools for building neo-go manually
on build-base image (these tools are git and go 1.17). Compared to the first
approach, the publishing job (included build and publish to DockerHub)
takes ~7-8min to finish.
2022-02-10 18:58:50 +03:00
Anna Shaleva
2cf15ea4e3 github: fix publishing job for WSC image
Close #2277.
2022-02-10 18:58:50 +03:00
Roman Khimov
8dcfb19a1c
Merge pull request #2341 from nspcc-dev/cli/tests
cli: improve coverage
2022-02-02 14:41:03 +03:00
Anna Shaleva
4ea0aef9d5 github: update coverage job
See https://github.com/codecov/codecov-action#%EF%B8%8F--deprecration-of-v1
2022-02-02 13:48:17 +03:00
Evgeniy Stratonikov
6b152daf7e .github: check dependencies versions
Rebasing or altering commits in other way is a common thing,
so it makes sense to ensure dependencies are also updated.

Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-25 12:55:39 +03:00
Anna Shaleva
70d00a6f98 .github: simplify checkout process
We don't need separate steps for manual and automatic checkout, the
default ref value can be habdled by checkout@v2 itself.
2021-12-03 12:25:10 +03:00
Anna Shaleva
4a410f4898 .github: allow to trigger Build workflow manually 2021-12-03 12:22:48 +03:00
Anna Shaleva
b602c9d3a0 .github: upload binaries for Build workflows 2021-12-03 12:20:45 +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
d2d75b8ba5 .github: unify Tests workflow 2021-11-29 11:13:49 +03:00
AnnaShaleva
e64a617844 .github: add action to build WSC image 2021-11-29 11:11:09 +03:00
AnnaShaleva
b940167a6b .github: create separate workflow to build CLI/image
There's too much jobs in Tests workflow, so we can split them into several parts.
2021-11-29 11:11:09 +03:00
AnnaShaleva
f97f6168fc .github: remove golang from build_image job
We're building inside Docker container, so we don't need golang to
be installed on the host machine.
2021-11-29 11:11:09 +03:00
AnnaShaleva
7770535d4f .github: add job to build binaries on Windows 2021-11-29 11:11:09 +03:00
AnnaShaleva
ebd128ee79 .github: add windows-based tests workflow 2021-11-29 11:11:09 +03:00
Anna Shaleva
a512db4797 .github: update ubuntu image for test workflows 2021-11-09 14:02:22 +03:00
Roman Khimov
2585713f31 *: use Go 1.17 by default, test with 1.15, 1.16 and 1.17 2021-08-26 17:30:04 +03:00
Roman Khimov
ad5acf4873 *: drop Go 1.14 2021-08-25 14:59:00 +03:00
Roman Khimov
50cb0450f2 circleci/workflows: drop vet run
golangci-lint already includes govet, so having it in a separate task doesn't
add any value (only increases CI running time).
2021-05-13 00:08:42 +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
2bc5f72523
experimental codeql workflow 2021-04-15 17:29:00 +03:00
Anna Shaleva
cc112e1a89 *: add go 1.16 support 2021-03-02 14:04:35 +03:00
Anna Shaleva
5bd809f9c8 *: drop go 1.13 support 2021-03-01 14:56:49 +03:00
Roman Khimov
347212c0c5
Merge pull request #1781 from nspcc-dev/ci-tests
github: add tests workflow
2021-03-01 11:34:26 +03:00
Anna Shaleva
552ab1f8fe github: add tests workflow 2021-02-26 17:53:31 +03:00
Roman Khimov
d33291c377
Merge pull request #1780 from nspcc-dev/ci-cache-fix
github: fix go mod cache
2021-02-26 14:04:57 +03:00
Anna Shaleva
a26791ea5a github: fix go mod cache
* Fix cache folder
* Verbose `go mod download`
2021-02-26 12:10:10 +03:00
Anna Shaleva
dc610cdb7c github: tag as 'latest' only released images 2021-02-25 18:38:59 +03:00
Anna Shaleva
d628b6a33d github: allow to publish image from any ref
It will help us to publish previous releases or intermediate refs.
2021-02-25 16:52:25 +03:00
Anna Shaleva
a1245cd381 github: publish only released images 2021-02-25 14:54:14 +03:00
Anna Shaleva
7dfdbcd456 github: setup github workflow to publish to DockerHub
This workflow tags and publishes images to Dockerhub:
   * Every `push` to `master` branch
   * Every release

For successful workflow runs the following secrets need to be set in the
repository `Secrets` section:
   * `DOCKERHUB_USERNAME` - the username to publish images to DockerHub
   * `DOCKERHUB_PASSWORD` - the password of `DOCKERHUB_USERNAME`
2021-02-25 13:49:59 +03:00