ci: Move linter task to cirrus #20658
pull dhruv wants to merge 2 commits into bitcoin:master from dhruv:linter-on-cirrus changing 5 files +53 −97-
dhruv commented at 1:07 am on December 15, 2020: memberSolves #20467: Move linter to Cirrus-CI as Travis-CI.org is shutting down
-
fanquake added the label Tests on Dec 15, 2020
-
in ci/lint/lint_run_all.sh:13 in 52b724efb3 outdated
8+ 9+set -o errexit; source ./ci/test/00_setup_env.sh 10+set -o errexit; source ./ci/test/03_before_install.sh 11+set -o errexit; source ./ci/lint/04_install.sh 12+set -o errexit; source ./ci/lint/05_before_script.sh 13+set -o errexit; source ./ci/lint/06_script.sh
MarcoFalke commented at 7:01 am on December 15, 2020:The linter scripts heavily depend on the ci platform because they use $TRAVIS or $CIRRUS env vars, so I think the script here can just be inlined into the platform.ymlin ci/lint/05_before_script.sh:9 in 52b724efb3 outdated
5@@ -6,4 +6,4 @@ 6 7 export LC_ALL=C 8 9-git fetch --unshallow 10+git fetch
MarcoFalke commented at 7:02 am on December 15, 2020:why?
dhruv commented at 5:36 pm on December 15, 2020:On Cirrus-CI, I received:
fatal: --unshallow on a complete repository does not make sense
in ci/lint/04_install.sh:16 in 52b724efb3 outdated
18-travis_retry pip3 install yq 19-travis_retry pip3 install mypy==0.781 20+pip3 install codespell==1.17.1 21+pip3 install flake8==3.8.3 22+pip3 install yq 23+pip3 install mypy==0.781
MarcoFalke commented at 7:03 am on December 15, 2020:there is./ci/retry
, which can be used insteadin .cirrus.yml:61 in 52b724efb3 outdated
53@@ -54,6 +54,15 @@ global_task_template: &GLOBAL_TASK_TEMPLATE 54 # install_script: 55 # - choco install python --version=3.7.7 -y 56 57+lint_task: 58+ name: 'lint' 59+ skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. 60+ container: 61+ image: ubuntu:bionic
MarcoFalke commented at 7:05 am on December 15, 2020:Please re-add the comment here that says
0 For python: '3.6' # Oldest supported version according to doc/dependencies.md
in .cirrus.yml:63 in 52b724efb3 outdated
58+ name: 'lint' 59+ skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. 60+ container: 61+ image: ubuntu:bionic 62+ pip_cache: 63+ folder: /tmp/pip_cache_dir
MarcoFalke commented at 7:07 am on December 15, 2020:Is this really needed? I somehow supspect that setting up the cache and fetching from it is slower than fetching from the pip servers directly. Or at the least, it is not measurable and we don’t care about a few milliseconds here or there anyway.in .cirrus.yml:63 in 52b724efb3 outdated
53@@ -54,6 +54,15 @@ global_task_template: &GLOBAL_TASK_TEMPLATE 54 # install_script: 55 # - choco install python --version=3.7.7 -y 56 57+lint_task: 58+ name: 'lint' 59+ skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR.
MarcoFalke commented at 7:08 am on December 15, 2020:Maybe move this to aGLOBAL_BASE_TEMPLATE
to avoid duplication?MarcoFalke approvedMarcoFalke commented at 7:08 am on December 15, 2020: memberACK, just some nitsin .cirrus.yml:64 in 52b724efb3 outdated
59+ skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. 60+ container: 61+ image: ubuntu:bionic 62+ pip_cache: 63+ folder: /tmp/pip_cache_dir 64+ script: set -o errexit; source ./ci/lint/lint_run_all.sh
MarcoFalke commented at 7:10 am on December 15, 2020:Could run the linters with compute credits? The most frustrating thing is waiting for the linters to fail (or pass)
0 # For faster CI feedback, immediately schedule the linters. https://cirrus-ci.org/pricing/#compute-credits 1 use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'bitcoin/bitcoin'
DrahtBot commented at 7:40 am on December 15, 2020: memberThe following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #19952 (build, ci: Add file-based logging for individual packages by hebasto)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
dhruv force-pushed on Dec 15, 2020dhruv commented at 5:37 pm on December 15, 2020: memberComments addressed. Ready for re-review.dhruv force-pushed on Dec 15, 2020in .cirrus.yml:21 in 38baea179a outdated
14@@ -15,11 +15,14 @@ env: 15 CCACHE_SIZE: "200M" 16 CCACHE_DIR: "/tmp/ccache_dir" 17 18-### Global task template 19- 20+### Base template 21 # https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks 22+base_template: &BASE_TEMPLATE 23+ skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution
MarcoFalke commented at 5:49 pm on December 15, 2020:merge_base_script
should also be part of the base templatein .cirrus.yml:60 in 38baea179a outdated
56@@ -54,6 +57,20 @@ global_task_template: &GLOBAL_TASK_TEMPLATE 57 # install_script: 58 # - choco install python --version=3.7.7 -y 59 60+lint_task:
MarcoFalke commented at 5:50 pm on December 15, 2020:0task:
Can be shorter (because you provided a
name:
)in .cirrus.yml:64 in 38baea179a outdated
56@@ -54,6 +57,20 @@ global_task_template: &GLOBAL_TASK_TEMPLATE 57 # install_script: 58 # - choco install python --version=3.7.7 -y 59 60+lint_task: 61+ name: 'lint' 62+ << : *BASE_TEMPLATE 63+ container: 64+ image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md
MarcoFalke commented at 5:51 pm on December 15, 2020:Can reduce the cpu to1
to cut the bill in half?
dhruv commented at 7:09 pm on December 15, 2020:0container: 1 image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md 2 cpu: 1.0 # Cut the bill in half
Resulted in:
0Failed to start an instance: INVALID_ARGUMENT: Bad Request.
Could you share a pointer on how to do this? I found nothing except this in cirrus docs.
MarcoFalke commented at 6:24 am on December 16, 2020:cpu can only be integral, not floating point.
Also, you might have to move this hunk into the GLOBAL_TASK_TEMPLATE to avoid collisions:
0timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out 1container: 2 # https://cirrus-ci.org/faq/#are-there-any-limits 3 # Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel 4 cpu: 2 5 memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers 6 kvm: true # Use kvm to avoid spurious CI failures in the default virtualization cluster, see [#20093](/bitcoin-bitcoin/20093/)
MarcoFalke commented at 6:28 am on December 16, 2020:You can also leave it as is for now. Can be addressed later (or in a new commit)
dhruv commented at 1:55 am on December 17, 2020:That seems to have done the trick. I’ve added a commit: 4045a67.in .cirrus.yml:70 in 38baea179a outdated
64+ image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md 65+ # For faster CI feedback, immediately schedule the linters. https://cirrus-ci.org/pricing/#compute-credits 66+ use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'bitcoin/bitcoin' 67+ lint_script: 68+ - set -o errexit; source ./ci/test/00_setup_env.sh 69+ - set -o errexit; source ./ci/test/03_before_install.sh
MarcoFalke commented at 5:52 pm on December 15, 2020:Can each line be a separate script?in ci/lint/06_script.sh:30 in 38baea179a outdated
24@@ -25,8 +25,8 @@ test/lint/check-doc.py 25 test/lint/check-rpc-mappings.py . 26 test/lint/lint-all.sh 27 28-if [ "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" ] && [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then 29+if [ "$CIRRUS_REPO_FULL_NAME" = "bitcoin/bitcoin" ] && [ -n "$CIRRUS_CRON" ]; then 30 git log --merges --before="2 days ago" -1 --format='%H' > ./contrib/verify-commits/trusted-sha512-root-commit 31- travis_retry gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $(<contrib/verify-commits/trusted-keys) && 32+ gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $(<contrib/verify-commits/trusted-keys) &&
MarcoFalke commented at 5:56 pm on December 15, 2020:the retry missing here?MarcoFalke approvedMarcoFalke commented at 5:56 pm on December 15, 2020: memberre-ACKci: Move linter task to cirrus 739d39022ddhruv force-pushed on Dec 15, 2020hebasto commented at 6:18 pm on December 15, 2020: memberConcept ACK.dhruv commented at 7:11 pm on December 15, 2020: memberComments addressed. Ready for review.MarcoFalke commented at 6:26 am on December 16, 2020: memberACK 739d39022d2959c1114c14a0065daebf4fe812c1ci: Use cpu=1 for linter 4045a6722cdhruv commented at 6:29 am on December 17, 2020: memberReady for re-review.in .cirrus.yml:65 in 4045a6722c
61@@ -62,6 +62,7 @@ task: 62 << : *BASE_TEMPLATE 63 container: 64 image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md 65+ cpu: 1 # Cut bill in half for linting
MarcoFalke commented at 7:46 am on December 17, 2020:No need for that comment. Can remove or just say 1 is sufficient
0 cpu: 1
0 cpu: 1 # No need for more CPUs
MarcoFalke commented at 7:47 am on December 17, 2020:btw, based on this plot https://cirrus-ci.com/task/4624095184683008
memory can also be set to 1
MarcoFalke commented at 8:04 am on December 17, 2020: memberACK 4045a6722c884be779e86016313061ac6ff80808MarcoFalke merged this on Dec 17, 2020MarcoFalke closed this on Dec 17, 2020
hebasto commented at 1:41 pm on December 17, 2020: memberOn my personal account having some “fatal: Not a valid object name master” warnings:
hebasto commented at 1:57 pm on December 17, 2020: memberAlso in the merge commit, https://cirrus-ci.com/task/6086189209878528?command=lint#L50:
0Skipping shell linting since shellcheck is not installed.
laanwj deleted a comment on Dec 17, 2020MarcoFalke commented at 2:17 pm on December 17, 2020: memberMissing packages are installed in #20682sidhujag referenced this in commit a0bc41e79f on Dec 17, 2020sidhujag referenced this in commit 346d54527d on Dec 17, 2020MarcoFalke referenced this in commit f061da2887 on Dec 21, 2020sidhujag referenced this in commit 885721f23e on Dec 21, 2020DrahtBot locked this on Feb 15, 2022
dhruv MarcoFalke DrahtBot hebastoLabels
Tests
github-metadata-mirror
This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-22 00:12 UTC
This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me