Use Dynamic Linter

The new lint.sh script no longer requires the use
of a matrix and instead dynamically finds and lints
directories.

Signed-off-by: Brett Logan <lindluni@github.com>
This commit is contained in:
Brett Logan 2021-02-08 11:18:28 -05:00 committed by denyeart
parent 855c8e4db3
commit c81ba4c411
2 changed files with 44 additions and 102 deletions

View file

@ -74,68 +74,6 @@ jobs:
displayName: Lint
pool:
vmImage: ubuntu-18.04
strategy:
matrix:
Basic-Application-Go:
DIRECTORY: asset-transfer-basic
LANGUAGE: go
TYPE: application
Basic-Application-Java:
DIRECTORY: asset-transfer-basic
LANGUAGE: java
TYPE: application
Basic-Application-Javascript:
DIRECTORY: asset-transfer-basic
LANGUAGE: javascript
TYPE: application
Basic-Chaincode-Go:
DIRECTORY: asset-transfer-basic
LANGUAGE: go
TYPE: chaincode
Basic-Chaincode-Java:
DIRECTORY: asset-transfer-basic
LANGUAGE: java
TYPE: chaincode
Basic-Chaincode-Javascript:
DIRECTORY: asset-transfer-basic
LANGUAGE: javascript
TYPE: chaincode
Basic-Chaincode-Typescript:
DIRECTORY: asset-transfer-basic
LANGUAGE: typescript
TYPE: chaincode
Ledger-Application-Java:
DIRECTORY: asset-transfer-ledger-queries
LANGUAGE: java
TYPE: application
Ledger-Chaincode-Go:
DIRECTORY: asset-transfer-ledger-queries
LANGUAGE: go
TYPE: chaincode
Ledger-Chaincode-Javascript:
DIRECTORY: asset-transfer-ledger-queries
LANGUAGE: javascript
TYPE: chaincode
PrivateData-Application-Javascript:
DIRECTORY: asset-transfer-private-data
LANGUAGE: javascript
TYPE: application
PrivateData-Chaincode-Go:
DIRECTORY: asset-transfer-private-data
LANGUAGE: go
TYPE: chaincode
SBE-Chaincode-Typescript:
DIRECTORY: asset-transfer-sbe
LANGUAGE: typescript
TYPE: chaincode
SBE-Chaincode-Java:
DIRECTORY: asset-transfer-sbe
LANGUAGE: java
TYPE: chaincode
Secured-Chaincode-Go:
DIRECTORY: asset-transfer-secured-agreement
LANGUAGE: go
TYPE: chaincode
steps:
- task: GoTool@0
inputs:
@ -146,6 +84,8 @@ jobs:
inputs:
versionSpec: $(NODE_VER)
displayName: Install Node.js
- script: npm install -g typescript eslint tslint
displayName: Install Javascript Linting Deps
- script: ./ci/scripts/lint.sh
displayName: Lint Code

View file

@ -7,13 +7,15 @@ function print() {
echo -e "${GREEN}${1}${NC}"
}
if [[ "${LANGUAGE}" == "go" ]]; then
dirs=("$(find . -name "*-go" -o -name "*-java" -o -name "*-javascript" -o -name "*-typescript")")
for dir in $dirs; do
if [[ -d $dir ]]; then
print "Linting $dir"
pushd $dir
if [[ "$dir" =~ "-go" ]]; then
go get golang.org/x/tools/cmd/goimports
cd "${DIRECTORY}/${TYPE}-${LANGUAGE}"
print "Running go vet"
go vet ./...
print "Running gofmt"
output=$(gofmt -l -s $(go list -f '{{.Dir}}' ./...))
if [[ "${output}" != "" ]]; then
@ -27,25 +29,25 @@ if [[ "${LANGUAGE}" == "go" ]]; then
print "The following files contain import errors, please run 'goimports -l -w <path>' to fix these issues:"
echo "${output}"
fi
elif [[ "${LANGUAGE}" == "java" ]]; then
cd "${DIRECTORY}/${TYPE}-${LANGUAGE}"
print "Running Gradle Build"
./gradlew build
elif [[ "${LANGUAGE}" == "javascript" ]]; then
npm install -g eslint
cd "${DIRECTORY}/${TYPE}-${LANGUAGE}"
elif [[ "$dir" =~ "-javascript" ]]; then
print "Running ESLint"
if [[ "${TYPE}" == "chaincode" ]]; then
if [[ "$dir" =~ "chaincode" ]]; then
eslint *.js */**.js
else
eslint *.js
fi
elif [[ "${LANGUAGE}" == "typescript" ]]; then
npm install -g typescript tslint
cd "${DIRECTORY}/${TYPE}-${LANGUAGE}"
elif [[ "$dir" =~ "-java" ]]; then
if [[ -f "pom.xml" ]]; then
print "Running Maven Build"
mvn clean package
else
print "Running Gradle Build"
./gradlew build
fi
elif [[ "$dir" =~ "-typescript" ]]; then
print "Running TSLint"
tslint --project .
else
echo "Language not supported"
exit 1
fi
popd
fi
done