Merge pull request #12174 from ethereum/circleci-failure-notifications-for-all-nightly-jobs

[CI] Gitter notifications on failure for all nightly and non-PR jobs
This commit is contained in:
Kamil Śliwak 2021-11-09 16:30:21 +01:00 committed by GitHub
commit cde5533dad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,7 +31,7 @@ orbs:
win: circleci/windows@2.2.0
commands:
gitter_notify:
gitter_notify_unless_pr:
description: "Posts a notification to the main room on Gitter (if not running on a PR)."
parameters:
event:
@ -44,6 +44,8 @@ commands:
name: "Gitter notification"
when: << parameters.condition >>
command: |
[[ $CI_PULL_REQUEST == "" ]] || { echo "Running on a PR - notification skipped."; exit 0; }
[[ "<< parameters.event >>" == "failure" ]] && message=" ❌ Nightly job **${CIRCLE_JOB}** failed on **${CIRCLE_BRANCH}**. Please see [build #${CIRCLE_BUILD_NUM}](${CIRCLE_BUILD_URL}) for details."
[[ "<< parameters.event >>" == "success" ]] && message=" ✅ Nightly job **${CIRCLE_JOB}** succeeded on **${CIRCLE_BRANCH}**. Please see [build #${CIRCLE_BUILD_NUM}](${CIRCLE_BUILD_URL}) for details."
@ -55,17 +57,17 @@ commands:
--header "Authorization: Bearer ${GITTER_API_TOKEN}" \
--data "{\"text\":\"${message}\"}"
gitter_notify_failure:
gitter_notify_failure_unless_pr:
description: "Posts a failure notification to the main room on Gitter (if not running on a PR)."
steps:
- gitter_notify:
- gitter_notify_unless_pr:
event: failure
condition: on_fail
gitter_notify_success:
gitter_notify_success_unless_pr:
description: "Posts a success notification to the main room on Gitter (if not running on a PR)."
steps:
- gitter_notify:
- gitter_notify_unless_pr:
event: success
condition: on_success
@ -187,6 +189,7 @@ defaults:
- run: *run_soltest
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
- steps_soltest_all: &steps_soltest_all
steps:
@ -196,6 +199,7 @@ defaults:
- run: *run_soltest_all
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
- steps_cmdline_tests: &steps_cmdline_tests
steps:
@ -205,6 +209,7 @@ defaults:
- run: *run_cmdline_tests
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
# --------------------------------------------------------------------------
# Base Image Templates
@ -394,6 +399,7 @@ jobs:
- run:
name: Check spelling
command: ~/.local/bin/codespell -S "*.enc,.git,Dockerfile*" -I ./scripts/codespell_whitelist.txt
- gitter_notify_failure_unless_pr
chk_docs_examples:
<<: *base_node_latest
@ -407,6 +413,7 @@ jobs:
- run:
name: Test Docs examples
command: ./test/docsCodeStyle.sh
- gitter_notify_failure_unless_pr
chk_coding_style:
<<: *base_buildpack_focal
@ -424,6 +431,7 @@ jobs:
- run:
name: Check for broken symlinks
command: ./scripts/check_symlinks.sh
- gitter_notify_failure_unless_pr
chk_errorcodes:
<<: *base_python
@ -432,6 +440,7 @@ jobs:
- run:
name: Check for error codes
command: ./scripts/error_codes.py --check
- gitter_notify_failure_unless_pr
chk_pylint:
<<: *base_buildpack_focal
@ -447,6 +456,7 @@ jobs:
- run:
name: Linting Python Scripts
command: ./scripts/pylint_all.py
- gitter_notify_failure_unless_pr
chk_antlr_grammar:
<<: *base_buildpack_focal
@ -458,6 +468,7 @@ jobs:
- run:
name: Run tests
command: ./scripts/test_antlr_grammar.sh
- gitter_notify_failure_unless_pr
chk_buglist:
<<: *base_node_latest
@ -472,6 +483,7 @@ jobs:
- run:
name: Test buglist
command: ./test/buglistTests.js
- gitter_notify_failure_unless_pr
chk_proofs:
<<: *base_buildpack_latest
@ -484,12 +496,14 @@ jobs:
apt-get -qy install python3-pip
pip3 install --user z3-solver
- run: *run_proofs
- gitter_notify_failure_unless_pr
chk_docs_pragma_min_version:
<<: *base_ubuntu2004
steps:
- checkout
- run: *run_docs_pragma_min_version
- gitter_notify_failure_unless_pr
t_ubu_pyscripts:
<<: *base_ubuntu2004
@ -498,6 +512,7 @@ jobs:
- run:
name: Python unit tests
command: python3 test/pyscriptTests.py
- gitter_notify_failure_unless_pr
t_win_pyscripts:
<<: *base_win_powershell
@ -507,6 +522,7 @@ jobs:
- run:
name: Python unit tests
command: python.exe test/pyscriptTests.py
- gitter_notify_failure_unless_pr
b_ubu: &b_ubu
<<: *base_ubuntu2004_xlarge
@ -517,6 +533,7 @@ jobs:
- store_artifacts: *artifact_solidity_upgrade
- store_artifacts: *artifact_yul_phaser
- persist_to_workspace: *artifacts_executables
- gitter_notify_failure_unless_pr
# x64 ASAN build, for testing for memory related bugs
b_ubu_asan: &b_ubu_asan
@ -530,6 +547,7 @@ jobs:
- run: *run_build
- store_artifacts: *artifacts_solc
- persist_to_workspace: *artifacts_executables
- gitter_notify_failure_unless_pr
b_ubu_clang: &b_ubu_clang
<<: *base_ubuntu2004_clang_xlarge
@ -538,6 +556,7 @@ jobs:
- run: *run_build
- store_artifacts: *artifacts_solc
- persist_to_workspace: *artifacts_executables
- gitter_notify_failure_unless_pr
b_ubu_asan_clang: &b_ubu_asan_clang
<<: *base_ubuntu2004_clang
@ -551,6 +570,7 @@ jobs:
- run: *run_build
- store_artifacts: *artifacts_solc
- persist_to_workspace: *artifacts_executables
- gitter_notify_failure_unless_pr
b_ubu_ubsan_clang: &b_ubu_ubsan_clang
<<: *base_ubuntu2004_clang
@ -562,9 +582,9 @@ jobs:
steps:
- checkout
- run: *run_build
- gitter_notify_failure
- store_artifacts: *artifacts_solc
- persist_to_workspace: *artifacts_executables
- gitter_notify_failure_unless_pr
b_ubu_release: &b_ubu_release
<<: *b_ubu
@ -584,6 +604,7 @@ jobs:
name: strip binary
command: strip build/solc/solc
- store_artifacts: *artifacts_solc
- gitter_notify_failure_unless_pr
b_ubu_codecov:
<<: *base_ubuntu2004_xlarge
@ -595,6 +616,7 @@ jobs:
- checkout
- run: *run_build
- persist_to_workspace: *artifacts_executables
- gitter_notify_failure_unless_pr
t_ubu_codecov:
<<: *base_ubuntu2004
@ -617,6 +639,7 @@ jobs:
name: "Coverage: All"
command: codecov --flags all --gcov-root build
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
# Builds in C++20 mode and uses debug build in order to speed up.
# Do *NOT* store any artifacts or workspace as we don't run tests on this build.
@ -629,6 +652,7 @@ jobs:
steps:
- checkout
- run: *run_build
- gitter_notify_failure_unless_pr
b_ubu_ossfuzz: &b_ubu_ossfuzz
<<: *base_ubuntu1604_clang
@ -637,6 +661,7 @@ jobs:
- run: *setup_prerelease_commit_hash
- run: *run_build_ossfuzz
- persist_to_workspace: *artifacts_executables_ossfuzz
- gitter_notify_failure_unless_pr
t_ubu_ossfuzz: &t_ubu_ossfuzz
<<: *base_ubuntu1604_clang
@ -650,10 +675,10 @@ jobs:
git clone https://github.com/ethereum/solidity-fuzzing-corpus /tmp/solidity-fuzzing-corpus
mkdir -p test_results
scripts/regressions.py -o test_results
- gitter_notify_failure
- gitter_notify_success
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
- gitter_notify_success_unless_pr
b_archlinux:
<<: *base_archlinux
@ -669,6 +694,7 @@ jobs:
- run: *run_build
- store_artifacts: *artifacts_solc
- persist_to_workspace: *artifacts_executables
- gitter_notify_failure_unless_pr
b_osx:
<<: *base_osx
@ -705,6 +731,7 @@ jobs:
- build/solc/solc
- build/test/soltest
- build/test/tools/solfuzzer
- gitter_notify_failure_unless_pr
t_osx_soltest:
<<: *base_osx
@ -722,6 +749,7 @@ jobs:
- run: *run_soltest
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
t_osx_cli:
<<: *base_osx
@ -734,6 +762,7 @@ jobs:
at: .
- run: *run_cmdline_tests
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
b_ems:
<<: *base_ems_xlarge
@ -754,6 +783,7 @@ jobs:
paths:
- soljson.js
- version.txt
- gitter_notify_failure_unless_pr
b_docs:
<<: *base_ubuntu2004
@ -766,6 +796,7 @@ jobs:
- store_artifacts:
path: docs/_build/html/
destination: docs-html
- gitter_notify_failure_unless_pr
t_ubu_soltest_all: &t_ubu_soltest_all
<<: *base_ubuntu2004
@ -848,19 +879,11 @@ jobs:
<<: *base_ubuntu2004_clang
environment:
EVM: << pipeline.parameters.evm-version >>
steps:
- when:
condition: true
<<: *steps_soltest
- gitter_notify_failure
<<: *steps_soltest
t_ubu_ubsan_clang_cli:
<<: *base_ubuntu2004_clang
steps:
- when:
condition: true
<<: *steps_cmdline_tests
- gitter_notify_failure
<<: *steps_cmdline_tests
t_ems_solcjs:
<<: *base_ubuntu2004
@ -880,6 +903,7 @@ jobs:
node --version
npm --version
test/externalTests/solc-js/solc-js.sh /tmp/workspace/soljson.js $(cat /tmp/workspace/version.txt)
- gitter_notify_failure_unless_pr
t_ems_ext_hardhat:
<<: *base_node_latest
@ -905,6 +929,7 @@ jobs:
# NOTE: This is expected to work without running `yarn build` first.
cd hardhat/packages/hardhat-core
yarn test
- gitter_notify_failure_unless_pr
t_ems_ext:
parameters:
@ -916,9 +941,6 @@ jobs:
nodejs_version:
type: integer
default: 14
gitter_notify:
type: boolean
default: no
docker:
- image: circleci/node:<<parameters.nodejs_version>>
environment:
@ -937,11 +959,7 @@ jobs:
name: External <<parameters.project>> tests
command: |
test/externalTests/<<parameters.project>>.sh /tmp/workspace/soljson.js
- when:
condition: <<parameters.gitter_notify>>
steps:
- gitter_notify_failure
- gitter_notify_success
- gitter_notify_failure_unless_pr
b_win: &b_win
<<: *base_win_powershell
@ -972,6 +990,7 @@ jobs:
paths:
- .\solc\*\solc.exe
- .\test\*\soltest.exe
- gitter_notify_failure_unless_pr
b_win_release:
<<: *b_win
@ -994,6 +1013,7 @@ jobs:
command: .circleci/soltest.ps1
- store_test_results: *store_test_results
- store_artifacts: *artifacts_test_results
- gitter_notify_failure_unless_pr
t_win_release_soltest:
<<: *t_win_soltest
@ -1017,6 +1037,7 @@ jobs:
paths:
- bytecode-report-ubuntu-json.txt
- bytecode-report-ubuntu-cli.txt
- gitter_notify_failure_unless_pr
b_bytecode_osx:
<<: *base_osx
@ -1037,6 +1058,7 @@ jobs:
paths:
- bytecode-report-osx-json.txt
- bytecode-report-osx-cli.txt
- gitter_notify_failure_unless_pr
b_bytecode_win:
<<: *base_win_cmd
@ -1060,6 +1082,7 @@ jobs:
paths:
- bytecode-report-windows-json.txt
- bytecode-report-windows-cli.txt
- gitter_notify_failure_unless_pr
b_bytecode_ems:
<<: *base_node_latest
@ -1076,6 +1099,7 @@ jobs:
root: .
paths:
- bytecode-report-emscripten.txt
- gitter_notify_failure_unless_pr
t_bytecode_compare:
<<: *base_ubuntu2004
@ -1112,6 +1136,7 @@ jobs:
# NOTE: store_artifacts does not support the 'when' attribute.
# Fortunately when the artifact does not exist it just says "No artifact files found" and ignores it.
path: all-bytecode-reports.zip
- gitter_notify_failure_unless_pr
workflows:
version: 2
@ -1282,4 +1307,3 @@ workflows:
<<: *workflow_emscripten
name: t_ems_test_ext_colony
project: colony
gitter_notify: yes