mirror of
https://github.com/balena-io/etcher.git
synced 2025-04-24 07:17:18 +00:00
chore: check that there are no unstaged shrinkwrap changes (#1379)
See: https://github.com/resin-io/etcher/pull/1372 Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
This commit is contained in:
parent
697c86362c
commit
1048150654
@ -1,7 +1,7 @@
|
||||
language: node_js
|
||||
sudo: false
|
||||
node_js:
|
||||
- "6.1.0"
|
||||
- "6.10.3"
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
3
Makefile
3
Makefile
@ -19,7 +19,7 @@ BUILD_OUTPUT_DIRECTORY = $(BUILD_DIRECTORY)/out
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
ELECTRON_VERSION = $(shell jq -r '.devDependencies["electron"]' package.json)
|
||||
NODE_VERSION = 6.1.0
|
||||
NODE_VERSION = 6.10.3
|
||||
COMPANY_NAME = $(shell jq -r '.companyName' package.json)
|
||||
APPLICATION_NAME = $(shell jq -r '.displayName' package.json)
|
||||
APPLICATION_DESCRIPTION = $(shell jq -r '.description' package.json)
|
||||
@ -541,6 +541,7 @@ info:
|
||||
sanity-checks:
|
||||
./scripts/ci/ensure-all-node-requirements-available.sh
|
||||
./scripts/ci/ensure-staged-sass.sh
|
||||
./scripts/ci/ensure-staged-shrinkwrap.sh
|
||||
./scripts/ci/ensure-npm-dependencies-compatibility.sh
|
||||
./scripts/ci/ensure-npm-valid-dependencies.sh
|
||||
./scripts/ci/ensure-npm-shrinkwrap-versions.sh
|
||||
|
@ -14,7 +14,7 @@ cache:
|
||||
environment:
|
||||
global:
|
||||
ELECTRON_NO_ATTACH_CONSOLE: true
|
||||
nodejs_version: 6.1.0
|
||||
nodejs_version: "6.10.3"
|
||||
matrix:
|
||||
- TARGET_ARCH: x64
|
||||
- TARGET_ARCH: x86
|
||||
@ -23,7 +23,7 @@ matrix:
|
||||
fast_finish: true
|
||||
|
||||
install:
|
||||
- ps: Install-Product node $env:nodejs_version x64
|
||||
- ps: Update-NodeJsInstallation $env:nodejs_version $env:TARGET_ARCH
|
||||
- set PATH=C:\Program Files (x86)\Windows Kits\8.1\bin\x86;%PATH%
|
||||
- set PATH=C:\Program Files (x86)\NSIS;%PATH%
|
||||
- set PATH=C:\MinGW\bin;%PATH%
|
||||
|
@ -64,9 +64,6 @@
|
||||
"verbosity": 1
|
||||
}
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"electron-installer-debian": "0.5.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"angular": "1.6.3",
|
||||
"angular-if-state": "^1.0.0",
|
||||
|
@ -34,7 +34,7 @@ RUN add-apt-repository ppa:ubuntu-toolchain-r/test \
|
||||
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
|
||||
&& apt-get install -y nodejs
|
||||
RUN npm config set spin=false
|
||||
RUN npm install -g uglify-es@3.0.3
|
||||
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1
|
||||
|
||||
# Python
|
||||
RUN pip install codespell==1.9.2 awscli cpplint
|
||||
|
@ -34,7 +34,7 @@ RUN add-apt-repository ppa:ubuntu-toolchain-r/test \
|
||||
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
|
||||
&& apt-get install -y nodejs
|
||||
RUN npm config set spin=false
|
||||
RUN npm install -g uglify-es@3.0.3
|
||||
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1
|
||||
|
||||
# Python
|
||||
RUN pip install codespell==1.9.2 awscli cpplint
|
||||
|
@ -34,7 +34,7 @@ RUN add-apt-repository ppa:ubuntu-toolchain-r/test \
|
||||
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
|
||||
&& apt-get install -y nodejs
|
||||
RUN npm config set spin=false
|
||||
RUN npm install -g uglify-es@3.0.3
|
||||
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1
|
||||
|
||||
# Python
|
||||
RUN pip install codespell==1.9.2 awscli cpplint
|
||||
|
@ -25,9 +25,7 @@ if [[ "$OS" != "Linux" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ELECTRON_INSTALLER_DEBIAN="./node_modules/.bin/electron-installer-debian"
|
||||
|
||||
./scripts/build/check-dependency.sh "$ELECTRON_INSTALLER_DEBIAN"
|
||||
./scripts/build/check-dependency.sh electron-installer-debian
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
@ -67,7 +65,7 @@ fi
|
||||
DEBIAN_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t debian)
|
||||
|
||||
cp scripts/build/debian/etcher-electron.sh "$ARGV_DIRECTORY"
|
||||
"$ELECTRON_INSTALLER_DEBIAN" \
|
||||
electron-installer-debian \
|
||||
--src "$ARGV_DIRECTORY" \
|
||||
--dest "$ARGV_OUTPUT" \
|
||||
--config "$ARGV_DEBIAN_CONFIGURATION" \
|
||||
|
@ -20,7 +20,7 @@ IF "%APPVEYOR_REPO_BRANCH%"=="" (
|
||||
)
|
||||
|
||||
IF %APPVEYOR_REPO_BRANCH%==master (
|
||||
call make publish-aws-s3
|
||||
call make publish-aws-s3 || ( EXIT /B 1 )
|
||||
)
|
||||
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
@ -19,16 +19,16 @@ IF "%APPVEYOR_REPO_BRANCH%"=="" (
|
||||
EXIT /B 1
|
||||
)
|
||||
|
||||
call npm config set spin=false
|
||||
call npm install -g npm@4.4.4 uglify-es@3.0.3
|
||||
call npm config set spin=false || ( EXIT /B 1 )
|
||||
call npm install -g uglify-es@3.0.3 || ( EXIT /B 1 )
|
||||
|
||||
call choco install nsis -version 2.51
|
||||
call choco install jq
|
||||
call choco install curl
|
||||
call choco install nsis -version 2.51 || ( EXIT /B 1 )
|
||||
call choco install jq || ( EXIT /B 1 )
|
||||
call choco install curl || ( EXIT /B 1 )
|
||||
|
||||
call pip install codespell==1.9.2 awscli cpplint
|
||||
call pip install codespell==1.9.2 awscli cpplint || ( EXIT /B 1 )
|
||||
|
||||
call make info
|
||||
call make electron-develop
|
||||
call make info || ( EXIT /B 1 )
|
||||
call make electron-develop || ( EXIT /B 1 )
|
||||
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
@ -19,7 +19,7 @@ IF "%APPVEYOR_REPO_BRANCH%"=="" (
|
||||
EXIT /B 1
|
||||
)
|
||||
|
||||
call make sanity-checks
|
||||
call npm test
|
||||
call make sanity-checks || ( EXIT /B 1 )
|
||||
call npm test || ( EXIT /B 1 )
|
||||
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
@ -31,7 +31,7 @@ PACKAGE_JSON=package.json
|
||||
# workaround for path-length bug in jq that only affects Windows https://github.com/stedolan/jq/issues/1155
|
||||
NODE_MODULES=($(cat "$HERE/builtin-modules.json" | jq -r '.[]'))
|
||||
NPM_MODULES=($(jq -r '.dependencies | keys | .[]' "$PACKAGE_JSON"))
|
||||
NPM_OPTIONAL_MODULES=($(jq -r '.optionalDependencies | keys | .[]' "$PACKAGE_JSON"))
|
||||
NPM_OPTIONAL_MODULES=($(jq -r '.optionalDependencies // {} | keys | .[]' "$PACKAGE_JSON"))
|
||||
NPM_DEV_MODULES=($(jq -r '.devDependencies | keys | .[]' "$PACKAGE_JSON"))
|
||||
|
||||
DEV_FILES_REGEX=^\(tests\|scripts\)/
|
||||
@ -91,7 +91,7 @@ git ls-tree -r HEAD | while IFS='' read line; do
|
||||
done
|
||||
fi
|
||||
# Check optionalDependencies from package.json
|
||||
if [[ $requirement_found -eq 0 ]]; then
|
||||
if [[ $requirement_found -eq 0 ]] && [[ -n "${NPM_OPTIONAL_MODULES:-}" ]]; then
|
||||
for module in "${NPM_OPTIONAL_MODULES[@]}"; do
|
||||
if [[ "$required" == "$module" ]]; then
|
||||
requirement_found=1
|
||||
|
@ -1,12 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2017 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
npm run sass
|
||||
|
||||
# From http://stackoverflow.com/a/9393642/1641422
|
||||
if [[ -n $(git status -s) ]]; then
|
||||
if [[ -n $(git status -s | grep "\\.css$" || true) ]]; then
|
||||
echo "There are unstaged sass changes. Please commit the result of:" 1>&2
|
||||
echo ""
|
||||
echo " npm run sass" 1>&2
|
||||
|
36
scripts/ci/ensure-staged-shrinkwrap.sh
Executable file
36
scripts/ci/ensure-staged-shrinkwrap.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2017 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
echo "node version: $(node --version)"
|
||||
echo "npm version: $(npm --version)"
|
||||
|
||||
SHRINKWRAP_FILE=npm-shrinkwrap.json
|
||||
|
||||
npm shrinkwrap --dev
|
||||
|
||||
if [[ -n $(git status -s "$SHRINKWRAP_FILE") ]]; then
|
||||
echo "There are unstaged $SHRINKWRAP_FILE changes. Please commit the result of:" 1>&2
|
||||
echo ""
|
||||
echo " npm shrinkwrap --dev" 1>&2
|
||||
echo ""
|
||||
git --no-pager diff "$SHRINKWRAP_FILE"
|
||||
exit 1
|
||||
fi
|
@ -35,9 +35,8 @@ else
|
||||
./scripts/build/check-dependency.sh make
|
||||
./scripts/build/check-dependency.sh npm
|
||||
|
||||
npm install -g npm@3.10.10 uglify-es@3.0.3
|
||||
npm config set spin=false
|
||||
|
||||
npm install -g uglify-es@3.0.3
|
||||
pip install codespell==1.9.2 awscli cpplint
|
||||
brew install afsctool jq
|
||||
make info
|
||||
|
@ -15,11 +15,10 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
const _ = require('lodash');
|
||||
const path = require('path');
|
||||
const packageJSON = require('../package.json');
|
||||
const spawn = require('child_process').spawn;
|
||||
const shrinkwrapIgnore = _.union(packageJSON.shrinkwrapIgnore, _.keys(packageJSON.optionalDependencies));
|
||||
const shrinkwrapIgnore = packageJSON.shrinkwrapIgnore;
|
||||
|
||||
console.log('Removing:', shrinkwrapIgnore.join(', '));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user