1d0b88b7eSopenharmony_ciconst child_process = require('child_process');
2d0b88b7eSopenharmony_ciconst toolchain = process.env.INPUT_TOOLCHAIN;
3d0b88b7eSopenharmony_ciconst fs = require('fs');
4d0b88b7eSopenharmony_ci
5d0b88b7eSopenharmony_cifunction set_env(name, val) {
6d0b88b7eSopenharmony_ci  fs.appendFileSync(process.env['GITHUB_ENV'], `${name}=${val}\n`)
7d0b88b7eSopenharmony_ci}
8d0b88b7eSopenharmony_ci
9d0b88b7eSopenharmony_ci// Needed for now to get 1.24.2 which fixes a bug in 1.24.1 that causes issues
10d0b88b7eSopenharmony_ci// on Windows.
11d0b88b7eSopenharmony_ciif (process.platform === 'win32') {
12d0b88b7eSopenharmony_ci  child_process.execFileSync('rustup', ['self', 'update']);
13d0b88b7eSopenharmony_ci}
14d0b88b7eSopenharmony_ci
15d0b88b7eSopenharmony_cichild_process.execFileSync('rustup', ['set', 'profile', 'minimal']);
16d0b88b7eSopenharmony_cichild_process.execFileSync('rustup', ['update', toolchain, '--no-self-update']);
17d0b88b7eSopenharmony_cichild_process.execFileSync('rustup', ['default', toolchain]);
18d0b88b7eSopenharmony_ci
19d0b88b7eSopenharmony_ci// Deny warnings on CI to keep our code warning-free as it lands in-tree. Don't
20d0b88b7eSopenharmony_ci// do this on nightly though since there's a fair amount of warning churn there.
21d0b88b7eSopenharmony_ciif (!toolchain.startsWith('nightly')) {
22d0b88b7eSopenharmony_ci  set_env("RUSTFLAGS", "-D warnings");
23d0b88b7eSopenharmony_ci}
24d0b88b7eSopenharmony_ci
25d0b88b7eSopenharmony_ci// Save disk space by avoiding incremental compilation, and also we don't use
26d0b88b7eSopenharmony_ci// any caching so incremental wouldn't help anyway.
27d0b88b7eSopenharmony_ciset_env("CARGO_INCREMENTAL", "0");
28d0b88b7eSopenharmony_ci
29d0b88b7eSopenharmony_ci// Turn down debuginfo from 2 to 1 to help save disk space
30d0b88b7eSopenharmony_ciset_env("CARGO_PROFILE_DEV_DEBUG", "1");
31d0b88b7eSopenharmony_ciset_env("CARGO_PROFILE_TEST_DEBUG", "1");
32d0b88b7eSopenharmony_ci
33d0b88b7eSopenharmony_ciif (process.platform === 'darwin') {
34d0b88b7eSopenharmony_ci  set_env("CARGO_PROFILE_DEV_SPLIT_DEBUGINFO", "unpacked");
35d0b88b7eSopenharmony_ci  set_env("CARGO_PROFILE_TEST_SPLIT_DEBUGINFO", "unpacked");
36d0b88b7eSopenharmony_ci}
37