build.yml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. name: Build
  2. on:
  3. [push]
  4. jobs:
  5. test:
  6. name: Run Tests
  7. runs-on: ubuntu-latest
  8. steps:
  9. - uses: actions/checkout@v2
  10. - name: Set up JDK 14
  11. uses: actions/setup-java@v1
  12. with:
  13. java-version: 14
  14. - uses: actions/cache@v1
  15. with:
  16. path: ~/.m2/repository
  17. key: ${{ runner.os }}-maven-${{ github.run_id }}
  18. restore-keys: |
  19. ${{ runner.os }}-maven-
  20. - name: Build with Maven
  21. run: mvn -B install --file main/pom.xml -Pcoverage
  22. - name: Run Codacy Coverage Reporter
  23. run: |
  24. curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar
  25. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial
  26. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/keychain/target/site/jacoco/jacoco.xml --partial
  27. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial
  28. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial
  29. $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final
  30. env:
  31. CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
  32. assemble-build-kit:
  33. name: Assemble Build Kit
  34. runs-on: ubuntu-latest
  35. needs: test
  36. steps:
  37. - uses: actions/checkout@v2
  38. - name: Set up JDK 14
  39. uses: actions/setup-java@v1
  40. with:
  41. java-version: 14
  42. - uses: actions/cache@v1
  43. with:
  44. path: ~/.m2/repository
  45. key: ${{ runner.os }}-maven-${{ github.run_id }}
  46. - name: Build with Maven
  47. run: mvn -B package -DskipTests --file main/pom.xml --resume-from=buildkit -Prelease
  48. - name: Upload buildkit-linux.zip
  49. uses: actions/upload-artifact@v1
  50. with:
  51. name: buildkit-linux.zip
  52. path: main/buildkit/target/buildkit-linux.zip
  53. - name: Upload buildkit-mac.zip
  54. uses: actions/upload-artifact@v1
  55. with:
  56. name: buildkit-mac.zip
  57. path: main/buildkit/target/buildkit-mac.zip
  58. - name: Upload buildkit-win.zip
  59. uses: actions/upload-artifact@v1
  60. with:
  61. name: buildkit-win.zip
  62. path: main/buildkit/target/buildkit-win.zip
  63. github-release:
  64. name: Draft a Release on GitHub Releases
  65. runs-on: ubuntu-latest
  66. needs: assemble-build-kit
  67. # if: startsWith(github.ref, 'refs/tags/')
  68. steps:
  69. - name: Download buildkit-linux.zip
  70. uses: actions/download-artifact@v1
  71. with:
  72. name: buildkit-linux.zip
  73. - name: Download buildkit-mac.zip
  74. uses: actions/download-artifact@v1
  75. with:
  76. name: buildkit-mac.zip
  77. - name: Download buildkit-win.zip
  78. uses: actions/download-artifact@v1
  79. with:
  80. name: buildkit-win.zip
  81. - id: create_release
  82. uses: actions/create-release@v1
  83. env:
  84. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  85. with:
  86. tag_name: ${{ github.ref }}
  87. draft: true
  88. prerelease: true
  89. - name: Upload buildkit-linux.zip to GitHub Releases
  90. uses: actions/upload-release-asset@v1.0.1
  91. env:
  92. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  93. with:
  94. upload_url: ${{ steps.create_release.outputs.upload_url }}
  95. asset_path: buildkit-linux.zip
  96. asset_name: buildkit-linux.zip
  97. asset_content_type: application/zip
  98. - name: Upload buildkit-mac.zip to GitHub Releases
  99. uses: actions/upload-release-asset@v1.0.1
  100. env:
  101. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  102. with:
  103. upload_url: ${{ steps.create_release.outputs.upload_url }}
  104. asset_path: buildkit-mac.zip
  105. asset_name: buildkit-mac.zip
  106. asset_content_type: application/zip
  107. - name: Upload buildkit-win.zip to GitHub Releases
  108. uses: actions/upload-release-asset@v1.0.1
  109. env:
  110. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  111. with:
  112. upload_url: ${{ steps.create_release.outputs.upload_url }}
  113. asset_path: buildkit-win.zip
  114. asset_name: buildkit-win.zip
  115. asset_content_type: application/zip