From d31747e13365bdfa07725cefe3b40d5a7f68bca5 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 29 Sep 2020 12:55:46 +0200 Subject: [PATCH 1/3] chore: try to use sccache in CI --- .evergreen.yml | 9 +++++++++ scripts/docker/ubuntu16.04-build.Dockerfile | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.evergreen.yml b/.evergreen.yml index b7d3c04e14..dc8057f991 100644 --- a/.evergreen.yml +++ b/.evergreen.yml @@ -17,6 +17,9 @@ variables: source .evergreen/.setup_env export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true" export EVERGREEN_EXPANSIONS_PATH="$(pwd)/../tmp/expansions.yaml" + export AWS_ACCESS_KEY_ID={devtools_ci_aws_key} # sccache + export AWS_SECRET_ACCESS_KEY={devtools_ci_aws_secret} # sccache + export SCCACHE_BUCKET=devtools-mongosh-ci # sccache if [ `uname` == Linux ]; then mkdir -p tmp cp "$(pwd)/../tmp/expansions.yaml" tmp/expansions.yaml @@ -26,9 +29,15 @@ variables: -e EVERGREEN_EXPANSIONS_PATH=/tmp/build/tmp/expansions.yaml \ -e NODE_JS_VERSION \ -e BUILD_VARIANT \ + -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e SCCACHE_BUCKET \ --rm -v $PWD:/tmp/build --network host ubuntu16.04-build \ -c 'cd /tmp/build && npm run evergreen-release package && dist/mongosh --version' else + if [ `uname` == Darwin ]; then + brew install sccache + export CC='sccache cc' + export CXX='sccache c++' + fi npm run evergreen-release package if [ `uname` == Darwin ]; then # Verify signing diff --git a/scripts/docker/ubuntu16.04-build.Dockerfile b/scripts/docker/ubuntu16.04-build.Dockerfile index 168bf41d28..433cdd367b 100644 --- a/scripts/docker/ubuntu16.04-build.Dockerfile +++ b/scripts/docker/ubuntu16.04-build.Dockerfile @@ -14,7 +14,10 @@ RUN add-apt-repository ppa:ubuntu-toolchain-r/test RUN apt-get update RUN apt-get -y -qq install nodejs g++-6 rpm -ENV CC=gcc-6 -ENV CXX=g++-6 +# Add sccache +RUN curl -L https://github.com/mozilla/sccache/releases/download/0.2.13/sccache-0.2.13-x86_64-unknown-linux-musl.tar.gz | tar -C /usr/local/bin -xzvf - --strip=1 sccache-0.2.13-x86_64-unknown-linux-musl/sccache + +ENV CC="sccache gcc-6" +ENV CXX="sccache g++-6" ENTRYPOINT [ "bash" ] From 3bfa84caf7c615293a6237a8f487f87fecbadf41 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 29 Sep 2020 13:26:50 +0200 Subject: [PATCH 2/3] try skipping sccache on macOS --- .evergreen.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.evergreen.yml b/.evergreen.yml index dc8057f991..dff7826458 100644 --- a/.evergreen.yml +++ b/.evergreen.yml @@ -33,11 +33,6 @@ variables: --rm -v $PWD:/tmp/build --network host ubuntu16.04-build \ -c 'cd /tmp/build && npm run evergreen-release package && dist/mongosh --version' else - if [ `uname` == Darwin ]; then - brew install sccache - export CC='sccache cc' - export CXX='sccache c++' - fi npm run evergreen-release package if [ `uname` == Darwin ]; then # Verify signing From 7a00a781a5a4832330019e9e5021a3779d98e95a Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 29 Sep 2020 16:42:57 +0200 Subject: [PATCH 3/3] try setting env vars only for boxednode build --- .evergreen.yml | 4 ---- package-lock.json | 6 +++--- package.json | 2 +- packages/build/src/signable-compiler.ts | 8 +++++++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.evergreen.yml b/.evergreen.yml index dff7826458..b7d3c04e14 100644 --- a/.evergreen.yml +++ b/.evergreen.yml @@ -17,9 +17,6 @@ variables: source .evergreen/.setup_env export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true" export EVERGREEN_EXPANSIONS_PATH="$(pwd)/../tmp/expansions.yaml" - export AWS_ACCESS_KEY_ID={devtools_ci_aws_key} # sccache - export AWS_SECRET_ACCESS_KEY={devtools_ci_aws_secret} # sccache - export SCCACHE_BUCKET=devtools-mongosh-ci # sccache if [ `uname` == Linux ]; then mkdir -p tmp cp "$(pwd)/../tmp/expansions.yaml" tmp/expansions.yaml @@ -29,7 +26,6 @@ variables: -e EVERGREEN_EXPANSIONS_PATH=/tmp/build/tmp/expansions.yaml \ -e NODE_JS_VERSION \ -e BUILD_VARIANT \ - -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e SCCACHE_BUCKET \ --rm -v $PWD:/tmp/build --network host ubuntu16.04-build \ -c 'cd /tmp/build && npm run evergreen-release package && dist/mongosh --version' else diff --git a/package-lock.json b/package-lock.json index 527c35db5c..b5579deab6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4535,9 +4535,9 @@ "dev": true }, "boxednode": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/boxednode/-/boxednode-1.2.3.tgz", - "integrity": "sha512-Fi/ThgA1v2gqTJ2GWCHvsl7eN6SbY9B++U34U7xaN2jHqCtNi8vJqI9RFXF8woqejoQ/PRg1vtgmqgKlk0OQEQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxednode/-/boxednode-1.3.0.tgz", + "integrity": "sha512-XD5ziGB1uIATkltyxXavc1dKO1yWIuRQNlH9JF64MfAod+0uiYPKqJOP40t+G0qvP+Joks0HItkJj3dUgf9yVQ==", "dev": true, "requires": { "chalk": "^4.1.0", diff --git a/package.json b/package.json index 496fa9bd4c..9ba84eab25 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "adm-zip": "^0.4.14", "aws-sdk": "^2.674.0", "axios": "^0.19.2", - "boxednode": "^1.2.3", + "boxednode": "^1.3.0", "browserify": "^16.5.0", "chai": "^4.2.0", "command-exists": "^1.2.9", diff --git a/packages/build/src/signable-compiler.ts b/packages/build/src/signable-compiler.ts index 2adb01662b..a8c976b230 100644 --- a/packages/build/src/signable-compiler.ts +++ b/packages/build/src/signable-compiler.ts @@ -33,7 +33,13 @@ class SignableCompiler { sourceFile: this.sourceFile, targetFile: this.targetFile, nodeVersionRange: this.nodeVersionRange, - namespace: 'mongosh' + namespace: 'mongosh', + env: { + ...process.env, + // Custom env vars for sccache: + AWS_ACCESS_KEY_ID: process.env.DEVTOOLS_CI_AWS_KEY, + AWS_SECRET_ACCESS_KEY: process.env.DEVTOOLS_CI_AWS_SECRET + } }); } }