Update Github Actions CI set-env/add-path (#2265)

In accordance with [this
advisory](https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/)
it's recommended we moved to a different scheme of setting env vars and
updating PATH.
This commit is contained in:
Alex Crichton
2020-10-05 15:08:56 -05:00
committed by GitHub
parent 9e87e45745
commit e22e2c3722
4 changed files with 42 additions and 26 deletions

View File

@@ -2,19 +2,24 @@
const child_process = require('child_process');
const stdio = { stdio: 'inherit' };
const fs = require('fs');
function set_env(name, val) {
fs.appendFileSync(process.env['GITHUB_ENV'], `${name}=${val}\n`)
}
// On OSX all we need to do is configure our deployment target as old as
// possible. For now 10.9 is the limit.
if (process.platform == 'darwin') {
console.log("::set-env name=MACOSX_DEPLOYMENT_TARGET::10.9");
console.log("::set-env name=python::python3");
set_env("MACOSX_DEPLOYMENT_TARGET", "10.9");
set_env("python", "python3");
return;
}
// On Windows we build against the static CRT to reduce dll dependencies
if (process.platform == 'win32') {
console.log("::set-env name=RUSTFLAGS::-Ctarget-feature=+crt-static");
console.log("::set-env name=python::python");
set_env("RUSTFLAGS", "-Ctarget-feature=+crt-static");
set_env("python", "python");
return;
}
@@ -51,7 +56,7 @@ child_process.execFileSync('docker', [
], stdio);
// Use ourselves to run future commands
console.log(`::set-env name=CENTOS::${__filename}`)
set_env("CENTOS", __filename);
// See https://edwards.sdsu.edu/research/c11-on-centos-6/ for where these
const exec = s => {
@@ -66,4 +71,4 @@ exec('yum install -y git');
// This is a hack and not the right way to do this, but it ends up doing the
// right thing for now.
exec('rm -f /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so');
console.log("::set-env name=python::python3");
set_env("python", "python3");

View File

@@ -1,13 +1,19 @@
#!/usr/bin/env node
const fs = require('fs');
function set_env(name, val) {
fs.appendFileSync(process.env['GITHUB_ENV'], `${name}=${val}\n`)
}
// On OSX pointing to brew's LLVM location.
if (process.platform == 'darwin') {
console.log("::set-env name=DWARFDUMP::/usr/local/opt/llvm/bin/llvm-dwarfdump");
console.log("::set-env name=LLDB::/usr/local/opt/llvm/bin/lldb");
set_env("DWARFDUMP", "/usr/local/opt/llvm/bin/llvm-dwarfdump");
set_env("LLDB", "/usr/local/opt/llvm/bin/lldb");
}
// On Linux pointing to specific version
if (process.platform == 'linux') {
console.log("::set-env name=DWARFDUMP::/usr/bin/llvm-dwarfdump-9");
console.log("::set-env name=LLDB::/usr/bin/lldb-9");
set_env("DWARFDUMP", "/usr/bin/llvm-dwarfdump-9");
set_env("LLDB", "/usr/bin/lldb-9");
}

View File

@@ -1,10 +1,15 @@
const child_process = require('child_process');
const toolchain = process.env.INPUT_TOOLCHAIN;
const fs = require('fs');
function set_env(name, val) {
fs.appendFileSync(process.env['GITHUB_ENV'], `${name}=${val}\n`)
}
if (process.platform === 'darwin') {
child_process.execSync(`curl https://sh.rustup.rs | sh -s -- -y --default-toolchain=none --profile=minimal`);
const bindir = `${process.env.HOME}/.cargo/bin`;
console.log(`::add-path::${bindir}`);
fs.appendFileSync(process.env['GITHUB_PATH'], `${bindir}\n`);
process.env.PATH = `${process.env.PATH}:${bindir}`;
}
@@ -15,13 +20,13 @@ child_process.execFileSync('rustup', ['default', toolchain]);
// Deny warnings on CI to keep our code warning-free as it lands in-tree. Don't
// do this on nightly though since there's a fair amount of warning churn there.
if (!toolchain.startsWith('nightly')) {
console.log(`::set-env name=RUSTFLAGS::-D warnings`);
set_env("RUSTFLAGS", "-D warnings");
}
// Save disk space by avoiding incremental compilation, and also we don't use
// any caching so incremental wouldn't help anyway.
console.log(`::set-env name=CARGO_INCREMENTAL::0`);
set_env("CARGO_INCREMENTAL", "0");
// Turn down debuginfo from 2 to 1 to help save disk space
console.log(`::set-env name=CARGO_PROFILE_DEV_DEBUG::1`);
console.log(`::set-env name=CARGO_PROFILE_TEST_DEBUG::1`);
set_env("CARGO_PROFILE_DEV_DEBUG", "1");
set_env("CARGO_PROFILE_TEST_DEBUG", "1");