Commit Graph

46 Commits

Author SHA1 Message Date
pasta
101a31555f
refactor: simplify caching setup, add a restore key to actually cache besides 1 run 2024-08-12 09:32:32 +07:00
pasta
1b139e4837
feat: automatically run guix-build on all tags pushed 2024-08-12 09:32:29 +07:00
pasta
4dbdecdd1e
refactor: rename builder-image -> build-image and builder as image name to dashcore-ci-runner 2024-08-11 15:02:32 +07:00
pasta
35c76705d1
feat: implement basic Github Actions based CI, which reuses underlying logic from GitLab CI 2024-08-11 15:02:30 +07:00
pasta
9178e8a75f
feat: add smob and provenance in release for dockerhub; use jammy; apt remove as possible 2024-07-28 11:58:13 -05:00
Konstantin Akimov
0c884f9740
chore: narrow score of clang-diff-format for dash specific files only 2024-03-24 00:41:24 +07:00
pasta
d1f881d7b4
ci: fail clang-diff-format on failure 2024-03-12 14:53:46 -05:00
UdjinM6
9c92392ef3
ci: exclude translation files from clang-diff analysis 2024-03-04 08:54:53 -06:00
fanquake
5c0283b020
Merge bitcoin/bitcoin#24509: doc: Add guix prefix for changes to reproducible builds
f1f994a122b135160216b6fc56c095b83eeaf812 doc: Add `guix` prefix for changes to reproducible builds (Hennadii Stepanov)

Pull request description:

  Most of contributors already use the `guix:` prefix for changes to `contrib/guix`. Also `guix` is shorter than `build`, and it is more focused/specific.

ACKs for top commit:
  fanquake:
    ACK f1f994a122b135160216b6fc56c095b83eeaf812

Tree-SHA512: 3f754e80802ec4e871b099ce1f0877e34ecc4816fbe9c49bfd2a7368ef79fed9edf6c65f38eedef2a87367fdc911dc548e0def422d80b66a91ce2e5f35826032
2024-02-07 10:14:43 -06:00
UdjinM6
f72650d2de
feat: Set client version for non-release binaries and version in guix based on git tags (#5653)
## Issue being fixed or feature implemented
Client version string is inconsistent. Building `v20.0.0-beta.8` tag
locally produces binaries that report `v20.0.0-beta.8` version but
binaries built in guix would report
`v20.0.0rc1-g3e732a952226a20505f907e4fd9b3fdbb14ea5ee` instead. Building
any commit after `v20.0.0-beta.8` locally would result in versions like
`v20.0.0rc1-8c94153d2497` which is close but it's still yet another
format. And both versions with `rc1` in their names are confusing cause
you'd expect them to mention `beta.8` instead maybe (or is it just me?
:D ).

## What was done?
Change it so that the version string would look like this:
on tag: ~`v20.0.0-beta.8-dev` or `v20.0.0-beta.8-gitarc`~
`v20.0.0-beta.8`
post-tag: ~`v20.0.0-beta.8-1-gb837e08164-gitarc`~
`v20.0.0-beta.8-1-gb837e08164`

post-tag format is
`recent tag`-`commits since that tag`-`g+12 chars of commit hash`-`dirty
(optional)` ~-`dev or gitarc`~

~`dev`/`gitarc` suffixes should help avoiding confusion with the release
versions and they also indicate the way non-release binaries were
built.~

Note that release binaries do not use any of this, they still use
`PACKAGE_VERSION` from `configure` like before.

Also, `CLIENT_VERSION_RC` is no longer used in this setup so it was
removed.

Few things aren't clear to me yet:
1. Version bump in `configure.ac` no longer affects the reported version
(unless it's an actual release). Are there any downsides I might be
missing?
2. Which tag should we use on `develop` once we bump version in
configure? `v21.0.0-init`? `v21.0.0-alpha1`?
3. How is it going to behave once `merge master back into develop` kind
of PR is merged? E.g. say `develop` branch is on `v21.0.0-alpha1` tag
and we merge v20.1.0 from `master` back into it. Will this bring
`v20.1.0` release tag into `develop`? Will it become the one that will
be used from that moment? If so we will probably need another tag on
`develop` every time such PR is merged e.g. `v21.0.0-alpha2` (or
whatever the next number is).

Don't think these are blockers but would like to hear thoughts from
others.

## How Has This Been Tested?
Built binaries locally, built them using guix at a specific tag and at
some commit on top of it.

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2024-01-11 21:43:42 -06:00
Konstantin Akimov
75b6c4471f cleanup: remove release_alpha.yml workflow and Dockerfile for GitHubActions 2023-12-06 12:40:58 -06:00
PastaPastaPasta
2099a5c2e5
fix: use proper GitHub.repository and add an echo for testing (#5757)
## Issue being fixed or feature implemented


## What was done?
Add an echo

## How Has This Been Tested?

## Breaking Changes
None

## Checklist:
_Go over all the following points, and put an `x` in all the boxes that
apply._
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-12-06 12:24:12 -06:00
UdjinM6
91dcf0e65a
fix: pass GITHUB_REPOSITORY into Dockerfile.GitHubActions.Release (2nd attempt) (#5735)
## Issue being fixed or feature implemented
I was probably using `GITHUB_REPOSITORY` incorrectly, let's try it this
way

#5724 follow-up

## What was done?

## How Has This Been Tested?
n/a

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-12-04 08:35:12 -06:00
UdjinM6
bc9af856ec
ci: Bump Guix build timeout and implement cacheing (#5727)
## Issue being fixed or feature implemented
Hopefully fixes issues like
>The job running on runner ubuntu-core-x64_i-05ed4263b8e049c7a has
exceeded the maximum execution time of 360 minutes

https://github.com/dashpay/dash/actions/runs/6932017275


https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes

## What was done?
Bump timeouts for the job itself and for the corresponding step. Also,
implemented caching for `.cache` and `depends` folders.

## How Has This Been Tested?
#5729


https://github.com/dashpay/dash/actions/runs/6996271543/job/19031968814?pr=5729

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-12-01 09:11:35 -06:00
UdjinM6
1d9991fe24
fix: pass GITHUB_REPOSITORY into Dockerfile.GitHubActions.Release (#5724)
## Issue being fixed or feature implemented
Should hopefully fix
https://github.com/dashpay/dash-dev-branches/actions/runs/6939402277/job/18876687119

#5716 follow-up

## What was done?
`$GITHUB_REPOSITORY` is not available inside docker, pass it inside

## How Has This Been Tested?

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-11-24 11:23:10 -06:00
strophy
bc6b5e1322
ci: switch to using gha cache api for guix builds (#5602)
## Issue being fixed or feature implemented
- Using `actions/cache` with a local buildx cache without the "move
cache" workaround will result in constant growth in cache size:
https://docs.docker.com/build/ci/github-actions/cache/#local-cache

## What was done?
- Docker natively supports the GHA Cache API, so we should use it for
faster and more efficient cache usage
- Actions were also bumped to current stable versions


## How Has This Been Tested?
Devs please test this by running a test Guix build from workflow
dispatch

## Breaking Changes
None


## Checklist:
_Go over all the following points, and put an `x` in all the boxes that
apply._
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e
tests
- [x] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-10-20 08:14:46 -05:00
UdjinM6
d574ca6197
ci: bump actions/checkout and actions/cache to v3 (#5519)
## Issue being fixed or feature implemented
Should fix warnings like
> The following actions uses node12 which is deprecated and will be
forced to run on node16: actions/checkout@v2, actions/cache@v2. For more
info:
https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/

https://github.com/dashpay/dash/actions/runs/5705358251?pr=5448
https://github.com/dashpay/dash/actions/runs/5705358315?pr=5448
https://github.com/dashpay/dash/actions/runs/5705358316?pr=5448
https://github.com/dashpay/dash/actions/runs/5715249078?pr=5448

## What was done?

## How Has This Been Tested?

## Breaking Changes


## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone
2023-08-01 12:17:40 -05:00
strophy
5c9896e32e
ci: multi-runner guix builds (#5515)
## Issue being fixed or feature implemented
- We want to enable use of the AWS-hosted GitHub Actions runners, now
that [corresponding
infra](https://github.com/dcginfra/tf-aws-gh-runner/pull/8/files#diff-ad98d33884a302f6c747dc6b326c6b3af3887f2ec25e0bd7a0395f10444818f3)
exists to deploy these runners


## What was done?
Add new labels and workflow dispatch button to allow runner testing


## How Has This Been Tested?
Pending testing in CI


## Breaking Changes
None


## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e
tests
- [x] I have made corresponding changes to the documentation
- [ ] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-07-28 11:43:31 -05:00
UdjinM6
d2dfac64b1
fix: Resolve warnings in Guix GitHub workflow (#5478)
## Issue being fixed or feature implemented
see warnings in https://github.com/dashpay/dash/actions/runs/5462770856

## What was done?

https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

## How Has This Been Tested?
n/a

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-07-08 00:04:22 +03:00
Kittywhiskers Van Gogh
63c4e2456b
build: follow up to #5449. implementing suggestions and deduplication (#5464)
## Additional Information

* Based on suggestions by @knst made
[here](https://github.com/dashpay/dash/pull/5449#issuecomment-1609937147)
and
[here](https://github.com/dashpay/dash/pull/5426#discussion_r1241789033)
2023-06-28 13:59:16 -05:00
Kittywhiskers Van Gogh
7399ea5e23 contrib: switch to our Guix container instead of the bundled one 2023-06-27 20:24:08 +05:30
UdjinM6
c51ba63646
ci: more checksums in guix workflow (#5417)
## Issue being fixed or feature implemented
1. not all binaries were covered with checksums
2. there were no checksums for archives

## What was done?
add missing checksums, also group and sort them

## How Has This Been Tested?
run commands after local guix build
see this PR results

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-06-09 13:19:01 -05:00
UdjinM6
49ca1aa5db
ci: use PR's HEAD in guix workflow (#5416)
## Issue being fixed or feature implemented
Our guix workflow creates a merge commit instead of using HEAD from a PR
itself which is why commit hash is different. That's exactly what is
described in https://github.com/actions/checkout/issues/27 imo.

related:
https://github.com/dashpay/dash/pull/5355#issuecomment-1578459628

## What was done?
adjust guix workflow

## How Has This Been Tested?
see this PR results: the HEAD looks correct now
this PR:
https://github.com/dashpay/dash/actions/runs/5191152453/jobs/9358590629?pr=5416#step:2:482
#5355:
https://github.com/dashpay/dash/actions/runs/5187698039/jobs/9350381761?pr=5355#step:2:489

## Breaking Changes
n/a hopefully 

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [ ] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-06-07 06:30:12 +03:00
PastaPastaPasta
16187c7670
ci: implement guix build by label request in CI (#5368)
## Issue being fixed or feature implemented
Automated guix builds in CI when specifically requested 

## What was done?
Any PR with the `build-guix` label added will automatically have the
Guix build ran and the hashes placed in the CI output to compare against


## How Has This Been Tested?
This PR

## Breaking Changes
None

## Checklist:
_Go over all the following points, and put an `x` in all the boxes that
apply._
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-05-15 22:15:34 -05:00
UdjinM6
a91eace041
chore/feat: few tweaks for "Check Potential Conflicts" action (#5330)
## Issue being fixed or feature implemented
small cleanups and improvements

## What was done?
pls see individual commits

## How Has This Been Tested?
see
https://github.com/dashpay/dash/actions/runs/4715728701/jobs/8362893373?pr=5330

## Breaking Changes
n/a

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_
2023-04-17 01:41:18 +03:00
PastaPastaPasta
4ab5b340ec
ci: add ci for merging into master (#5316)
## Issue being fixed or feature implemented
This adds a check that ensures branches merge cleanly into master via a
ff-only

## What was done?
Added a GitHub action created via gpt-4 :)

## How Has This Been Tested?

https://github.com/PastaPastaPasta/dash/actions/runs/4703432752/jobs/8341923994
and
https://github.com/PastaPastaPasta/dash/actions/runs/4703457936/jobs/8341980146
for expected pass and expected fail

## Breaking Changes
None, should be back ported to v19.x branch when we get the chance.

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation

**For repository code-owners and collaborators only**
- [x] I have assigned this pull request to a milestone
2023-04-14 16:53:07 -05:00
UdjinM6
828fac4c14 chore: add missing copyrights via copyright_header.py insert 2023-01-13 00:49:04 +03:00
UdjinM6
dbe3f71eab
fix(doc/ci): break rpc/rest/zmq into individual scopes, sort scopes (#5079) 2022-11-21 12:06:24 -06:00
thephez
76d70bd962
ci: convert semantic pr title check to use action (#5071)
* ci: add semantic pr check action (#6)

* ci: add types and scopes for pr title checks

* ci: change action name

* ci: add comment and link for our commit types/scopes

* ci: remove config for deprecated service

* Update .github/workflows/semantic-pull-request.yml

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-11-07 08:44:31 -06:00
strophy
1d5bdbc724
ci: fix docker tags meta action (#5054)
* ci: fix docker tags meta action

* chore: revert to dashpay namespace
2022-10-20 11:16:43 +03:00
strophy
ff2f768114
ci: fix docker context (#4816) 2022-04-28 11:35:50 -05:00
ktechmidas
712f60dd21
Fix: Use github workspace for building image (#4775)
* Fix: Use github workspace for building image

* Fix: Ensure correct dir for docker-entrypoint.sh
2022-04-19 09:11:04 +03:00
strophy
1fddc53f53
ci: build on-demand docker images for testing on devnets (#4667)
* ci: build alpha action

* ci: use self-hosted runner

* ci: build faster

* ci: multicore dash build

* chore: copy build, dockerize and push

* chore: dockerize build

* chore: remove unnecessary cachedir and checkout steps

* chore: disable qemu

* chore: remove buildx steps now included in AMI

* chore: move binaries in to place for second stage copy

* fix: runner using incorrect build driver

* chore: debug builder info

* chore: more detailed debug

* chore: install qemu and buildx in actions

* fix: indentation

* fix: remove debug code

* feat: multi-arch cross-compiling dockerfile

* chore: remove unnecessary docker layers

* chore: add debug output

* chore: dump context

* fix: use event inputs tag for docker_meta

* chore: dump context again

* fix: context reference syntax

* feat: attempt to use gitian builder

* chore: ff changes from other branches

* chore: disable macOS build

* Revert "chore: ff changes from other branches"

This reverts commit daece1c505.

* chore: restore GHA changes to fix incorrect merge

* chore: remove duplicate code

* chore: bump buildx version to latest

* chore: try to build without signing

* chore: setup tmate to find build

* chore: run tmate on failure

* fix: invalid path to binaries on copy

* chore: remove unnecessary GPG steps

* chore: replace strophy with dashpay

* fix: gha cache not providing speedup

* Update .github/workflows/release_alpha.yml

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-03 17:24:06 -05:00
PastaPastaPasta
ac1346278c
ci: adjust handle_potential_conflicts.py such that if mergable_state is dirty (conflicting with base branch), don't check against it. (#4671) 2022-01-20 19:06:37 +03:00
PastaPastaPasta
f3cd4046c9
actions: introduce handle_potential_conflicts.py to only warn on true conflicts. Fail CI when there is a conflict (#4655)
* introduce handle_potential_conflicts.py to only warn on true conflicts. Fail CI when there is a conflict

Signed-off-by: Pasta <pasta@dashboost.org>

* remove unneeded input assign

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* use dashpay instead of PastaPastaPasta

Signed-off-by: Pasta <pasta@dashboost.org>

* Update .github/workflows/handle_potential_conflicts.py

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* more linter fixes

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-01-13 17:26:47 +03:00
PastaPastaPasta
1c925ed3d2
actions: use pull_request_target instead of pull_request, use custom fork (#4647)
* use pull_request_target instead of pull_request

Signed-off-by: Pasta <pasta@dashboost.org>

* use pasta based action 0.1.1

Signed-off-by: Pasta <pasta@dashboost.org>
2021-12-30 22:04:14 +03:00
PastaPastaPasta
58b2605808
actions: implement predict-conflicts actions (#4645)
* add predict-conflicts.yml

* remove commented out permission
2021-12-30 19:32:11 +03:00
Kittywhiskers Van Gogh
1c188bcd47 build: relocate *net deployment logic to their own directories 2021-12-21 12:41:00 +05:30
PastaPastaPasta
20eb13616a
ci: Add github-action that automatically runs clang-format. Will not fail CI (#4387)
Signed-off-by: pasta <pasta@dashboost.org>
2021-09-02 23:00:07 +03:00
PastaPastaPasta
f14e8eeada
actions: Prevent accidental merging to master (#4302)
Signed-off-by: pasta <pasta@dashboost.org>
2021-07-29 13:12:54 +03:00
pasta
c13f9ae6ab Ensure pemissions are restrictive 2021-07-16 17:43:32 -05:00
pasta
c79561335a actions: automatically add a "needs rebase" label and comment as relevant 2021-07-16 17:43:32 -05:00
strophy
9a17e9dfa5
Update docker tags (#4103)
* feat: use github actions

* use v2 meta action

* adjust indentation

* try conditional versions

* try to remove flavor

* try different order

* manual suffix

* manual latest

* dev suffix on latest

* raw latest-dev

* typo

* workaround latest bug

* manual latest

* enable build

* add space

* revert Dockerfile changes

* use dashpay target repo
2021-04-17 16:08:45 -04:00
strophy
fb311468b7
Docker release CI (#4051)
* feat:add github actions

* add release tag

* multi-arch download

* remove erroneous add command

* install wget properly

* parse tag

* no multi-arch for now

* show vars

* more debug

* show uname

* install certs

* manually mutate tag

* fix syntax

* use env

* remove debug

* try docker meta

* try semver with v

* multi-arch

* remove v

* use tag-match

* match group 1

* prepare for dashpay repo

* optimize dockerfile

* remove unnecessary space

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* Update .github/workflows/release_docker_hub.yml

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-03-24 13:11:50 +03:00
PastaPastaPasta
8fc02f490f
Revert "implemented labeler which automatically adds RPC label to anything modifying RPC files (#3499)" (#3517)
This reverts commit fe98b81b80.
2020-06-11 11:44:29 +03:00
PastaPastaPasta
fe98b81b80
implemented labeler which automatically adds RPC label to anything modifying RPC files (#3499)
* implemented labeler which automatically adds RPC label to anything modifying RPC files

Signed-off-by: Pasta <pasta@dashboost.org>

* add src/wallet/rpc*

Signed-off-by: pasta <pasta@dashboost.org>
2020-06-08 06:10:52 +03:00