Makefile 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. .PHONY: test coverage
  2. build: clean lint build_python build_electron
  3. publish: clean lint publish_electron publish_python publish_web publish_cask publish_winget
  4. install:
  5. @[ -d node_modules ] || npm install
  6. clean:
  7. rm -rf ./dist
  8. rm -rf ./node_modules
  9. rm -rf ./package-lock.json
  10. reset: clean
  11. rm -rf ./third_party
  12. update: install
  13. @./tools/armnn sync schema
  14. @./tools/bigdl sync schema
  15. @./tools/caffe sync schema
  16. @./tools/cntk sync schema
  17. @./tools/coreml sync schema
  18. @./tools/dnn schema
  19. @./tools/mnn sync schema
  20. @./tools/mslite sync schema
  21. @./tools/onnx sync install schema metadata
  22. @./tools/paddle sync schema
  23. @./tools/pytorch sync install schema metadata
  24. @./tools/sklearn sync install metadata
  25. @./tools/tf sync install schema metadata
  26. @./tools/uff schema
  27. build_python: install
  28. python -m pip install --user wheel
  29. python ./setup.py build --version bdist_wheel
  30. install_python: build_python
  31. pip uninstall --yes netron
  32. pip install dist/dist/*.whl
  33. build_electron: install
  34. CSC_IDENTITY_AUTO_DISCOVERY=false npx electron-builder --mac --universal --publish never
  35. npx electron-builder --win --publish never
  36. npx electron-builder --linux appimage --publish never
  37. npx electron-builder --linux snap --publish never
  38. start: install
  39. npx electron .
  40. lint: install
  41. npx eslint source/*.js test/*.js publish/*.js tools/*.js
  42. test: install
  43. node ./test/models.js
  44. coverage:
  45. rm -rf .nyc_output ./coverage ./dist/nyc
  46. mkdir -p ./dist/nyc
  47. cp ./package.json ./dist/nyc
  48. cp -R ./source ./dist/nyc
  49. nyc instrument --compact false ./source ./dist/nyc/source
  50. nyc --reporter=lcov --instrument npx electron ./dist/nyc
  51. publish_python: build_python
  52. python -m pip install --user twine
  53. python -m twine upload --non-interactive --skip-existing --verbose dist/dist/*
  54. publish_electron: install
  55. npx electron-builder --mac --universal --publish always
  56. npx electron-builder --win --publish always
  57. npx electron-builder --linux appimage --publish always
  58. npx electron-builder --linux snap --publish always
  59. build_web:
  60. mkdir -p ./dist/web
  61. rm -rf ./dist/web/*
  62. cp -R ./source/*.html ./dist/web
  63. cp -R ./source/*.css ./dist/web
  64. cp -R ./source/*.js ./dist/web
  65. cp -R ./source/*.json ./dist/web
  66. cp -R ./source/*.ico ./dist/web
  67. cp -R ./source/*.png ./dist/web
  68. cp -R ./node_modules/d3/dist/d3.js ./dist/web
  69. cp -R ./node_modules/dagre/dist/dagre.js ./dist/web
  70. rm -rf ./dist/web/electron.* ./dist/web/app.js
  71. sed -i "s/0\.0\.0/$$(grep '"version":' package.json -m1 | cut -d\" -f4)/g" ./dist/web/index.html
  72. publish_web: build_web
  73. rm -rf ./dist/gh-pages
  74. git clone --depth=1 https://x-access-token:$(GITHUB_TOKEN)@github.com/$(GITHUB_USER)/netron.git --branch gh-pages ./dist/gh-pages 2>&1 > /dev/null
  75. cp -R ./dist/web/* ./dist/gh-pages
  76. git -C ./dist/gh-pages add --all
  77. git -C ./dist/gh-pages commit --amend --no-edit
  78. git -C ./dist/gh-pages push --force origin gh-pages
  79. publish_cask:
  80. curl -s -H "Authorization: token $(GITHUB_TOKEN)" https://api.github.com/repos/Homebrew/homebrew-cask/forks -d '' 2>&1 > /dev/null
  81. rm -rf ./dist/homebrew-cask
  82. sleep 4
  83. git clone --depth=2 https://x-access-token:$(GITHUB_TOKEN)@github.com/$(GITHUB_USER)/homebrew-cask.git ./dist/homebrew-cask
  84. node ./publish/cask.js ./package.json ./dist/homebrew-cask/Casks/netron.rb
  85. git -C ./dist/homebrew-cask add --all
  86. git -C ./dist/homebrew-cask commit -m "Update $$(node -pe "require('./package.json').productName") to $$(node -pe "require('./package.json').version")"
  87. git -C ./dist/homebrew-cask push
  88. curl -H "Authorization: token $(GITHUB_TOKEN)" https://api.github.com/repos/Homebrew/homebrew-cask/pulls -d "{\"title\":\"Update $$(node -pe "require('./package.json').name") to $$(node -pe "require('./package.json').version")\",\"base\":\"master\",\"head\":\"$(GITHUB_USER):master\",\"body\":\"\"}" 2>&1 > /dev/null
  89. rm -rf ./dist/homebrew-cask
  90. sleep 4
  91. curl -s -H "Authorization: token $(GITHUB_TOKEN)" -X "DELETE" https://api.github.com/repos/$(GITHUB_USER)/homebrew-cask # 2>&1 > /dev/null
  92. publish_winget:
  93. curl -s -H "Authorization: token $(GITHUB_TOKEN)" https://api.github.com/repos/microsoft/winget-pkgs/forks -d '' 2>&1 > /dev/null
  94. rm -rf ./dist/winget-pkgs
  95. sleep 4
  96. git clone --depth=2 https://x-access-token:$(GITHUB_TOKEN)@github.com/$(GITHUB_USER)/winget-pkgs.git ./dist/winget-pkgs
  97. node ./publish/winget.js ./package.json ./dist/winget-pkgs/manifests
  98. git -C ./dist/winget-pkgs add --all
  99. git -C ./dist/winget-pkgs commit -m "Update $$(node -pe "require('./package.json').name") to $$(node -pe "require('./package.json').version")"
  100. git -C ./dist/winget-pkgs push
  101. curl -H "Authorization: token $(GITHUB_TOKEN)" https://api.github.com/repos/microsoft/winget-pkgs/pulls -d "{\"title\":\"Update $$(node -pe "require('./package.json').productName") to $$(node -pe "require('./package.json').version")\",\"base\":\"master\",\"head\":\"$(GITHUB_USER):master\",\"body\":\"\"}" 2>&1 > /dev/null
  102. rm -rf ./dist/winget-pkgs
  103. sleep 4
  104. curl -s -H "Authorization: token $(GITHUB_TOKEN)" -X "DELETE" https://api.github.com/repos/$(GITHUB_USER)/winget-pkgs # 2>&1 > /dev/null
  105. version:
  106. node ./publish/version.js ./package.json
  107. git add ./package.json
  108. git commit -m "Update to $$(node -pe "require('./package.json').version")"
  109. git tag v$$(node -pe "require('./package.json').version")
  110. git push
  111. git push --tags
  112. pull:
  113. git fetch --prune origin "refs/tags/*:refs/tags/*"
  114. git pull --prune --rebase