| 
									
										
										
										
											2018-11-21 12:16:16 -08:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							| 
									
										
										
										
											2020-06-16 13:40:53 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-21 12:16:16 -08:00
										 |  |  | set -e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd "$(dirname "$0")/.." | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-18 14:25:10 -08:00
										 |  |  | source ci/_ | 
					
						
							| 
									
										
										
										
											2019-03-14 19:41:05 -07:00
										 |  |  | source ci/rust-version.sh stable | 
					
						
							| 
									
										
										
										
											2019-06-20 07:43:31 -07:00
										 |  |  | source ci/rust-version.sh nightly | 
					
						
							| 
									
										
										
										
											2020-06-18 10:04:37 -07:00
										 |  |  | eval "$(ci/channel-info.sh)" | 
					
						
							| 
									
										
										
										
											2020-10-12 21:19:41 -06:00
										 |  |  | cargo="$(readlink -f "./cargo")" | 
					
						
							| 
									
										
										
										
											2018-12-18 14:25:10 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-05 17:04:59 -07:00
										 |  |  | scripts/increment-cargo-version.sh check | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-28 13:09:46 -07:00
										 |  |  | # Disallow uncommitted Cargo.lock changes | 
					
						
							|  |  |  | ( | 
					
						
							| 
									
										
										
										
											2021-07-16 15:03:57 -06:00
										 |  |  |   _ scripts/cargo-for-all-lock-files.sh tree >/dev/null | 
					
						
							| 
									
										
										
										
											2021-02-28 13:09:46 -07:00
										 |  |  |   set +e | 
					
						
							|  |  |  |   if ! _ git diff --exit-code; then | 
					
						
							|  |  |  |     echo -e "\nError: Uncommitted Cargo.lock changes" 1>&2 | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-16 13:40:53 +09:00
										 |  |  | echo --- build environment | 
					
						
							|  |  |  | ( | 
					
						
							|  |  |  |   set -x | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   rustup run "$rust_stable" rustc --version --verbose | 
					
						
							|  |  |  |   rustup run "$rust_nightly" rustc --version --verbose | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-12 21:19:41 -06:00
										 |  |  |   "$cargo" stable --version --verbose | 
					
						
							|  |  |  |   "$cargo" nightly --version --verbose | 
					
						
							| 
									
										
										
										
											2020-06-16 13:40:53 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-12 21:19:41 -06:00
										 |  |  |   "$cargo" stable clippy --version --verbose | 
					
						
							|  |  |  |   "$cargo" nightly clippy --version --verbose | 
					
						
							| 
									
										
										
										
											2020-06-16 13:40:53 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-09 19:49:07 +09:00
										 |  |  |   # audit is done only with "$cargo stable" | 
					
						
							| 
									
										
										
										
											2020-10-12 21:19:41 -06:00
										 |  |  |   "$cargo" stable audit --version | 
					
						
							| 
									
										
										
										
											2021-07-09 19:49:07 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |   grcov --version | 
					
						
							| 
									
										
										
										
											2020-06-16 13:40:53 +09:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-21 12:16:16 -08:00
										 |  |  | export RUST_BACKTRACE=1 | 
					
						
							| 
									
										
										
										
											2020-07-10 11:06:10 -07:00
										 |  |  | export RUSTFLAGS="-D warnings -A incomplete_features" | 
					
						
							| 
									
										
										
										
											2018-11-21 12:16:16 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-18 10:04:37 -07:00
										 |  |  | # Only force up-to-date lock files on edge | 
					
						
							|  |  |  | if [[ $CI_BASE_BRANCH = "$EDGE_CHANNEL" ]]; then | 
					
						
							|  |  |  |   # Exclude --benches as it's not available in rust stable yet | 
					
						
							| 
									
										
										
										
											2021-04-07 14:45:03 +08:00
										 |  |  |   if _ scripts/cargo-for-all-lock-files.sh stable check --locked --tests --bins --examples; then | 
					
						
							| 
									
										
										
										
											2020-06-18 10:04:37 -07:00
										 |  |  |     true | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     check_status=$? | 
					
						
							| 
									
										
										
										
											2020-07-03 18:08:12 +09:00
										 |  |  |     echo "$0: Some Cargo.lock might be outdated; sync them (or just be a compilation error?)" >&2 | 
					
						
							|  |  |  |     echo "$0: protip: $ ./scripts/cargo-for-all-lock-files.sh [--ignore-exit-code] ... \\" >&2 | 
					
						
							|  |  |  |     echo "$0:   [tree (for outdated Cargo.lock sync)|check (for compilation error)|update -p foo --precise x.y.z (for your Cargo.toml update)] ..." >&2 | 
					
						
							| 
									
										
										
										
											2020-06-18 10:04:37 -07:00
										 |  |  |     exit "$check_status" | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2020-10-11 10:25:42 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-31 00:40:54 -07:00
										 |  |  |   # Ensure nightly and --benches | 
					
						
							| 
									
										
										
										
											2021-04-07 14:45:03 +08:00
										 |  |  |   _ scripts/cargo-for-all-lock-files.sh nightly check --locked --all-targets | 
					
						
							| 
									
										
										
										
											2020-04-21 10:07:29 +09:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2020-06-18 10:04:37 -07:00
										 |  |  |   echo "Note: cargo-for-all-lock-files.sh skipped because $CI_BASE_BRANCH != $EDGE_CHANNEL" | 
					
						
							| 
									
										
										
										
											2020-04-21 10:07:29 +09:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2020-06-18 10:04:37 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-11 10:50:32 -07:00
										 |  |  | _ ci/order-crates-for-publishing.py | 
					
						
							| 
									
										
										
										
											2019-08-12 16:41:17 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-09 12:25:39 +09:00
										 |  |  | # -Z... is needed because of clippy bug: https://github.com/rust-lang/rust-clippy/issues/4612 | 
					
						
							| 
									
										
										
										
											2020-07-06 20:22:23 +09:00
										 |  |  | # run nightly clippy for `sdk/` as there's a moderate amount of nightly-only code there | 
					
						
							| 
									
										
										
										
											2021-02-16 13:49:44 -07:00
										 |  |  | _ "$cargo" nightly clippy -Zunstable-options --workspace --all-targets -- --deny=warnings --deny=clippy::integer_arithmetic | 
					
						
							| 
									
										
										
										
											2019-08-12 16:41:17 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-28 12:54:04 -07:00
										 |  |  | _ "$cargo" stable fmt --all -- --check | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-28 12:55:31 -07:00
										 |  |  | _ ci/do-audit.sh | 
					
						
							| 
									
										
										
										
											2018-12-18 18:32:45 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 14:55:58 -07:00
										 |  |  | { | 
					
						
							|  |  |  |   cd programs/bpf | 
					
						
							|  |  |  |   for project in rust/*/ ; do | 
					
						
							|  |  |  |     echo "+++ do_bpf_checks $project" | 
					
						
							|  |  |  |     ( | 
					
						
							|  |  |  |       cd "$project" | 
					
						
							| 
									
										
										
										
											2021-02-28 12:54:04 -07:00
										 |  |  |       _ "$cargo" nightly clippy -- --deny=warnings --allow=clippy::missing_safety_doc | 
					
						
							| 
									
										
										
										
											2020-10-12 21:19:41 -06:00
										 |  |  |       _ "$cargo" stable fmt -- --check | 
					
						
							| 
									
										
										
										
											2019-09-11 14:55:58 -07:00
										 |  |  |     ) | 
					
						
							|  |  |  |   done | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2019-07-28 22:19:03 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-18 18:32:45 -08:00
										 |  |  | echo --- ok |